-- lol. laughably slow! -- learn some short cut aliases: ul |*> #=> up left |_self> u |*> #=> up |_self> ur |*> #=> up right |_self> l |*> #=> left |_self> r |*> #=> right |_self> dl |*> #=> down left |_self> d |*> #=> down |_self> dr |*> #=> down right |_self> -- learn our difference operators: smooth-R |*> #=> subtraction-invert[255] pos( dr 0.0625 R0 ul |_self> + d 0.0625 R0 u |_self> + dl 0.0625 R0 ur |_self> + r 0.0625 R0 l |_self> + 0.5 R0 |_self> + l 0.0625 R0 r |_self> + ur 0.0625 R0 dl |_self> + u 0.0625 R0 d |_self> + ul 0.0625 R0 dr |_self>) smooth-G |*> #=> subtraction-invert[255] pos( dr 0.0625 G0 ul |_self> + d 0.0625 G0 u |_self> + dl 0.0625 G0 ur |_self> + r 0.0625 G0 l |_self> + 0.5 G0 |_self> + l 0.0625 G0 r |_self> + ur 0.0625 G0 dl |_self> + u 0.0625 G0 d |_self> + ul 0.0625 G0 dr |_self>) smooth-B |*> #=> subtraction-invert[255] pos( dr 0.0625 B0 ul |_self> + d 0.0625 B0 u |_self> + dl 0.0625 B0 ur |_self> + r 0.0625 B0 l |_self> + 0.5 B0 |_self> + l 0.0625 B0 r |_self> + ur 0.0625 B0 dl |_self> + u 0.0625 B0 d |_self> + ul 0.0625 B0 dr |_self>) -- copy values to old-values: |null> => map[R,R0] rel-kets[R] |> |null> => map[G,G0] rel-kets[G] |> |null> => map[B,B0] rel-kets[B] |> -- apply our operators: |null> => map[smooth-R,R] rel-kets[R0] |> |null> => map[smooth-G,G] rel-kets[G0] |> |null> => map[smooth-B,B] rel-kets[B0] |>