From 8ae9a9116e4931a43ee25a1aa1160403b627e27d Mon Sep 17 00:00:00 2001 From: m11 Date: Wed, 28 Jan 2026 19:16:39 +0100 Subject: [PATCH] Simple wrapper script for shady --- README.md | 17 +++++++++++++++++ pixelthudconf.py | 1 + setup.sh | 4 ++++ shaders/example.glsl | 35 +++++++++++++++++++++++++++++++++++ shady.sh | 8 ++++++++ 5 files changed, 65 insertions(+) create mode 100644 shaders/example.glsl create mode 100755 shady.sh diff --git a/README.md b/README.md index 960d2bc..58c92e9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ # Pixelthud Animationen für die Decken-LED-Matrix im Chaospott. Kompatibel zu pixelserver2. + +## Shady wrapper + +Wrapper script for https://codeberg.org/polyfloyd/shady + +go install github.com/polyfloyd/shady/cmd/shady@latest + +### Preview with https://codeberg.org/polyfloyd/ledcat: + +cargo install ledcat + +export EGL_PLATFORM=surfaceless +export MESA_GL_VERSION_OVERRIDE=3.3 +export LEDCAT_GEOMETRY=80x40 + +./shady.sh 80 40 20 | ledcat -f 20 show + diff --git a/pixelthudconf.py b/pixelthudconf.py index 6be5ddb..439c4df 100644 --- a/pixelthudconf.py +++ b/pixelthudconf.py @@ -5,4 +5,5 @@ Apps = [ {"guiname": "Rock-paper-scissors-spock-lizard", "name": "rps", "cmd": "apps/rps.py", "persistent": False}, {"guiname": "Doom Fire", "name": "doomfire", "cmd": "apps/doom_fire_psx2.py", "persistent": False}, {"guiname": "Maxwell FDTD", "name": "fdtd", "cmd": "apps/fdtd.py", "persistent": False}, + {"guiname": "Shady wrapper", "name": "shady", "cmd": "apps/shady.sh", "persistent": False}, ] diff --git a/setup.sh b/setup.sh index 992ca1c..5581ea4 100755 --- a/setup.sh +++ b/setup.sh @@ -5,12 +5,16 @@ cp -f plane_wave.py ../../apps/ cp -f rps.py ../../apps/ cp -f doom_fire_psx2.py ../../apps/ cp -f fdtd.py ../../apps/ +cp -f shady.sh ../../apps/ +mkdir -p ../../apps/shaders/ +cp -a shaders/. ../../apps/shaders/ chmod +x ../../apps/fading_pixels.py chmod +x ../../apps/plane_wave.py chmod +x ../../apps/rps.py chmod +x ../../apps/doom_fire_psx2.py chmod +x ../../apps/fdtd.py +chmod +x ../../apps/shady.sh cp -f pixelthudconf.py ../../configs/ diff --git a/shaders/example.glsl b/shaders/example.glsl new file mode 100644 index 0000000..aaae69a --- /dev/null +++ b/shaders/example.glsl @@ -0,0 +1,35 @@ +/** + * The MIT License + * + * Copyright (c) 2011 Mr.doob + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +void mainImage(out vec4 fragColor, in vec2 fragCoord) { + vec2 position = ( fragCoord.xy / iResolution.xy ); + + float color = 0.0; + color += sin( position.x * cos( iTime / 15.0 ) * 80.0 ) + cos( position.y * cos( iTime / 15.0 ) * 10.0 ); + color += sin( position.y * sin( iTime / 10.0 ) * 40.0 ) + cos( position.x * sin( iTime / 25.0 ) * 40.0 ); + color += sin( position.x * sin( iTime / 5.0 ) * 10.0 ) + sin( position.y * sin( iTime / 35.0 ) * 80.0 ); + color *= sin( iTime / 10.0 ) * 0.5; + + fragColor = vec4( vec3( color, color * 0.5, sin( color + iTime / 3.0 ) * 0.75 ), 1.0 ); +} diff --git a/shady.sh b/shady.sh new file mode 100755 index 0000000..df17a4f --- /dev/null +++ b/shady.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +shaderfile="$(shuf -n1 -e shaders/*)" + + +shady -i "${shaderfile}" -ofmt rgb24 -g "${1}x${2}" -f "${3:-20}" -rt + +exit 0