Very nice. And you can add random, like this...
SCREEN _NEWIMAGE(800, 600, 32)
t = 20
RANDOMIZE TIMER
b = 174
xx = 250
DO
_LIMIT 500
IF xx + xx > 1200 THEN xx = 250
FOR yy = 300 TO 700 'STEP 5 * RND + 1
FOR x = 0 TO 500
PSET (x + xx, (SIN(x * 0.1017453 * RND) * t) + yy), _RGB32(25, 50, b)
PSET (x + xx + 360, (SIN(x * 0.017453) * t) + yy + RND), _RGB32(45, 40, b)
NEXT x
NEXT yy
FOR yy = 300 TO 700 STEP (9 * RND + 2)
FOR x = xx - 1300 TO xx
PSET (x + xx, (SIN(x * 0.017453 * RND) * t) + yy), _RGB32(25, 30 * RND + 5, b)
PSET (x + xx + 360, (SIN(x * 0.017453) * t) + yy), _RGB32(25, 75 * RND + 9, b)
NEXT x
NEXT yy
IF tt = 0 THEN t = t + 2: b = b + 2
IF t > 80 THEN tt = 1
IF tt = 1 THEN t = t - 2: b = b - 2
IF t < -80 THEN tt = 0
xx = xx + 10
_DISPLAY
'CLS: 'no CLS...
LOOP WHILE INKEY$ <> CHR$(27)