
# Beispiele für fdraw mit prozeduralen Generatoren
# in der Sprache awk.

# reinhard@finalmedia.de
# Thu May 14 11:19:17 AM CEST 2026
# Public Domain


# fdraw beziehen und bauen
wget https://finalmedia.de/code/fdraw.tar.gz
tar xvfz fdraw.tar.gz
cd fdraw
make
sudo cp ./fdraw /usr/bin/fdraw
cd 

# Eine Named Pipe in der Ramdisk erstellen
mkfifo /dev/shm/videocmd

# Stream starten (bleibt ewig im Hintergrund offen und liest die named pipe)

export SCREEN_WIDTH=640
export SCREEN_HEIGHT=480
export SCREEN_FPS=30

(tail -F /dev/shm/videocmd | fdraw | ffplay -loglevel 8 -f rawvideo -pixel_format rgba -video_size 640x480 -framerate 30 -i -) &

# dann kann man nun in einem anderen Terminal
# die fdraw Befehle nach /dev/shm/videocmd pipen
# Hier prozedurales Beispiele als gawk scripte herunterladen

wget https://finalmedia.de/code/fdraw/barnsley.awk 
gawk -f barnsley.awk > /dev/shm/videocmd

wget https://finalmedia.de/code/fdraw/torus.awk 
gawk -f torus.awk > /dev/shm/videocmd

wget https://finalmedia.de/code/fdraw/fire.awk 
gawk -f fire.awk > /dev/shm/videocmd

wget https://finalmedia.de/code/fdraw/starfield.awk 
gawk -f starfield.awk > /dev/shm/videocmd

wget https://finalmedia.de/code/fdraw/plasma.awk 
gawk -f plasma.awk > /dev/shm/videocmd

wget https://finalmedia.de/code/fdraw/rayconst.awk 
gawk -f rayconst.awk > /dev/shm/videocmd

wget https://finalmedia.de/code/fdraw/fallout.awk 
gawk -f fallout.awk > /dev/shm/videocmd

# Du kannst immer in stdout sehen, da es ja nur die 
# fdraw befehle als ascii sequenzen absetzt

od -t u1 /dev/urandom | tr -s " " | cut -d " " -f 2-6 | sed "s/^/p /g"  > /dev/shm/videocmd

# weitere spielereien

find / 2>/dev/null | od -t u1 | tr -s " " | cut -d " " -f 2-6 | sed "s/^/p /g" > /dev/shm/videocmd

