Volumetric LED Controller

Standalone 3D animation controller for Raspberry Pi 5. Renders white-light intensities at mapped XYZ coordinates and outputs DMX over Art-Net.

Status

Phase Title Status
1 Core + simulation ✅ Complete
2 Importers + Art-Net ✅ Complete
3–6 Remaining phases Pending

Stack

  • Node.js 20+ (plain JavaScript)
  • Express + ws (HTTP + WebSocket API)
  • node-evdev (global keyboard/Teensy input on Pi only)
  • Jest (testing)
  • node:vm sandbox (generative script presets — opt-in, disabled by default)

Features

  • Stateless volumetric effects: wave, gradient, noise, plasma, fire, particles
  • Generative scripting: user-written JavaScript presets running in a sandboxed VM (e.g. Game of Life, cellular automata, particle swarm). Opt-in — disabled by default. Requires authentication to edit scripts.
  • Flexible DMX channel mapping per emitter (R/G flip = swap slot numbers)
  • Art-Net output (unicast/broadcast, multi-universe, brightness limits)
  • Global keyboard/Teensy input via Linux evdev
  • Browser UI with WebGL preview (Phase 3+)

Development

npm install
npm test              # 69 tests, all passing
npm run simulate      # Phase 1: renderer running, no Art-Net output

Requirements

See volumetric_led_controller_spec_v6.md and PLAN.md.

Description
No description provided
Readme 147 KiB
Languages
JavaScript 100%