A waveform crawls across an oscilloscope screen.
This is the whole thing. Phluxel runs it on every cell, every step — the animation is what
happens when you repeat it. BASE is the painted scene, so the rule reads the artwork
instead of its own output and never smears.
// Astra scene. _sx/_sy rescale the 256x192 coordinates to any grid size.
PARAM _motion=1
LET _sx = 256/GW
LET _sy = 192/GH
LET _p={FRAC,TICK*_motion/48}
LET _t=_p*6.283185307179586
LET _r=BASE.R
LET _g=BASE.G
LET _b=BASE.B
LET _wave=94+20*{SIN,X*_sx*.075-_t*2}+6*{SIN,X*_sx*.19+_t}
LET _dist={ABS,Y*_sy-_wave}
LET _m1=(X*_sx>40 & X*_sx<166 & Y*_sy>55 & Y*_sy<133 & _dist<3) ? 1 : 0
LET _r1=_m1 ? 64 : _r
LET _g1=_m1 ? 126 : _g
LET _b1=_m1 ? 110 : _b
LET _m2=(X*_sx>40 & X*_sx<166 & Y*_sy>55 & Y*_sy<133 & _dist<1.1) ? 1 : 0
LET _r2=_m2 ? 208 : _r1
LET _g2=_m2 ? 229 : _g1
LET _b2=_m2 ? 169 : _b1
LET _m3=(X*_sx>40 & X*_sx<166 & Y*_sy>55 & Y*_sy<133 & {ABS,X*_sx-(41+124*_p)}<1) ? 1 : 0
LET _r3=_m3 ? 121 : _r2
LET _g3=_m3 ? 168 : _g2
LET _b3=_m3 ? 139 : _b2
A=255
R=_r3
G=_g3
B=_b3
The coordinates are written for the 256×192 canvas this was painted on;
_sx/_sy rescale them, so the same rule works on a smaller grid too.
Download the script ↓
_motion knob while it runs. You never have to stop and restart.Phluxel runs in the browser as a demo, and the free desktop edition has every feature with a watermark on exports.
Open the browser demo Download free (Windows) Wishlist on Steam