Skip to content

Repository files navigation

Beacons

Software for the Beacons exhibition: a physical system that sonifies deep sea oceanographic data from the Clarion-Clipperton Zone (10,000 BCE to 2055 CE) into synchronized audio, Chladni visualizations, and audio-reactive LED installations on Raspberry Pi devices. Maps 19 environmental metrics across BIOTA, CLIMATE, GEOLOGY, and HUMAN categories into frequency-based compositions with coordinated lighting.

Structure

01_data_pipeline/      # Raw oceanographic data → interpolation → extrapolation → JSON timelines
02_audio_generation/   # 4-voice frequency mapping (Crystal/Mids/Deep) → 15-min stereo composition
03_visualization/      # Audio frequency → Chladni pattern parameters → Processing.js display
04_lighting/           # Audio amplitude analysis → WS2813 LED brightness cache → synchronized playback
05_deployment/         # Raspberry Pi system services, NTP sync, multi-device exhibition orchestration
06_dashboard/          # Web interface for pipeline orchestration and audio generation

Usage

# 1. Process data
cd 01_data_pipeline && python runner.py
# Output: FINAL_DATA/*.json (19 files)

# 2. Generate audio (15-minute composition)
cd ../02_audio_generation && python app.py
# Open http://localhost:5000, generate audio
# Output: combined.wav + individual voice tracks

# 3. Generate visualization cache
cd ../03_visualization
python generate_chladni_data.py ../02_audio_generation/static/output/combined.wav
# Output: chladni_frequency_cache.json

# 4. Generate LED cache
cd ../04_lighting
cp ../02_audio_generation/static/output/combined.wav audio.wav
python lights.py left
# Output: amplitude_cache.pkl

→ Data Pipeline | → Audio Generation | → Visualization | → Lighting | → Deployment | → Dashboard

Metrics

19 environmental variables spanning 12,000 years of deep sea data:

BIOTA (5 variables)

  • Macrofaunal density (organisms/m²)
  • Megafaunal abundance (count)
  • Meiofaunal abundance (organisms/10cm²)
  • Microbial abundance (cells/mL)
  • Organic carbon flux (mg C/m²/day)

CLIMATE (5 variables)

  • Deep sea temperature (°C)
  • Sea surface temperature (°C)
  • Ocean current velocity (cm/s)
  • Oxygen concentration (mL/L)
  • Aragonite saturation state (Ω)

GEOLOGY (5 variables)

  • Polymetallic nodule cover (%)
  • Nodule growth rate (mm/million years)
  • Sediment composition (% composition)
  • Tectonic activity (seismic events/year)
  • Paleodictyon density (traces/m²)

HUMAN (4 variables)

  • CO₂ emissions (million tonnes/year)
  • Microplastic concentration (particles/m³)
  • Mining exploration expeditions (count/year)
  • Seafaring activity (vessel-days/year)

System Overview

Data Pipeline → README

Processes raw oceanographic data (CSV, JSON, NetCDF formats) through a four-stage pipeline: processing (standardization) → interpolation (gap filling) → extrapolation (2025-2055 projections) → cleaning (final JSON output). Each variable gets its own timeline file with year-value pairs from -10000 to 2055. Uses linear/polynomial interpolation for historical gaps and trend-based modeling for future scenarios.

Audio Generation → README

Maps data values to 4-voice polyphonic composition:

  • Crystal (BIOTA): 200-4000 Hz, bell-like tones tracking biological activity
  • Crystal Twin (GEOLOGY): +4 semitones from Crystal, harmonic companion for geological processes
  • Mids (HUMAN): Mid-range frequencies representing human impact
  • Deep (CLIMATE): 30-250 Hz, rumbling bass following climate variables

Data value → pitch frequency, data density → note duration, magnitude → volume. 15-minute stereo composition (44.1kHz, 16-bit WAV, ~150MB).

Visualization → README

Chladni pattern system using Processing.js. Pre-computes frequency-to-pattern mappings: low frequencies (30-200 Hz) create simple geometric patterns (M=1-3, N=1-3), high frequencies (1000-4000 Hz) generate intricate designs (M=9-12, N=9-12). Runs in 20-minute cycles starting at :10, :30, :50 past each hour. Displays 10,000+ particles responding to audio frequencies in real-time.

Lighting Control → README

Two-phase audio-reactive system for WS2813 addressable LED strips:

  1. Pre-processing: Analyzes audio amplitude every 50ms, generates brightness cache mapped to dBFS scale (-40dB = 30%, 0dB = 100%)
  2. Synchronized playback: Reads cache and drives LED brightness in perfect sync with audio

Supports left/right/mixed channel selection. Hardware setup uses GPIO 18 with level shifter, separate 5V power supply (60mA per LED).

Exhibition Deployment → README

Multi-device Raspberry Pi orchestration with NTP time synchronization. Four installation types (PIG, OCTO, SPONGES, SLUG) run identical playback schedules: audio + LED sync every 10 minutes (:00, :10, :20, :30, :40, :50), active 6 AM - 10 PM, overnight restart at 2 AM. Systemd services ensure auto-restart on boot. Each device runs independently but maintains synchronized timing across the exhibition space.

  • Raspberry Pi: Zero W, 5 (64GB microSD)
  • Audio: USB audio adapter & I2S DAC
  • LEDs: WS2813 strips (up to 300 LEDs per device)
  • Power: 5V/2.5A for Pi, separate 5V/3-5A for LEDs
  • Network: WiFi for NTP sync

Web Dashboard → README

Interactive orchestration interface at http://localhost:5000 for controlling a test for the entire pipeline:

  • Data Management: Load and edit 19 JSON timeline files
  • Audio Generation: Configure voice parameters, generate 4-track compositions
  • Job Tracking: Real-time progress monitoring with logs
  • File Downloads: Access all generated audio files (individual voices + combined)
  • Chladni Configuration: Set visualization pattern parameters
  • Timeline Editor: Adjust data points and extrapolation settings
Screenshot 2025-10-26 at 8 25 20 PM

Copyright

© 2025 SPOLIA LLC. All Rights Reserved.

This work is part of a physical art exhibition. No part of this software, audio compositions, visualizations, hardware configurations, data processing methods, or any derivative works may be reproduced, distributed, or used without explicit written permission from the copyright owner. This includes but is not limited to code, documentation, generated audio files, visualization techniques, and hardware schematics.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages