Back to portfolio

Case Study

Urban Data Synthesizer

Turns real hourly climate and air-quality data for a city into music in the browser, with a live-editable mapping from data channels to sound.

Role
Design & development
Year
2026
Status
Working prototype
Urban Data Synthesizer project preview
Overview

The Urban Data Synthesizer fetches real hourly weather and air-quality readings for six cities and routes each stream into a Web Audio synthesizer. The result is a short composition that sounds like the weather and air of a place, plus a patch bay for exploring how data becomes sound.

Problem

Environmental data is usually shown as charts. Sound offers another way to feel change over time, but raw, noisy data mapped straight to pitch sounds like noise.

Solution

Each channel (temperature, humidity, wind, precipitation, pressure, cloud cover, PM2.5, PM10, NO2, ozone) is normalized to a 0..1 range with gaps filled, then routed through a configurable matrix to sound parameters. Pitches are quantized to a chosen musical scale so the output is never accidentally dissonant.

Stack

TypeScript · React · Vite · Tone.js · d3-scale · Open-Meteo APIs

Architecture

System Flow

Data comes client-side from the Open-Meteo forecast and air-quality APIs (CC BY 4.0, no key) and is aligned onto one hourly grid. A normalization step feeds the mapping engine, which drives a scheduler. Timeline mode sequences about 48 hours into a composition with a synced playhead; live mode re-polls the latest reading. A bundled sample keeps the demo working offline.

Learnings

What This Work Sharpened