Haiku Gallery
\ TURBULENT \ Simulation of BRUSSELATOR Multiple oscillation modes \ Mode 1: fast oscillation x 7 * sin y 7 * cos * t 5 * sin * \ Mode 2: slow wave x 3 * y 3 * + sin t 2 * cos * + \ Mode 3: autocatalytic coupling dup dup * 0.5 * + \ Normalize and color 0.5 + 0.5 * dup 0.3 + swap dup 0.7 * swap 1
TURBULENT
Claude Tarvydas
'26 Jan 30
\ SPIRALS \ Brusselator-like Autocatalytic wave patterns \ Center coordinates x 0.5 - y 0.5 - \ Polar: radius and angle 2dup dup * swap dup * + sqrt -rot atan2 \ Keep radius, compute spiral phase over 15 * - t 3 * + \ Brusselator oscillation: sin²(spiral) sin dup * \ Modulate by radius for decay (radius still on stack) swap 2 * negate exp * \ Color: orange/blue oscillation dup dup 0.5 + swap 1
SPIRALS
Claude Tarvydas
'26 Jan 30
1 x 9 * t 2 * + sin 20 / y + dup 0.33 < swap 0.66 > or dup
Беларуский флаг
Anonymous
'26 Jan 25
: r x 0.5 - 2 pow y 0.5 - 2 pow + 0.5 pow ; : angle y 0.5 - x 0.5 - atan2 pi 2 * mod t 2 / + ; : wave angle 5 * sin 10 / r + ; : wobble t 4 * sin 50 / + ; : mask 0.35 wave - wobble 200 * -1 max 1 min ; : channel y t 5 / + * 1 mod over * swap ; mask 4 channel 2 channel 1 channel drop
Starfish
Kapunta
'26 Jan 25
t dup floor - 10 * floor position ! \ Calculate progression. position @ 10 / \ Calculate light position, t floor 2 mod if 1 swap - else then fposition ! \ switching direction if needed. x dup fposition @ >= swap fposition @ .1 + < and 1 * \ Arrange on grid. y dup .475 > swap .525 < and * \ Clamp vertically.
Larson Scanner
oofoe
'26 Jan 23
x \ red 1 x - \ greeen x pi * sin \ blue 1 \ alpha
Colour Ramp
oofoe
'26 Jan 13
x .1 mod 10 * y .1 mod 10 * 0 t 1 mod sin
Blinkfade Boxen
oofoe
'26 Jan 12
: grayscale 1 mod dup dup ; : structure t t + sin x * t cos y * + ; : fast 4e3 * t + ; random audio structure fast grayscale
structure fast grayscale
Anonymous
'26 Jan 03
: square dup * ; : dist square swap square + sqrt ; : center 0.5 - swap 0.5 - ; x y center 2dup dist push atan2 pop swap 5 * t + sin 1 + 4 / - abs 1 + 1 swap / 8 **
Untitled
Anonymous
'25 Dec 15
: neg -1 * ; : h 0.5 ; : x_c x h - abs ; : christmas x_c y h h y > if - neg else drop neg 1 + then < ; : **2 dup * ; : decorations x t 0.1 + sin 2 / h - + **2 y 0.05 - **2 + 0.05 **2 < x t 0.4 + sin 2 / h - + **2 y 0.05 - **2 + 0.05 **2 < or x t 0.8 + sin 2 / h - + **2 y 0.05 - **2 + 0.05 **2 < or x t 1.2 + sin 2 / h - + **2 y 0.05 - **2 + 0.05 **2 < or x t 0.1 + sin 2 / h - + **2 y 0.20 - **2 + 0.05 **2 < or x t 0.4 + sin 2 / h - + **2 y 0.20 - **2 + 0.05 **2 < or x t 0.8 + sin 2 / h - + **2 y 0.20 - **2 + 0.05 **2 < or x t 1.2 + sin 2 / h - + **2 y 0.20 - **2 + 0.05 **2 < or x t 0.1 + sin 2 / h - + **2 y 0.55 - **2 + 0.05 **2 < or x t 0.4 + sin 2 / h - + **2 y 0.55 - **2 + 0.05 **2 < or x t 0.8 + sin 2 / h - + **2 y 0.55 - **2 + 0.05 **2 < or x t 1.2 + sin 2 / h - + **2 y 0.55 - **2 + 0.05 **2 < or x t 0.1 + sin 2 / h - + **2 y 0.75 - **2 + 0.05 **2 < or x t 0.4 + sin 2 / h - + **2 y 0.75 - **2 + 0.05 **2 < or x t 0.8 + sin 2 / h - + **2 y 0.75 - **2 + 0.05 **2 < or x t 1.2 + sin 2 / h - + **2 y 0.75 - **2 + 0.05 **2 < or ; 0 christmas decorations
christmas tree (ugly)
greg
'25 Nov 10
x pi * x y - x y z* y y y z*
tertial uppluck
lelf
'25 Oct 25
: d dup ; : m 0.4 * 0.7 + - ; : a y - abs 0.1 < x ; : r t swap / d floor - 1.96 * 0.98 - d 0 > 2 * 1 - * 0.01 + ; : e 2.9 r 0.94 * 0.03 + ; : f 3.7 r ; : p f 0.9 * 0.05 + d t ; e x - d * f y - d * + sqrt 0.02 < p 3 * sin m e * - a 0.03 < * p 2 * cos m 1 e - * - a 0.97 > * + + d d
PONG game Redux
Anonymous
'25 Oct 20
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .5 - t sin 3 / + dup * y .5 - dup * + sqrt .1 <
Moving Circle
Shinkai
'25 Jun 16
x .7 - dup * y .3 - dup * + sqrt .25 <
Circle on the lower right hand corner
Shinkai
'25 Jun 16
: center ( -- x y ) 0.5 0.5 ; : xy ( -- x y ) x y ; : mouse ( -- x y ) mx my ; : sq ( n -- n² ) dup * ; : distance ( x1 y1 x2 y2 -- r ) rot - sq rot rot - sq + sqrt ; mouse xy distance dup ( show distance in red channel, circle in green ) 0.2 < 2 / ( reduce brightness )
mouse-following circle
cben
'25 Feb 05
: center ( -- x y ) 0.5 0.5 ; : xy ( -- x y ) x y ; : sq ( n -- n² ) dup * ; : distance ( x1 y1 x2 y2 -- r² ) rot - sq rot rot - sq + sqrt ; center xy distance dup ( show distance in red channel, circle in green ) 0.2 < 2 / ( reduce brightness )
circle
cben
'25 Feb 05
: square dup * ; : dist square swap square + sqrt ; : 2dup over over ; : spiral 0.1 - swap 0.1 - 2dup dist push atan2 t 0.02 * * pop + 100 * sin ; x y spiral dup dup
Moiré 1 Redux Redux
acidx
'25 Jan 28
: t t pi * 2 / ; : l * + sin ; : r t 1 y t + 4 l + 1.57 ; : x x 4 * 2 - t y 3 l + ; : v 2dup x >= swap x < * -rot swap - l ; : a r 4 l ; : b r 1 l ; : c r 2 l ; : d r 3 l ; 0 d a v a b v b c v c d v 0.1 0.2
twister
boomlinde
'25 Jan 27
\ Original 256 bytes DOS intro by unlord / xylem \ Released on Function 2017 demo \ Modified by acidx 2025 : aa x .5 - 2 ** y .5 - 2 ** + sqrt .3 - ; : bb y .5 - x .5 - atan2 ; : a aa 2 / ; : b bb ; : s' t + b + b sin t sin * 2 * + cos .1 * ; : $ 1.6 + 6.4 mod s' ; : h 1.6 * >r r@ s' r@ $ - 42 * a r@ s' - r> $ a - min 128 * 0 max 1 min * + ; : g 1.6 * dup dup s' .1 - r@ * a rot s' - rot $ a - min - ; 0 0 h 1 h 2 h 3 h >r 0 g 3 g * 1 g 10 g * 2 g 4 g * r> drop
Twist Ring Redux Remix
acidx
'25 Jan 20
: флаг y 0.333 > if 0.81 0.09 0.13 1 ( красный цвет ) else 0.03 0.486 0.188 1 ( зёленый цвет ) then ; флаг
Беларуский флаг v1.0
GleckStar
'25 Jan 02
( Click to random restart ) : 1+ 2 * + ; : s+ >r r@ 32 / floor r> 32 mod 32768 * + ; : s- >r r@ 32768 mod 32 * r> 32768 / floor 32 mod + ; : c0 >r r@ 2 mod r@ 32 / floor 2 mod 32 * + r@ 1024 / floor 2 mod 1024 * + r> 32768 / floor 2 mod 32768 * + ; : rule >r r@ 6 = if 1 else r@ 5 = r@ 7 = or if 1 else r@ 1 = r@ 3 = or if 0 else r@ 8 >= if 0 else 0 then then then then r> drop ; : newgen >r r@ 16 mod rule r@ 32 / floor 16 mod rule 32 * + r@ 1024 / floor 16 mod rule 1024 * + r> 32768 / floor 16 mod rule 32768 * + ; : update 0 4 ! 0 5 ! 0 6 ! 0 7 ! 1 @ s+ >r 1 @ s- 8 ! 4 @ r@ 1+ 1 @ 1+ 8 @ 1+ 4 ! 5 @ r@ 1+ 8 @ 1+ 5 ! 6 @ r> 1+ 1 @ 1+ 8 @ 1+ 6 ! 2 @ s+ >r 2 @ s- 8 ! 5 @ r@ 1+ 2 @ 1+ 8 @ 1+ 5 ! 6 @ r@ 1+ 8 @ 1+ 6 ! 7 @ r> 1+ 2 @ 1+ 8 @ 1+ 7 ! 3 @ s+ >r 3 @ s- 8 ! 6 @ r@ 1+ 3 @ 1+ 8 @ 1+ 6 ! 7 @ r@ 1+ 8 @ 1+ 7 ! 4 @ r> 1+ 3 @ 1+ 8 @ 1+ 4 ! 0 @ s+ >r 0 @ s- 8 ! 7 @ r@ 1+ 0 @ 1+ 8 @ 1+ 7 ! 4 @ r@ 1+ 8 @ 1+ 4 ! 5 @ r> 1+ 0 @ 1+ 8 @ 1+ 5 ! 0 @ 4 @ + newgen 0 ! 1 @ 5 @ + newgen 1 ! 2 @ 6 @ + newgen 2 ! 3 @ 7 @ + newgen 3 ! ; : life 15 @ 0 = t 2 * 1 mod 0.5 < and if 1 15 @ - 15 ! update else 15 @ 1 = t 2 * 1 mod 0.5 > and if 1 15 @ - 15 ! then then ; : draw y 4 * floor @ x 4 * floor >r 2 r> 5 * ** / floor 2 mod dup dup ; : ran random 2 20 ** * 1 - ; 0 button if ran c0 0 ! ran c0 1 ! ran c0 2 ! ran c0 3 ! 0 0 0 else life draw then
Game of Life
SAKURA
'24 Dec 30
( 16x25 Pixcel Editor ) ( Q or Click=Draw, A=Erase ) ( Fixed the bug in bit inversion handling for columns where only bit24 is 1 and bits0-23 are 0, affecting bit0-bit32. ) : wy 25 * floor ; : wx 16 * floor ; : get24 >r r@ 16777216 = r@ 0 <> r> 1 < and or ; : set24 >r r@ get24 if r> else r@ 0 = if r> drop 16777216 else r> 2 24 ** / then then ; : reset24 >r r@ get24 if r@ 16777216 = if r> drop 0 else r> 2 24 ** * then else r> then ; : get23 >r r@ get24 if r> 2 24 ** * else r> then ; : d >r r@ 24 = if r> drop get24 else get23 2 r> ** / floor 2 mod then ; : , ( v y - f ) x wx = >r y wy d r> * ; : # ( c y v - c' y' ) , + ; : s dup @ abs swap # ; : draw 0 0 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s 12 s 13 s 14 s 15 s 1 ; : toggle my wy >r r@ 24 = if mx wx dup @ 1 button if reset24 else 0 button if set24 then then swap ! r> drop else mx wx dup @ dup get24 -rot 16777216 mod get23 dup 2 r> ** dup >r / floor 2 mod if r> 1 button * - rot if set24 then swap ! else r> 0 button * + rot if set24 then swap ! then then ; mx 1 < my 1 < mx 0 >= my 0 >= and and and if toggle then draw
16x25 Pixcel Editor - Fixed Version 2
SAKURA
'24 Dec 29
( 16x25 Pixcel Editor ) ( Q or Click=Draw, A=Erase ) ( Fixed the bug in the handling of the top row. ) : wy 25 * floor ; : wx 16 * floor ; : get24 >r r@ 16777216 = r@ 0 <> r> 1 < and or ; : set24 >r r@ get24 if r> else r@ 0 = if r> drop 16777216 else r> 2 24 ** / then then ; : reset24 >r r@ get24 if r@ 16777216 = if r> drop 0 else r> 2 24 ** * then else r> then ; : get23 >r r@ get24 if r> 2 24 ** * else r> then ; : d >r r@ 24 = if r> drop get24 else get23 2 r> ** / floor 2 mod then ; : , ( v y - f ) x wx = >r y wy d r> * ; : # ( c y v - c' y' ) , + ; : s dup @ abs swap # ; : draw 0 0 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s 12 s 13 s 14 s 15 s 1 ; : toggle my wy >r r@ 24 = if mx wx dup @ buttons 2 / floor 2 mod if reset24 else buttons 2 mod if set24 then then swap ! r> drop else mx wx dup @ dup get24 -rot get23 dup 2 r> ** dup >r / floor 2 mod if r> buttons 2 / floor 2 mod * - rot if set24 then swap ! else r> buttons 2 mod * + rot if set24 then swap ! then then ; mx 1 < my 1 < mx 0 >= my 0 >= and and and if toggle then draw
16x25 Pixcel Editor - Fixed Version
SAKURA
'24 Dec 29
( 16x25 Pixcel Editor ) ( Q or Click=Draw, A=Erase ) : wy 25 * floor ; : wx 16 * floor ; : get24 >r r@ 16777216 = r@ 0 <> r> 1 < and or ; : set24 >r r@ get24 if r> else r@ 0 = if r> drop 16777216 else r> 2 24 ** / then then ; : get23 >r r@ get24 if r> 2 24 ** * else r> then ; : d >r r@ 24 = if r> drop get24 else get23 2 r> ** / floor 2 mod then ; : , ( v y - f ) x wx = >r y wy d r> * ; : # ( c y v - c' y' ) , + ; : s dup @ abs swap # ; : draw 0 0 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s 12 s 13 s 14 s 15 s 1 ; : toggle my wy >r r@ 24 = if mx wx dup @ set24 swap ! r> drop else mx wx dup @ dup get24 -rot get23 dup 2 r> ** dup >r / floor 2 mod if r> buttons 2 / floor 2 mod * - rot if set24 then swap ! else r> buttons 2 mod * + rot if set24 then swap ! then then ; mx 1 < my 1 < mx 0 >= my 0 >= and and and if toggle then draw
16x25 Pixcel Editor
SAKURA
'24 Dec 29
: p 2 t floor 14 mod ** ; 0 x p * floor p / 107 * y p * floor p / 10007 * + 1 + sin t * pi mod sin dup
Pseudo-Random
SAKURA
'24 Dec 29
: ini 0 ; : n1 1 ; : n2 2 ; : n3 3 ; : n4 4 ; : n5 5 ; : n6 6 ; : r0 7 ; : r1 8 ; : r2 9 ; : r3 10 ; : r4 11 ; : r5 12 ; : r6 13 ; : r7 14 ; : r8 15 ; : n * 1 mod .5 - 4 * ; : ra4 4096 n ; : ra3 65536 n ; : ra2 256 n ; : ra1 1 n ; : relu 0 max ; : ac relu \ some movement .2 t pi * 2 / sin 16 / + atan2 ; : r3ac @ ra3 8 / + ac ; : r4ac @ ra4 8 / + ac ; : calc x .5 - r0 @ ra1 * y .5 - r0 @ ra2 * + r0 r3ac n1 ! x .5 - r1 @ ra1 * y .5 - r1 @ ra2 * + r1 r3ac n2 ! x .5 - r2 @ ra1 * y .5 - r2 @ ra2 * + r2 r3ac n3 ! n1 @ r3 @ ra1 * n2 @ r3 @ ra2 * n3 @ r3 @ ra3 * + + r3 r4ac n4 ! n1 @ r4 @ ra1 * n2 @ r4 @ ra2 * n3 @ r4 @ ra3 * + + r4 r4ac n5 ! n1 @ r5 @ ra1 * n2 @ r5 @ ra2 * n3 @ r5 @ ra3 * + + r5 r4ac n6 ! n4 @ r6 @ ra1 * n5 @ r6 @ ra2 * n6 @ r6 @ ra3 * + + r6 r4ac \ R n4 @ r7 @ ra1 * n5 @ r7 @ ra2 * n6 @ r7 @ ra3 * + + r7 r4ac \ G n4 @ r8 @ ra1 * n5 @ r8 @ ra2 * n6 @ r8 @ ra3 * + + r8 r4ac \ B ( Using intermediate calculation results for color effects, just for fun. ) n1 @ + n4 @ + 3 / -rot n2 @ + n5 @ + 3 / -rot n3 @ + n6 @ + 3 / -rot ; init @ 0 = if random r0 ! random r1 ! random r2 ! random r3 ! random r4 ! random r5 ! random r6 ! random r7 ! random r8 ! 1 ini ! 0 0 0 ( noise removal ) else t 2 / 1 mod 0.5 < ini @ 0.5 > and ini @ 1.5 < and if ini @ 1 + ini ! then t 2 / 1 mod 0.5 > ini @ 1.5 > and if ini @ 1 + ini ! then ini @ 2.5 > if 0 ini ! then calc then
Random Nuron
SAKURA
'24 Dec 27
: ro negate 10 @ 11 @ rot dup cos swap sin z* 11 ! 10 ! ; : grid 12 @ ro 10 @ .5 + .05 mod .0017 < 11 @ .5 + .05 mod .0015 < or ; : of 10 @ 11 @ z+ 11 ! 10 ! ; : re x .5 - 10 ! y .7 - 11 ! 0 12 ! t 15 @ 60 / * pi * pi + cos abs .2 * .5 + 10 @ 11 @ rot 0 z* 11 ! 10 ! ; : b 10 @ 2 ** 11 @ 2 ** + sqrt .01 < ; : v of ro 10 @ >= 0 10 @ <= and 11 @ abs .004 < and ; : p 0.1 pi 2 ; : q re 0 @ 2 / ro ; : stickman 0 re 0 @ 4 / negate ro 10 @ 2 ** 11 @ 2 ** + sqrt dup .05 < swap .042 > and or .015 -.005 of b or -.03 0 of b or re 0 @ 2 / ro 0.14 pi 2 / negate 0 .05 v or q p / 0 @ * 0 .075 v or p * 1 @ * -.1 0 v or q p / 2 @ * pi + 0 .075 v or p * 3 @ * pi + -.1 0 v or pi 4 / negate 13 ! q p / 4 @ * 13 @ + 0 .19 v or p * 5 @ * 13 @ + -.1 0 v or pi pi 4 / + 14 ! q p / 6 @ * 14 @ + 0 .19 v or p * 7 @ * 14 @ + -.1 0 v or ; : r random .5 - ; : ar drop drop drop 1 1 1 ; : handle-click 0 button if 9 @ if else 1 9 ! my 0.5 < if 15 @ 1 - 15 ! then my 0.5 > if 15 @ 1 + 15 ! then then my 0.5 < if y 0.1 < x .5 - abs y < and if ar then then my 0.5 > if y 0.9 > x .5 - abs 1 y - < and if ar then then else 0 9 ! then ; 15 @ not if 136 15 ! 0 9 ! then 8 @ not if r 0 ! r 1 ! r 2 ! r 3 ! r 4 ! r 5 ! r 6 ! r 7 ! 1 8 ! 0 0 0 else 15 @ 30 / t * 1 mod dup .5 < 8 @ .5 > and 8 @ 1.5 < and if 8 @ 1 + 8 ! then .5 > 8 @ 1.5 > and if 8 @ 1 + 8 ! then 8 @ 2.5 > if 0 8 ! then stickman dup dup then x .5 - 10 ! y .5 - 11 ! t 15 @ 100.5 - 200 / * 12 ! grid or -rot handle-click
Random Stickman Redux2
SAKURA
'24 Dec 26
: ro negate 10 @ 11 @ rot dup cos swap sin z* 11 ! 10 ! ; : grid 12 @ ro 10 @ .5 + 9 @ mod .0017 < 11 @ .5 + 9 @ mod .0015 < or ; : of 10 @ 11 @ z+ 11 ! 10 ! ; : re t 2.16 * pi * pi + cos abs .04 * .5 + >r x .5 - t sin 10 * * r@ * t 4 / + 1 mod .5 - 10 ! y .5 - t sin abs 10 * * r@ * .2 + 1 mod .7 - 11 ! 0 12 ! r> 10 @ 11 @ rot 0 z* 11 ! 10 ! ; : b 10 @ 2 ** 11 @ 2 ** + sqrt .01 < ; : v of ro 10 @ >= 0 10 @ <= and 11 @ abs .004 < and ; : p 0.1 pi 2 ; : q re 0 @ 2 / ro ; : stickman 0 re 10 @ 2 ** 11 @ 2 ** + sqrt dup .05 < swap .042 > and or .015 -.005 of b or -.03 0 of b or re 0 @ 2 / ro 0.14 pi 2 / negate 0 .05 v or q p / 0 @ * 0 .075 v or p * 1 @ * -.1 0 v or q p / 2 @ * pi + 0 .075 v or p * 3 @ * pi + -.1 0 v or pi 4 / negate 13 ! q p / 4 @ * 13 @ + 0 .19 v or p * 0 @ * 13 @ + -.1 0 v or pi pi 4 / + 14 ! q p / 1 @ * 14 @ + 0 .19 v or p * 2 @ * 14 @ + -.1 0 v or ; : r random .5 - ; 8 @ not if r 0 ! r 1 ! r 2 ! r 3 ! r 4 ! 1 8 ! 0 0 0 else 4.32 t * 1 mod dup .5 < 8 @ .5 > and 8 @ 1.5 < and if 8 @ 1 + 8 ! then .5 > 8 @ 1.5 > and if 8 @ 1 + 8 ! then 8 @ 2.5 > if 0 8 ! then stickman dup dup then x .5 - 10 ! y .5 - 11 ! t .1 * 12 ! .05 9 ! grid or -rot
Random Stickman Redux
SAKURA
'24 Dec 26
: ro negate 10 @ 11 @ rot dup cos swap sin z* 11 ! 10 ! ; : grid 12 @ ro 10 @ .5 + 9 @ mod .0017 < 11 @ .5 + 9 @ mod .0015 < or ; : of 10 @ 11 @ z+ 11 ! 10 ! ; : re x .5 - 10 ! y .7 - 11 ! 0 12 ! t 2.16 * pi * pi + cos abs .2 * .5 + 10 @ 11 @ rot 0 z* 11 ! 10 ! ; : b 10 @ 2 ** 11 @ 2 ** + sqrt .01 < ; : v of ro 10 @ >= 0 10 @ <= and 11 @ abs .004 < and ; : p 0.1 pi 2 ; : q re 0 @ 2 / ro ; : stickman 0 re 0 @ 4 / negate ro 10 @ 2 ** 11 @ 2 ** + sqrt dup .05 < swap .042 > and or .015 -.005 of b or -.03 0 of b or re 0 @ 2 / ro 0.14 pi 2 / negate 0 .05 v or q p / 0 @ * 0 .075 v or p * 1 @ * -.1 0 v or q p / 2 @ * pi + 0 .075 v or p * 3 @ * pi + -.1 0 v or pi 4 / negate 13 ! q p / 4 @ * 13 @ + 0 .19 v or p * 5 @ * 13 @ + -.1 0 v or pi pi 4 / + 14 ! q p / 6 @ * 14 @ + 0 .19 v or p * 7 @ * 14 @ + -.1 0 v or ; : r random .5 - ; 8 @ not if r 0 ! r 1 ! r 2 ! r 3 ! r 4 ! r 5 ! r 6 ! r 7 ! 1 8 ! 0 0 0 else 4.32 t * 1 mod dup .5 < 8 @ .5 > and 8 @ 1.5 < and if 8 @ 1 + 8 ! then .5 > 8 @ 1.5 > and if 8 @ 1 + 8 ! then 8 @ 2.5 > if 0 8 ! then stickman dup dup then x .5 - 10 ! y .5 - 11 ! t .1 * 12 ! .05 9 ! grid or -rot
Random Stickman
SAKURA
'24 Dec 26
x .5 - y .5 - .1 .1 t 100 mod 0 z* dup cos swap sin rot exp dup -rot * -rot * swap z* 2dup atan2 10 * sin 0 > -rot 2 ** swap 2 ** + sqrt log 10 * sin 0 > 2dup not and -rot swap not and or dup dup
Complex Number 2
SAKURA
'24 Dec 25
: w 1 @ 0 @ atan2 dup 10 * sin swap t 2 @ + + sin * 0 @ 2 ** 1 @ 2 ** + sqrt log 10 * sin * ; x .5 - 4 * y .5 - 4 * 2dup 2dup z* 2dup z* z* 2dup 1 0 z+ >r -rot r> -rot -1 0 z+ 2dup 2dup negate z* drop >r negate z* r@ / swap r> / swap 1 1 t 10 mod 0 z* dup cos swap sin rot exp dup -rot * -rot * swap z* 1 ! 0 ! 1 2 ! w 3 2 ! w 5 2 ! w ( Inspired by www.youtube.com/watch?v=xl3DViAbzvA )
Complex Number Redux
SAKURA
'24 Dec 25
: w 1 @ 0 @ atan2 dup 10 * sin swap t 2 @ + + sin * 0 @ 2 ** 1 @ 2 ** + sqrt log 10 * sin * ; x .5 - 4 * y .5 - 4 * 2dup 2dup z* 2dup z* z* 2dup 1 0 z+ >r -rot r> -rot -1 0 z+ 2dup 2dup negate z* drop >r negate z* r@ / swap r> / swap 3 t 10 mod ** 0 z* 1 ! 0 ! 1 2 ! w 3 2 ! w 5 2 ! w
Complex Number
SAKURA
'24 Dec 25
Next