The tonearm rides a turning record.
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 _dx=X*_sx-105
LET _dy=(Y*_sy-99)*1.6
LET _rr=_dx*_dx+_dy*_dy
LET _m1=(_rr>360 & _rr<2800 & {ABS,_dx*{SIN,_t}-_dy*{COS,_t}}<1 & _dx*{COS,_t}+_dy*{SIN,_t}>0) ? 1 : 0
LET _r1=_m1 ? 136 : _r
LET _g1=_m1 ? 149 : _g
LET _b1=_m1 ? 143 : _b
LET _m2=((X*_sx-(105+10*{COS,_t}))*(X*_sx-(105+10*{COS,_t}))+(Y*_sy-(99+6*{SIN,_t}))*(Y*_sy-(99+6*{SIN,_t}))<4) ? 1 : 0
LET _r2=_m2 ? 237 : _r1
LET _g2=_m2 ? 215 : _g1
LET _b2=_m2 ? 172 : _b1
LET _m3=((X*_sx-(105))*(X*_sx-(105))+(Y*_sy-(99))*(Y*_sy-(99))<4) ? 1 : 0
LET _r3=_m3 ? 238 : _r2
LET _g3=_m3 ? 224 : _g2
LET _b3=_m3 ? 189 : _b2
LET _m4=(X*_sx>175 & X*_sx<178 & Y*_sy<126 & Y*_sy>125-(5+12*(.5+.5*{SIN,_t*2+0.0}))) ? 1 : 0
LET _r4=_m4 ? 168 : _r3
LET _g4=_m4 ? 194 : _g3
LET _b4=_m4 ? 160 : _b3
LET _m5=(X*_sx>179 & X*_sx<182 & Y*_sy<126 & Y*_sy>125-(5+12*(.5+.5*{SIN,_t*2+0.9}))) ? 1 : 0
LET _r5=_m5 ? 168 : _r4
LET _g5=_m5 ? 194 : _g4
LET _b5=_m5 ? 160 : _b4
LET _m6=(X*_sx>183 & X*_sx<186 & Y*_sy<126 & Y*_sy>125-(5+12*(.5+.5*{SIN,_t*2+1.8}))) ? 1 : 0
LET _r6=_m6 ? 168 : _r5
LET _g6=_m6 ? 194 : _g5
LET _b6=_m6 ? 160 : _b5
LET _m7=(X*_sx>187 & X*_sx<190 & Y*_sy<126 & Y*_sy>125-(5+12*(.5+.5*{SIN,_t*2+2.7}))) ? 1 : 0
LET _r7=_m7 ? 168 : _r6
LET _g7=_m7 ? 194 : _g6
LET _b7=_m7 ? 160 : _b6
LET _m8=(X*_sx>191 & X*_sx<194 & Y*_sy<126 & Y*_sy>125-(5+12*(.5+.5*{SIN,_t*2+3.6}))) ? 1 : 0
LET _r8=_m8 ? 168 : _r7
LET _g8=_m8 ? 194 : _g7
LET _b8=_m8 ? 160 : _b7
LET _m9=(X*_sx>195 & X*_sx<198 & Y*_sy<126 & Y*_sy>125-(5+12*(.5+.5*{SIN,_t*2+4.5}))) ? 1 : 0
LET _r9=_m9 ? 168 : _r8
LET _g9=_m9 ? 194 : _g8
LET _b9=_m9 ? 160 : _b8
A=255
R=_r9
G=_g9
B=_b9
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