Here's my first attempt at a 20 liner - The smoothest sphere I've seen in DB (and 0 polys!) - inspired by some other 2D, 3D entries:
dim dot#(2000,5):for t = 1 to 2000:repeat:dot#(t,1)=rnd(80)+280
dot#(t,2)=rnd(80)+200:until (dot#(t,1)-320)^2+(dot#(t,2)-240)^2<40^2 AND dot#(t,2)<>240
dot#(t,3)=rnd(1)
next t
sync on:do:cls
ink rgb(255,255,255),0:center text 320,290,"By Chris Knott"
for t = 1 to 2000
dot#(t,4)=dot#(t,5)/40
if dot#(t,3)=0 then dot#(t,1)=dot#(t,1)+dot#(t,4):ink rgb(255,0,0),0
if dot#(t,3)=1 then dot#(t,1)=dot#(t,1)-dot#(t,4):ink rgb(100,0,0),0
if dot#(t,1)>320+dot#(t,5) then dot#(t,3)=1
if dot#(t,1)<320-dot#(t,5) then dot#(t,3)=0
dot#(t,5)=(SQRT(40^2-(dot#(t,2)-240)^2)+320)-320:dot dot#(t,1),dot#(t,2):next t:sync:loop
dim dot#(2000,5)
for t = 1 to 2000
repeat
dot#(t,1)=rnd(80)+280
dot#(t,2)=rnd(80)+200
until (dot#(t,1)-320)^2+(dot#(t,2)-240)^2<40^2 AND dot#(t,2)<>240
rem dot#(t,3)=rnd(1)
next t
sync on:do:cls
for t = 1 to 2000
dot#(t,5)=(SQRT(40^2-(dot#(t,2)-240)^2)+320)-320
dot#(t,4)=dot#(t,5)/40
if dot#(t,3)=0 then dot#(t,1)=dot#(t,1)+dot#(t,4):ink rgb(0,255,0),0
if dot#(t,3)=1 then dot#(t,1)=dot#(t,1)-dot#(t,4):ink rgb(0,100,0),0
if dot#(t,1)>320+dot#(t,5) then dot#(t,3)=1
if dot#(t,1)<320-dot#(t,5) then dot#(t,3)=0
dot dot#(t,1),dot#(t,2)
next t
sync:loop
dim dot#(2000,5)
for t = 1 to 2000
repeat
dot#(t,1)=320
dot#(t,2)=rnd(80)+200
until (dot#(t,1)-320)^2+(dot#(t,2)-240)^2<40^2 AND dot#(t,2)<>240
dot#(t,3)=rnd(1)
next t
sync on:do:cls
for t = 1 to 2000
dot#(t,5)=(SQRT(40^2-(dot#(t,2)-240)^2)+320)-320
dot#(t,4)=dot#(t,5)/20
if dot#(t,3)=0 then dot#(t,1)=dot#(t,1)+dot#(t,4)
if dot#(t,3)=1 then dot#(t,1)=dot#(t,1)-dot#(t,4)
if dot#(t,1)>320+dot#(t,5) then dot#(t,3)=1
if dot#(t,1)<320-dot#(t,5) then dot#(t,3)=0
dot dot#(t,1),dot#(t,2)
next t
ink rgb(0,0,200),0
sync:loop
...and like that; he's gone...