Add treppe-gl shader renderer for treppe2000
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
5e6bc54d08
1 changed files with 550 additions and 0 deletions
29
README.md
Normal file
29
README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# treppe-gl
|
||||
|
||||
Render Shadertoy style GLSL shaders onto the treppe2000.
|
||||
|
||||
The shader is rendered into a 16x1 float framebuffer (x = stair step) and
|
||||
sent as RGBW16 UDP frames to the priority port (3124) of `trepped` on
|
||||
`treppe.club.berlin.ccc.de`. While it runs it overrides whatever else the
|
||||
stairs show. On exit it sends a black frame. The stairs power must be on
|
||||
(Bluescreen > Stairs).
|
||||
|
||||
nix-shell --run "python treppe_gl.py shaders/flow.glsl"
|
||||
nix-shell --run "python treppe_gl.py shaders/pulse.glsl --dry-run"
|
||||
|
||||
Options: `--host`, `--port`, `--fps`, `--dry-run` (send nothing),
|
||||
`--no-window` (headless), `--white {extract,alpha,off}`.
|
||||
|
||||
Shaders define `mainImage(out vec4 fragColor, in vec2 fragCoord)` and may
|
||||
use `iResolution`, `iTime`, `iTimeDelta` and `iFrame`. The file is reloaded
|
||||
when it changes; on a compile error the last working shader keeps running.
|
||||
|
||||
White channel: `extract` (default) sets `w = min(r,g,b)` and subtracts it
|
||||
from rgb, `alpha` uses the shader's alpha, `off` sends w = 0.
|
||||
|
||||
Debug window: top is the shader at full resolution, bottom are the 16 steps
|
||||
as sent (step numbers, colour, white bar). Steps 13-15 are greyed out,
|
||||
`trepped` only drives 13 channels. The step to channel mapping is done by
|
||||
`trepped`, frames are sent in step order.
|
||||
|
||||
Tests: `nix-shell --run "python -m pytest tests"`.
|
||||
Loading…
Reference in a new issue