right so heres a couple of lines of innefficient code that makes a lavalamplike effect.

Unless you have one hell of a computer i would avoid changing the w and h values to higher. you might have to lower them.

sync on : hide mouse : w = 400: h = 300 : p1# = 1400 : p2# = 2500 : p3# = 1300 : x1# = rnd(w) : x2# = rnd(w) : x3# = rnd(w) : y1# = -rnd(100) : y2# = -rnd(100) : y3# = -rnd(100) : s1# = 1 : s2# = 2 : s3# = 3
do:inc y1#,s1# : inc y2#,s2#: inc y3#,s3# : x3# = mousex() : y3# = mousey() :if y1# > h+100 then y1# = -rnd(100) : x1# = rnd(w)
if y2# > h+100 then y2# = -rnd(100) : x2# = rnd(w)
a2startdotbatch 10000 : for i = 1 to 100+w : for ii = 1 to h : pp1# = p1#/((x1#-i)^2+(y1#-ii)^2) : pp2# = p2#/((x2#-i)^2+(y2#-ii)^2) : : pp3# = p3#/((x3#-i)^2+(y3#-ii)^2) : p# = pp1#+pp2#+pp3# : if p# >= 0.5 then a2dot i,ii,rgb(pp3#/p#*255,pp1#/p#*255,pp2#/p#*255)
next : NEXT : a2endbatch : sync : cls : LOOP

and here is a perhaps cooler version

Rem Project: Dark Basic Pro Project
Rem Created: Saturday, December 10, 2011
Rem ***** Main Source File *****
sync on : hide mouse : w = 400: h = 600 : p1# = 1400 : p2# = 1400 : p3# = 1400 : x1# = rnd(w) : x2# = rnd(w) : x3# = rnd(w) : y1# = -rnd(100) : y2# = -rnd(100) : y3# = -rnd(100) : s1# = 1 : s2# = 2 : s3# = 3
do:inc y1#,s1# : inc y2#,s2#: inc y3#,s3# : x3# = mousex() : y3# = mousey() :if y1# > h+100 then y1# = -rnd(100) : x1# = rnd(w)
if y2# > h+100 then y2# = -rnd(100) : x2# = rnd(w)
a2startdotbatch 10000 : for i = 1 to 100+w : for ii = 1 to h : pp1# = p1#/((x1#-i)^2+(y1#-ii)^2) : pp2# = p2#/((x2#-i)^2+(y2#-ii)^2) : : pp3# = p3#/((x3#-i)^2+(y3#-ii)^2) : p# = pp1#+pp2#+pp3# : if p#*10 > int(p#*10)-0.15 and p#*10 < int(p#*10)+0.15 or p# > 1 then a2dot i,ii,rgb(pp3#/p#*255,pp1#/p#*255,pp2#/p#*255)
next : NEXT : a2endbatch : sync : cls : LOOP

and here is the probably coolest version

Rem Project: Dark Basic Pro Project
Rem Created: Saturday, December 10, 2011
Rem ***** Main Source File *****
sync on : hide mouse : w = 800: h = 600 : p1# = 1400 : p2# = 1400 : p3# = 1400
x1# = rnd(w) : x2# = rnd(w) : x3# = rnd(w) : y1# = -rnd(100) : y2# = -rnd(100) : y3# = -rnd(100)
s1# = 3 : s2# = 6 : s3# = 9
cv# = 12 : cv2# = 5 : cv3# = 5
do:inc y1#,s1# : inc y2#,s2#: inc y3#,s3# : x3# = mousex() : y3# = mousey() :if y1# > h+100 then y1# = -rnd(100) : x1# = rnd(w)
if y2# > h+100 then y2# = -rnd(100) : x2# = rnd(w)
a2startdotbatch amount : amount = 0 : for i = 1 to 100+w : for ii = 1 to h : pp1# = p1#/((x1#-i)^2+(y1#-ii)^2) : pp2# = p2#/((x2#-i)^2+(y2#-ii)^2) :
pp3# = p3#/((x3#-i)^2+(y3#-ii)^2) : p# = pp1#+pp2#+pp3# : var# = max(abs((p#*cv#-int(p#*cv#+0.5)))*cv2#,0.1) : if p# < 0.9 then a2dot i,ii,rgb(pp3#/p#*25/var#,pp1#/p#*25/var#,pp2#/p#*25/var#) : inc amount
next : NEXT : a2endbatch : sync : softdimscreen(rgb(cv3#,cv3#,cv3#)) : LOOP
function dimscreen(dimness as dword)
a2setblendmode 2,2,3
a2fillbox 0,0,screen width(),screen height(),dimness
a2setblendmode 2,2,1 : a2dot 1,-10,0
ENDFUNCTION
function softdimscreen(dimness as dword)
a2setblendmode 2,10,3
a2fillbox 0,0,screen width(),screen height(),dimness
a2setblendmode 2,2,1 : a2dot 1,-10,0
ENDFUNCTION

attached is THE coolest version