This came to mind quite by accident when I misplaced a variable for a get and then paste image command. Move the mouse around or leave it still. Press the "c" key to clear the screen. (You might want to watch it a little while to get the full effect.)
randomize timer()
hide mouse
cls 0:sleep 1000:cls 0
sync on
rem get one image for main screen
get image 2,0,0,639,479
rem make bitmap for drawing sprites
create bitmap 1,639,479
rem make a new sprite
gosub make_sprite
do
xp=mousex():yp=mousey()
rem a random number is chose from subroutine
rem makes sprite trail north/west or northwest
if randomnum=1 then paste image 2,0,0
rem makes sprite trail east/southeast/south
if randomnum=2 then paste image 2,xpos,ypos
rem makes sprite trail south/southwest/west
if randomnum=3 then paste image 2,0,ypos
rem makes sprite trail north/northeast/east
if randomnum=4 then paste image 2,xpos,0
rem pastes sprite at mouse coords
paste sprite 1,xp,yp
rem clears screen to black color
if inkey$()="c" then cls 0
rem makes sprite trail north/west or northwest
if randomnum=1 then get image 2,xxpos,yypos,639,479
rem makes sprite trail east/southeast/south
if randomnum=2 then get image 2,0,0,639,479
rem makes sprite trail north/northeast/east
if randomnum=3 then get image 2,xxpos,0,639,479
rem makes sprite trail north/northeast/east
if randomnum=4 then get image 2,0,yypos,639,479
rem randomly changes variables used in paste/get image
random=rnd(7)+1
if random=1 then inc xpos
if random=2 then inc ypos
if random=3 then inc xxpos
if random=4 then inc yypos
if random=5 then dec xpos
if random=6 then dec ypos
if random=7 then dec xxpos
if random=8 then dec yypos
rem checks extremes of the variables
if xpos<0 then xpos=0
if ypos<0 then ypos=0
if xxpos<0 then xxpos=0
if yypos<0 then yypos=0
if xpos>15 then xpos=15
if ypos>15 then ypos=15
if xxpos>15 then xxpos=15
if yypos>15 then yypos=15
rem flag for creating new sprite
inc timetomakesprite
rem gosub make new sprite if flag reaches 100
if timetomakesprite=100 then gosub make_sprite
sync
loop
end
make_sprite:
set current bitmap 1
rem randomly make pattern and make sprite from that image and scale sprite
cls 0
length=rnd(10)+10
for times=1 to length
ink rgb(rnd(255),rnd(255),rnd(255)),0
ranum=rnd(6)+1
if ranum=1 then dot rnd(15),rnd(15)
if ranum=2 then dot rnd(15),rnd(4)+8
if ranum=3 then dot rnd(4)+8,rnd(15)
if ranum=4 then a=rnd(8):b=rnd(8):line a,b,a+rnd(8)+8,b+rnd(8)+8
if ranum=5 then a=rnd(8):b=rnd(8)+8:line a,b,a+rnd(8)+8,b-rnd(8)+8
if ranum=6 then a=rnd(16):b=rnd(16):circle a,b,rnd(7)+1
if ranum=7 then a=rnd(16):b=rnd(16):box a,b,a+rnd(3)+1,b+rnd(3)+1
next times
rem get image of random pattern for sprites
get image 1,0,0,16,16
cls 0
rem get two sprites and then scale both
sprite 1,700,500,1
scale sprite 1,rnd(200)+100
set current bitmap 0
paste image 2,0,0
rem reset make sprite flag to 0
timetomakesprite=0
rem get a new random number for random direction of trailing sprite
randomnum=rnd(3)+1
return