A radar sweep finds the same boat on every turn.
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 _x=X*_sx-128
LET _y=Y*_sy-91
LET _rr=_x*_x+_y*_y
LET _dot=_x*{COS,_t}+_y*{SIN,_t}
LET _cross=_x*{SIN,_t}-_y*{COS,_t}
LET _m1=(_rr<3481 & _dot>0 & _cross>0 & _cross<_dot*.35) ? 1 : 0
LET _r1=_m1 ? 45 : _r
LET _g1=_m1 ? 104 : _g
LET _b1=_m1 ? 98 : _b
LET _m2=(_rr<3481 & _dot>0 & {ABS,_cross}<.9) ? 1 : 0
LET _r2=_m2 ? 187 : _r1
LET _g2=_m2 ? 211 : _g1
LET _b2=_m2 ? 153 : _b1
LET _b0={FRAC,_p-0.84}
LET _m3=((X*_sx-151)*(X*_sx-151)+(Y*_sy-56)*(Y*_sy-56)<10 & _b0<.35) ? 1 : 0
LET _r3=_m3 ? 227 : _r2
LET _g3=_m3 ? 193 : _g2
LET _b3=_m3 ? 123 : _b2
LET _b1={FRAC,_p-0.44}
LET _m4=((X*_sx-92)*(X*_sx-92)+(Y*_sy-106)*(Y*_sy-106)<10 & _b1<.35) ? 1 : 0
LET _r4=_m4 ? 227 : _r3
LET _g4=_m4 ? 193 : _g3
LET _b4=_m4 ? 123 : _b3
LET _b2={FRAC,_p-0.1}
LET _m5=((X*_sx-161)*(X*_sx-161)+(Y*_sy-115)*(Y*_sy-115)<10 & _b2<.35) ? 1 : 0
LET _r5=_m5 ? 227 : _r4
LET _g5=_m5 ? 193 : _g4
LET _b5=_m5 ? 123 : _b4
A=255
R=_r5
G=_g5
B=_b5
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