Live Coding Model
shadecore supports a form of contained live coding.
Rather than embedding a text editor or visual node graph, the system is built around three ideas:
- Shaders define structure
- JSON defines intent
- MIDI defines performance
Pre-declared Control Space
Parameters and MIDI bindings are declared ahead of time, even if they are not immediately used.
This allows a performer to:
- run a shader with unused controls ready
- connect or reinterpret MIDI mappings mid-performance
- reshape behavior without restarting the engine
Playing the Shader
Once running, a shader is not static:
- values are continuously mutable
- routing can change at runtime
- outputs can be reconfigured live
- the system behaves like an instrument, not a render job
This makes shadecore suitable for:
- live shader improvisation
- exploratory performance
- recorded sessions driven by real-time interaction
Why This Is Still “Coding”
Although code edits happen outside the engine, the structure of the system is manipulated live.
In this sense, shadecore treats live coding as:
the real-time negotiation of structure, behavior, and control — not only text input