rebol[]
plot: copy[pen off]
maxx: 600
maxy: 400 
random/seed now/precise
main: layout [
	box (as-pair (maxx) (maxy)) black effect reduce ['draw plot] 
]
kuva2: copy/part skip to-image main 20x20 (as-pair maxx maxy)
print "wait..."
kerroinx: 0.001
kerroiny: 0.001
for kuvaind 1 1000 1 [
	x0: random maxx
	y0: random maxy
	x1: random maxx
	y1: random maxy
	for x 0 (maxx - 1) 1 [
		for y 0 (maxy - 1) 1 [
			xp: x0 + (kerroinx * x)
			yp: y0 + (kerroiny * y)
			et1: square-root (((xp - x1) * (xp - x1)) + ((yp - y1) * (yp - y1)))
			Ri: (xp + yp * et1)
			Gi: (xp * yp + et1)
			Bi: xp + yp + et1
			R: 255 * cosine (360 * sine Ri)
			G: 255 * sine (360 * cosine Gi) + et1
			B: 255 * cosine (360 * sine Bi)
			väri: to-tuple compose [(to-integer (G + B)) (to-integer (G + R)) (to-integer (B + R))]
			if (R * G * B) <= (3 * 128 * 128 * 128) [
				Ri: (xp + yp * et1)
				Gi: (xp * yp + et1)
				Bi: xp + yp + et1
				R: 255 * sine (360 * cosine Ri) + et1
				G: 255 * sine (360 * sine Gi) 
				B: 255 * cosine (360 * cosine Bi)			
				
				väri: to-tuple compose [(to-integer (G + B)) (to-integer (G + R)) (to-integer (B + R))]
			]
	
			if (R * G * B) >= (3 * 128) [
				Ri: (xp + yp - et1)
				Gi: (xp * yp + et1)
				Bi: xp + yp * et1
				R: 255 * sine (360 * cosine Ri)
				G: 255 * sine (360 * sine Gi) 
				B: 255 * cosine (360 * cosine Bi)			
				
				väri: to-tuple compose [(to-integer (R)) (to-integer (G)) (to-integer (B))]
			]		
			poke kuva2 (as-pair x y) (väri)
		]
	]
	save/png to-file rejoin [kuvaind ".png"] kuva2
	print kuvaind
]
halt