VIEW
Aurora
← BACK TO PROJECTS

AURORA: SPACE WEATHER SONIFIED

An immersive 3D audio-visual experience that transforms real NOAA space weather data into a living aurora. Solar wind speed, magnetic field strength, plasma density, and geomagnetic storm indices drive 40,000 shader particles and six-voice generative audio.

ROLE Creator / Developer
YEAR 2025
TYPE Data Sonification / WebGL
STATUS Live

Overview

Aurora is a browser-based experience that takes the last seven days of real space weather measurements from NOAA's deep-space satellites and replays them as light and sound. The Sun constantly bombards Earth with charged particles travelling at hundreds of kilometres per second. When this solar wind hits our magnetic field, it funnels toward the poles and ignites the atmosphere—creating the aurora borealis.

Rather than visualising this data as charts and numbers, Aurora translates each measurement into something you can see and hear. Quiet solar conditions produce gentle green curtains and soft major chords. When a geomagnetic storm hits—when the interplanetary magnetic field turns southward and the solar wind surges—the aurora shifts to deep reds and purples, dissonant harmonies build, sub-bass rumbles, and the entire scene intensifies.

Aurora Welcome Screen

How the Data Becomes the Aurora

🌬️

Solar Wind Speed

Controls aurora brightness, particle flow speed, and the pitch of a deep FM synthesis drone. Faster wind means a more active, higher-pitched scene.

🔬

Plasma Density

Drives plucked pentatonic notes—more particles per cubic centimetre means more frequent plucks, creating busier melodic textures.

🧲

Magnetic Bz

The most important storm indicator. When Bz turns negative, the aurora shifts from green to red/purple, and harmonics move from major to minor/dissonant intervals.

Magnetic Bt

Controls magnetic field line distortion and drives filtered pink noise—stronger fields mean brighter, more open noise textures.

📊

Kp Index

Geomagnetic storm index triggers sub-bass rumbles and increases shooting star frequency across the sky.

☀️

X-Ray Flux

Solar flare spikes trigger high bell chimes—brief, bright tones when the Sun produces X-ray bursts.

High Intensity Storm

Visual System

The 3D scene is built entirely in Three.js with custom GLSL vertex and fragment shaders. 40,000 aurora particles are arranged in six vertical curtain bands, each with individual phase offsets creating the characteristic columnar ray structure of real aurora.

Post-processing uses a ping-pong render target system for particle trails—each frame blends with a faded version of the previous frame, creating soft luminous trails. This feeds into a bloom pass for the characteristic aurora glow.

The scene includes 6,000 solar wind stream particles, 10 dynamic magnetic field lines that flex with field strength, layered starfields across three depth planes, and shooting stars that spawn more frequently during storms.

Five camera presets: orbital (with mouse parallax), ISS view, ground level looking up, polar top-down, and cinematic sweep.

Ground View

Sonification Engine

The audio engine is built with Tone.js, running six simultaneous voices: FM synthesis drone tracking solar wind speed, polyphonic pad shifting from major to minor chords with Bz, pluck synth driven by plasma density, pink noise filtered by magnetic field strength, bell synth triggered by X-ray flux, and membrane synth for sub-bass during high Kp activity.

A breathing LFO modulates master gain, scaling with storm activity. The result is a continuously evolving ambient soundscape responding to the same data driving the visuals.

Live Data Pipeline

On load, the app fetches four NOAA SWPC JSON endpoints covering the previous seven days, parsed into a unified timeline of roughly 5,000 data points.

Timeline playback at ~2 seconds per data point with smooth interpolation. A scrubber bar shows day markers and allows jumping to any point in the week. When the timeline ends, it auto-fetches fresh data—always reflecting the most recent week.

If NOAA endpoints are unavailable, the app falls back to procedurally generated data with realistic storm events.

Timeline Scrubber

Technical Stack

THREE.JS GLSL SHADERS TONE.JS NOAA SWPC API WEBGL POST-PROCESSING FM SYNTHESIS REACT JAVASCRIPT REAL-TIME DATA

NEXT PROJECT

MEMORIES →