I got inspired, and translated Karsten Schmidt's "Liquid Paint" forth demo into 10 lines of Curv. The Curv version includes two sliders for interactively tweaking the two parameters that Schmidt varied during his demo:
parametric Iter :: int_slider(1,50) = 50; Amp :: slider(0,2) = 0.6 in
square >> colour ((x,y,z,t) ->
let px = x; py = y;
in do
for (i in 1..Iter)
let oldx = px; oldy = py; in (
px := px + Amp/i*sin(i*oldy + t + 0.3*i) + 1;
py := py + Amp/i*sin(i*oldx + t + 0.3*(i+10)) + 1;
)
in [0.5*sin(3.0*px)+0.5,0.5*sin(3.0*py)+0.5,sin(px+py)])
I gotta say that Forth is an acquired taste. I find my version easier to understand.