Haiku Gallery
: x x .5 - 2 * t sin .5 * + ; : y y .5 - 2 * t cos .5 * + ; : square ( n -- n ) dup * ; : d ( x y -- d ) y - square swap x - square + sqrt ; 1.4 0 0 d - 0 0 d 1 < + 0.3 0.2 d .2 > * -0.3 0.2 d .2 > * 0 -0.3 d .3 > * dup .5 * ( Add checker haze ) x y * 100 * cos x 2 + y * 77 * t 10 * + sin < dup push dup push + swap pop + swap pop
Spooky Face Redux
BradN
'25 Feb 05
: x x .5 - 2 * t sin .5 * + ; : y y .5 - 2 * t cos .5 * + ; : square ( n -- n ) dup * ; : d ( x y -- d ) y - square swap x - square + sqrt ; 1.4 0 0 d - 0 0 d 1 < + 0.3 0.2 d .2 > * -0.3 0.2 d .2 > * 0 -0.3 d .3 > * dup .5 *
Spooky Face
BradN
'25 Feb 05
x 40 * sin .1 * .4 + x .5 - dup * + dup y t sin - < swap y swap - + dup .3 * swap
Slime
BradN
'25 Feb 05
: x x 0.5 - abs ; : y y x sin 0.2 * - ; : square ( n -- n ) dup * ; : d ( x y -- d ) y - square swap x - square + sqrt ; : nd ( s x y -- d ) y - square swap x - rot * square + sqrt ; : mask ( n -- n ) 0.2 0.4 d 0.2 < 0.2 0.6 d 0.2 < and * ; x 77 * 3 + cos .2 * y x cos * + 5 0.15 0.55 nd 0.1 < - mask x 88 * y * 3 + cos .2 * y x cos * + 2 0.15 0.55 nd 0.11 < - mask y sin 0.2 * mask
Cat's Eyes
BradN
'25 Feb 05
: x x 0.5 - ; : y y 0.5 - ; : ang x y atan2 ; : dist x x * y y * + sqrt ; ang t 20 mod * cos 10 pow dist 70 * cos 10 pow max dist 0.47 < * dup dup
Spiderweb Redux
booniepepper
'25 Feb 05
: x x 0.5 - ; : y y 0.5 - ; : ang x y atan2 ; : dist x x * y y * + sqrt ; ang 20 * cos 10 pow dist 70 * cos 10 pow max dist 0.47 < * dup dup
Spiderweb
BradN
'25 Feb 05
: parts ( -- blade handle ) x 2 * cos 0.3 * 0.7 + y > x cos 3 pow 0.3 * 0.5 + y < and x 0.05 > and y 10 * sin x + * x 0.05 < x 30 * cos * ; parts + 0.8 * parts 0.5 * + 0.8 * parts drop 0.8 *
Scythe
BradN
'25 Feb 05
: mask ( -- n ) x 0.5 - cos 12 pow y > x 0.5 - cos 2 pow 1 y - > and ; mask mask mask y 0.3 > y 0.8 < and * -0.6 * + mask y 0.8 > and
Candy Corn
BradN
'25 Feb 05
x pi * sin 0.1 pow y > t 20 * cos y 11 * sin x y + 7 * cos + + 0.2 * + 0.5 * dup dup
Gravestone Pulsing Redux
booniepepper
'25 Feb 05
x pi * sin 0.1 pow y > x 20 * cos y 11 * sin x y + 7 * cos + + 0.2 * + 0.5 * dup dup
Gravestone Redux
BradN
'25 Feb 05
x pi * sin 0.1 pow y > 0.5 * dup dup
Gravestone
BradN
'25 Feb 05
0 0 t 1 mod random =
itrains
nmn
'25 Feb 05
x t 1.2 mod < 20 x * sin y 6 * 3 - - abs -
redscope
nmn
'25 Feb 05
: sq dup * ; : norm * sin 1 + 2 / ; : на x 0.5 - sq ; : мёртвой y 0.5 - sq ; : ветке + ; : чернеет sqrt t sin * ; : ворон. dup 40 norm ; : осенний over 60 norm ; : вечер. rot 80 norm ;
Untitled
Anonymous
'25 Feb 05
: x 1 x - .5 - 2.4 * ; : y y .7 - 2.4 * ; : dot dup * swap dup * + ; : l dup -0.04 * r> r> 2dup * 2 * x + >r 2dup z* drop y + r> 2dup >r >r dot + abs rot min swap rot over 1.32457 * t + r> r> 2dup >r >r rot dup cos -2 * swap sin -2 * z+ dot min -rot 1 + ; y x >r >r 4 4 0 l l l l l l l l l drop log 8 / negate swap log 8 / negate swap dup >r 2 ** over 3 ** + r> 3 ** r> r> drop drop ( based on: Emerald Necklace - Manwe ) ( based on shader by Guil )
Emerald Necklace Redux
f.
'25 Feb 05
x 9.2 * sin y 9.2 * sin t 3 * sin * * dup t 2 * sin * dup t 3 * sin *
Disco Redux
Anonymous
'25 Feb 05
: norm 1 + 2 / ; x t * cos norm y t * sin norm t x y + + tan cos norm
Les Maîtres du temps
DarkstarAG
'25 Feb 05
x 0.125 < if 1 0 0 1 else x 0.25 < if 0 1 0 1 else x 0.375 < if 0 0 1 1 else 0 0 0 1 then then then
color bars vertical
david mead
'25 Feb 05
X Y + X Y + X Y + X Y +
first one - hello world
david mead
'25 Feb 05
: r dup 631 * cos abs swap 127 * log * dup floor - ; : d r> r r> r 2dup >r >r y - dup * swap x - dup * + ; : c 2dup > if swap then drop ; .27 .31 >r >r d d d d d d d d d d d d d c c c c c c c c c c c c r> r> drop drop 20 * 1 min 1 over - 99 ** 3 / +
Blood Cells
Manwe
'25 Feb 05
: y0 y 1.6 * .45 - ; : d dup ; : c rot d >r ; : l c c c >r swap >r over * over d r> * swap r> * 4 + d * swap d * + over d * + 7 - swap 1 + min + r> r> r> ; 0 x 1.7 * .85 - d d * y0 d * + 4 + sqrt d d >r >r / y0 r> / -2 t 6.2 + 9 / sin 2 / + r> / l l l l l l l l l l l l l l l l drop drop drop 3.7 / d d * over sqrt -rot
Coffee (final) Redux
Tuby Cheeks
'25 Feb 05
x 0.0000000001 t * / y mod \ x 0.0000000001 t * / 1 mod \ x 0.0000000001 t * / 1 mod \ (x / .0001t ) mod 1
rune combinator, broken Redux Redux
Willamette Stand
'25 Feb 05
: o push negate swap negate y x z+ dup * swap dup * + pop dup * < ; : k push -rot negate swap negate y x z+ 2dup dup * swap dup * + pop dup * < push atan2 - abs 0.1 < pop * ; : q dup rot dup sin swap cos rot * -rot * rot + -rot + swap ; : d t 2 * sin ; : e d 1.2 * ; : n x 15 * + + sin 1 over dup * - sqrt atan2 swap / y 0.7 - > ; 0.6 0.8 -1.57 0.35 k 0.6 0.5 -1.57 d + 0.2 k + 0.6 0.5 -1.57 d + 0.2 q -2 e + 0.25 k + 0.6 0.5 -1.57 d - 0.2 k + 0.6 0.5 -1.57 d - 0.2 q -2 e - 0.25 k + 0.6 0.7 -1.57 d + 0.15 k + 0.6 0.7 -1.57 d + 0.15 q -0.6 e + 0.15 k + 0.6 0.7 -1.57 d - 0.15 k + 0.6 0.7 -1.57 d - 0.15 q -0.6 e - 0.15 k + 0.6 0.8 0.1 o + dup 0 swap 18 1 t 2 / n 22 3 t n + 27 0 t 4 / n 33 4 t 4 / n + + y 0.25 > * +
chatGPT
Anonymous
'25 Feb 05
swap 8 / swap
Untitled
Anonymous
'25 Feb 05
1 1 ang x 0.5 - y 0.5 - atan2 pi / 2.5 * 0.25 - 1 mod 0.5 > x 0.5 - dup * y 0.5 - dup * + .1 < and
Asterisk Redux 2023
Anonymous
'25 Feb 05
: c! 0 ! ; : c@ 0 @ ; : x! 1 ! ; : x@ 1 @ ; : y! 2 ! ; : y@ 2 @ ; : t! 3 ! ; : t@ 3 @ ; : z! 4 ! ; : z@ 4 @ ; : k! 5 ! ; : k@ 5 @ ; : w! 6 ! ; : w@ 6 @ ; : d! 7 ! ; : d@ 7 @ ; : a! 8 ! ; : a@ 8 @ ; : b! 9 ! ; : b@ 9 @ ; : s ( -- ) x@ r@ >= dup if x@ r@ - x! then y@ r@ >= dup if y@ r@ - y! then + 2 mod r@ * c@ + c! r> 1.618033988749895 / >r ; : f 0.0 c! 1.0 >r s s s s s s s s s s s s r> drop ; t t floor - t! 1 t@ - d! t@ 0.618033988749895 * 1 + z! 1 t@ - 0.618033988749895 * t@ + w! x 1.04 - 2 / x! y 0.5 - 2 / y! x@ 0.7071067811865476 * y@ -0.7071067811865476 * + 0.5 + a! x@ 0.7071067811865476 * y@ 0.7071067811865476 * + 0.5 + b! a@ z@ / x! b@ z@ / y! f c@ k! a@ w@ / x! b@ w@ / y! f k@ d@ * c@ t@ * + dup dup
Fibonacci xor zoom
Rinat Fakhrullin
'25 Feb 05
x 256 * floor 0 ! y 256 * floor 1 ! : fr dup floor - ; t pi / fr 2 ! : 2m 2 mod ; : /f / floor ; : s 6.283185307179586 * sin 1 + 2 / ; : p ( a l -- ) >r 0 @ r@ /f 2m 1 @ r@ /f 2m + 2m r> * ; 0 @ 2m 1 @ 2m + 2m 2 p + 4 p + 8 p + 16 p + 32 p + 64 p + 128 p + 256 / 3 ! 3 @ 2 @ + s 3 @ 2 @ + 0.333333 + s 3 @ 2 @ + 0.666666 + s
acid xor texture
Rinat Fakhrullin
'25 Feb 05
: n0 34 ; : n2 0.618033988749895 ; : n3 1.618033988749895 ; : v! 0 ! ; : v@ 0 @ ; : x! 1 ! ; : x@ 1 @ ; : y! 2 ! ; : y@ 2 @ ; : a! 3 ! ; : a@ 3 @ ; : t! 4 ! ; : t@ 4 @ ; : z1! 5 ! ; : z1@ 5 @ ; : z2! 6 ! ; : z2@ 6 @ ; : t2! 7 ! ; : t2@ 7 @ ; : p0 swap * n0 * floor dup 255 > if 256 - then dup 0 < if 256 + then ; : r0 ; : s0 n0 1 - / dup dup ; : x0r over over or -rot and not and ; : xor2 v! y! x! a! x@ v@ - dup 0 >= if x! 1 else drop 0 then y@ v@ - dup 0 >= if y! 1 else drop 0 then x0r if a@ v@ + a! then a@ x@ y@ ; : f0 0 -rot 34 xor2 21 xor2 13 xor2 8 xor2 5 xor2 3 xor2 2 xor2 1 xor2 drop drop ; t n3 / dup floor - t! 1 t@ - t2! t2@ n3 * t@ + z1! t2@ t@ n2 * + z2! z1@ x p0 z1@ y p0 f0 t@ * z2@ x p0 z2@ y p0 f0 t2@ * + s0
The Fibonacci XOR Texture Zoom
Rinat Fakhrullin
'25 Feb 05
: n0 255 ; : v! 0 ! ; : v@ 0 @ ; : x! 1 ! ; : x@ 1 @ ; : y! 2 ! ; : y@ 2 @ ; : a! 3 ! ; : a@ 3 @ ; : t! 4 ! ; : t@ 4 @ ; : z1! 5 ! ; : z1@ 5 @ ; : z2! 6 ! ; : z2@ 6 @ ; : t2! 7 ! ; : t2@ 7 @ ; : p0 0.5 - swap * 0.5 + n0 * floor dup 255 > if 256 - then dup 0 < if 256 + then ; : r0 ; : s0 n0 1 - / dup dup ; : x0r over over or -rot and not and ; : xor2 v! y! x! a! x@ v@ - dup 0 >= if x! 1 else drop 0 then y@ v@ - dup 0 >= if y! 1 else drop 0 then x0r if a@ v@ + a! then a@ x@ y@ ; : f0 0 -rot 128 xor2 64 xor2 32 xor2 16 xor2 8 xor2 4 xor2 2 xor2 1 xor2 drop drop ; t pi / 2 * dup floor - t! 3 2 t@ * - t@ * t@ * t2! 2 t2@ - z1! 2 t2@ - 0.5 * z2! z1@ x p0 z1@ y p0 f0 t2@ * z2@ x p0 z2@ y p0 f0 1 t2@ - * + s0
The XOR Texture Infinite Zoom
Rinat Fakhrullin
'25 Feb 05
: n0 377 ; : p0 n0 * floor ; : s0 n0 1 - / dup dup ; : v! 0 ! ; : v@ 0 @ ; : xr v! swap dup v@ - 0 >= dup if swap v@ - swap then rot dup v@ - 0 >= dup if swap v@ - swap then rot over over or -rot and not and if rot v@ + -rot then ; 0 x p0 y p0 377 xr 233 xr 144 xr 89 xr 55 xr 34 xr 21 xr 13 xr 8 xr 5 xr 3 xr 2 xr 1 xr drop drop s0
The Fibonacci XOR Texture
Rinat Fakhrullin
'25 Feb 05
: n0 256 ; : p0 n0 * floor ; : s0 n0 1 - / dup dup ; : v! 0 ! ; : v@ 0 @ ; : xr v! swap dup v@ - 0 >= dup if swap v@ - swap then rot dup v@ - 0 >= dup if swap v@ - swap then rot over over or -rot and not and if rot v@ + -rot then ; 0 x p0 y p0 256 xr 128 xr 64 xr 32 xr 16 xr 8 xr 4 xr 2 xr 1 xr drop drop s0
The XOR Texture Redux
Rinat Fakhrullin
'25 Feb 05
: n0 255 ; : p0 ( float -- integer ) n0 * floor ; : s0 ( integer -- r g b ) n0 1 - / dup dup ; : v! 0 ! ; : v@ 0 @ ; : xor2 ( acc xval yval lvl -- acc xval yval ) v! ( -- acc xval yval ) swap dup v@ - 0 >= ( -- acc yval xval xflag ) dup if swap v@ - swap then rot dup v@ - 0 >= ( -- acc xval xflag yval yflag ) dup if swap v@ - swap then rot over over or -rot and not and ( -- acc xval yval xyflag ) if rot v@ + -rot then ( -- acc xval yval ) ; 0 x p0 y p0 ( 8 d0 4 d0 2 d0 1 d0 ) ( acc xval yval -- ) 256 xor2 128 xor2 64 xor2 32 xor2 16 xor2 8 xor2 4 xor2 2 xor2 1 xor2 ( acc xval yval -- ) drop drop ( acc ) s0
The XOR Texture
Rinat Fakhrullin
'25 Feb 05
: d2 x 0.5 - dup * y 0.5 - dup * + sqrt ; : c d2 * t - sin ; 5 c 8 c 10 c 1
Oshiboshi
MN
'25 Feb 05
x 0.5 - 20 * y t + y 2 * sin 8 * + sin +
Ragecalm
SN
'25 Feb 05
: yellow 1 x - 40 * t 50 * + sin ; y 40 * t 50 * + sin yellow + \ red x 40 * t 50 * + sin yellow + \ green 1 y - 40 * t 50 * + sin \ blue
Headache
MN
'25 Feb 05
: fx x 0.8 - 2.5 * ; : fy y 0.5 - 2.5 * ; : l2 ( zr zi -- normsq ) dup * swap dup * + ; : mi ( zr zi -- zr' zi' ) over over ( zr zi zr zi ) dup * negate swap dup * + fx + ( zr zi zr' ) rot rot ( zr' zr zi ) * 2 * fy + ( zr' zi' ) ; : mi4 mi mi mi mi ; : mi16 mi4 mi4 mi4 mi4 ; : mandel 0.0 0.0 mi16 2dup l2 2.0 < if mi16 l2 2.0 < if 0.0 else 1.0 then else drop drop 0.125 then ; mandel
Simple Mandelbrot set
SN
'25 Feb 05
: sq dup * ; : r sq swap sq + t + 10 * sin ; x y r 1 x - 1 y - r
Red Green
SN
'25 Feb 05
: x x .5 - t 6 mod 1 + * 0.5 + ; : y y .8 - t 6 mod 1 + * 0.8 + ; : square ( n -- n ) dup * ; : ang ( x y -- n ) 0.5 - swap 0.5 - atan2 ; : dist ( x y -- n ) 0.5 - square push 0.5 - square pop + ; : asterisk ( x y -- f ) 2dup ang pi / 2.5 * 1 mod 0.5 < push dist .1 < pop and ; ( Thanks DarkstarAG ) : alpha ( -- n ) pi 10 / ; : beta y x ang pi + pi 5 / 2 * mod pi 5 / - abs ; : b ( n -- ) alpha sin * alpha cos beta sin * beta cos alpha sin * + / ; : star ( n -- ) b square y x dist > ; : starglow ( n -- ) 1 swap b square y x dist - .1 pow - ; : light ( x y -- ) dist 1 swap - ; x 25 * 1 mod y 25 * 1 mod asterisk 0.35 star and x 7 * 4 mod 2 - y 7 * 4 mod 2 - asterisk x 7 * 4 mod 2 - y 7 * 4 mod 2 - light 0.7 * + x 0.5 - abs 0.4 / y 0.3 - negate < * + 0.35 starglow x 5 * 1 mod y 5 * 1 mod asterisk x 0.5 - abs 0.4 / y 0.3 - negate < * + x 25 * 1 mod y 25 * 1 mod asterisk 0.45 star and 0.4 starglow * + 0.5 starglow
Christmas Asterisk Tree
BradN
'25 Feb 05
: square ( n -- n ) dup * ; : ang ( x y -- n ) 0.5 - swap 0.5 - atan2 ; : dist ( x y -- n ) 0.5 - square push 0.5 - square pop + ; : asterisk ( x y -- f ) 2dup ang pi / 2.5 * 1 mod 0.5 < push dist .1 < pop and ; ( Thanks DarkstarAG ) : alpha ( -- n ) pi 10 / ; : beta y x ang pi + pi 5 / 2 * mod pi 5 / - abs ; : b ( n -- ) alpha sin * alpha cos beta sin * beta cos alpha sin * + / ; : star ( n -- ) b square y x dist > ; : starglow ( n -- ) 1 swap b square y x dist - .1 pow - ; x 25 * 1 mod y 25 * 1 mod asterisk 0.35 star and 0.35 starglow x 25 * 1 mod y 25 * 1 mod asterisk 0.45 star and 0.4 starglow * + 0.5 starglow
Christmas Asterisks
BradN
'25 Feb 05
: square dup * ; : ang 0.5 - swap 0.5 - atan2 ; : dist 0.5 - square push 0.5 - square pop + ; : star 2dup ang pi / 2.5 * 1 mod 0.5 < push dist .1 < pop and ; x y star
Asterisk Redux
BradN
'25 Feb 05
Next