Last try:
REM SIN(thetic)
REM by MONOS
REM
REM http://mic.ha.bei.t-online.de
if check display mode(640,480,24) then set display mode 640,480,24 else set display mode 640,480,32
sync on : sync rate 0 : hide mouse : autocam off: randomize timer()
create bitmap 1,255,255 : dim value(3) : gosub Textur : objects=10 : count=1
for a=1 to objects : make object cube a,a*2 : texture object a,1 : set object a,1,0,0,0,0,0,0 : count=0-count
ghost object on a,count : next a
make object plain a,80,60 : set object a,1,0,0,0,0,0,0 : texture object a,2 : make object plain a+1,80,60 : set object a+1,1,0,0,1,0,0,0
texture object a+1,1 : backdrop off : move camera -30
DO : x1=wrapvalue(x1+1) : y1=wrapvalue(y1+1) : z1=wrapvalue(z1+1)
if x1=0 : count=0-count : inc counter : endif
if counter > 2 : counter=0 : gosub Textur :endif
for a=1 to objects : rotate object a,wrapvalue(x1+1*a),wrapvalue(y1+2*a),wrapvalue(z1+6*a) : next a
if count > 0 : show object a : hide object a+1 : copy bitmap 0,0,0,639,479,1,0,0,size/4-1,size/4-1 : get image 2,0,0,size/4,size/4
else : hide object a : show object a+1 : endif
SYNC : LOOP
Textur:
for a=255 to 0 step -3 : set gamma a,a,a : next a : size=rnd(200)+50
for x=0 to size : for y=0 to size : for a=1 to 3 : value(a) =127+64*sin(x*a)+64*sin(y*a) : next a
ink rgb(value(1),value(2),value(3)),0 : dot x,y : next y : next x : get image 1,0,0,size,size
get image 2,0,0,size,size : for a=0 to 255 step 5 : set gamma a,a,a : next a : return