PRAGMATIKO
← All Experiments
Interactive prototype/

Mechanical Music

I built a mechanical spider you can play in your browser. Its footsteps become MIDI notes and a visible score.

Thesis

Data can be music. We can build instruments from the way the world moves.

Artifact

A self-contained HTML prototype built with Three.js, a procedural walking system, foot-contact sampling at 120 Hz, embedded instrument audio, and MIDI and CSV exports.

Play the prototype

Open the spider prototype, change its speed, toggle turning, switch instruments and scrub through the movement. Download the HTML to keep a local copy.

Demo video

Cinematic render · 15 seconds

Movement becomes music

The 15-second film adds a small tick on bass and a directed camera sequence. The interactive prototype lets you explore the spider itself. Sound on.

01

Footsteps become notes

Three.js renders the mechanism. A procedural walking system tracks when each foot lifts and lands, sampled at 120 Hz. Each leg has an assigned pitch and instrument voice; touchdown timing becomes the rhythm.

The same contact data draws the score and exports as MIDI. CSV exports include the event time, leg and foot position. The browser plays embedded instrument renders synchronized to the movement.

02

Play it in the browser

Change playback speed, toggle turning, switch between mallets and keys, or scrub to a particular moment. The scene, audio and score follow the timeline.

The prototype is bundled into one HTML file. It opens directly in a browser, with no install or API key. MIDI and CSV downloads give you the notes and movement data to work with elsewhere.

03

Data can be music

An animal’s gait, a human gesture, a heartbeat or a shifting tide can become a score. This experiment starts with eight legs; the same approach could turn other movements into instruments. We can build instruments from the way the world moves.

Three.jsCreative codingMIDISonificationProcedural animation
SEE MEE: See yourself in the clothing from the brands you love as you shop online →