Gabriel Worm
@ntwormGeneralist programmer working across audio, web and APIs. Currently shipping Ableton Live extensions — usually something else cooking.
- ableton-rc-surface
Turn any phone browser into a wireless MIDI + multi-sensor controller for Ableton Live. 12 performance pads, two physics XY pads, knobs & faders, sensor mappings (motion, orientation, audio, vision), in-browser mapping editor. No phone install. Open-source MIT extension built on the Ableton Extensions SDK.
- Fxhash_Template_HYDRA_with_P5
FXHASH boilerplate (2022) for combining Hydra.js + p5.js in one fxhash-compatible sketch. Personal — paused.
Tools & instruments

RC Surface
AuthorMax4Live device for Ableton Live. Phone browser becomes a wireless MIDI + multi-sensor controller: 12 performance pads, two physics XY pads, knobs & faders, sensor mappings (motion, orientation, audio, vision), in-browser mapping editor. MIT-licensed, open source.

LUCY
CreatorGenerative audiovisual automaton. Max + Ableton + Hydra.js. Probabilistic MIDI control with scale maps, real-time section transitions, frequency-mask-aware final mix. Published on Teia as the `lucy` collection.

Eletronik Fields
CreatorAudiovisual instrument that converts electromagnetic signals to music via a magnetic induction coil. Max 8 patches for sound-to-MIDI mapping, with real-time oscilloscope visuals projected in a dark room.

Kakofoni Orquestra
Collaborator + ProgrammerGenerative audiovisual on fxhash. Hydra.js visuals by Rangga Purnama Aji, audio and reactivity by me. Inspired by Brian Eno's Ambient 1: Music for Airports. Edition #37 acquired by the Madison Museum.
Generative pieces
30 generative tokens published on fxhash asnt_worm, between 2021 and 2026. Hydra.js for visuals, Web Audio API + OSC for sound reactivity. Highlights include Kakofoni Orquestra (edition #37, acquired by the Madison Museum).
Browse all on fxhash ↗Gaussian Splatting
3D photogrammetry captures rendered in the browser. The pipeline runs through TouchDesigner's Gaussian Splatting TOP and lands here as a web-friendly .splat after compression inPlayCanvas SuperSplat. The second capture streams beside this section as a live WebGL scene.