Update Alpha 3:- fixed a small bug
Example Blobs:

Code:
Code:
EnableExplicit
;Example 'Shader': Blobs
;Original by PauloFalcao: https://www.shadertoy.com/view/lsfGzr
XIncludeFile "spp.pbi"
Structure VEC2
x.f
y.f
EndStructure
Structure VEC4
x.f
y.f
z.f
w.f
EndStructure
Global time.f
Procedure.f MakePoint(x.f,y.f,fx.f,fy.f,sx.f,sy.f)
Protected xx.f,yy.f
xx = x + Sin(time * fx) * sx
yy = y + Cos(time * fy) * sy
If xx Or yy
ProcedureReturn 1.0 / Sqr(xx * xx + yy * yy)
EndIf
ProcedureReturn 0.0
EndProcedure
Procedure.i Callback(*coord.VEC2,*color.VEC4)
Protected x.f,y.f,a.f,b.f,c.f
x = ((*coord\x / 320) * 2.0 - 1.0) * 2.0
y = ((*coord\y / 320) * 2.0 - (200 / 320)) * 2.0
a = MakePoint(x,y,3.3,2.9,0.3,0.3)
a + MakePoint(x,y,1.9,2.0,0.4,0.4)
a + MakePoint(x,y,0.8,0.7,0.4,0.5)
a + MakePoint(x,y,2.3,0.1,0.6,0.3)
a + MakePoint(x,y,0.8,1.7,0.5,0.4)
a + MakePoint(x,y,0.3,1.0,0.4,0.4)
a + MakePoint(x,y,1.4,1.7,0.4,0.5)
a + MakePoint(x,y,1.3,2.1,0.6,0.3)
a + MakePoint(x,y,1.8,1.7,0.5,0.4)
b = MakePoint(x,y,1.2,1.9,0.3,0.3)
b + MakePoint(x,y,0.7,2.7,0.4,0.4)
b + MakePoint(x,y,1.4,0.6,0.4,0.5)
b + MakePoint(x,y,2.6,0.4,0.6,0.3)
b + MakePoint(x,y,0.7,1.4,0.5,0.4)
b + MakePoint(x,y,0.7,1.7,0.4,0.4)
b + MakePoint(x,y,0.8,0.5,0.4,0.5)
b + MakePoint(x,y,1.4,0.9,0.6,0.3)
b + MakePoint(x,y,0.7,1.3,0.5,0.4)
c = MakePoint(x,y,3.7,0.3,0.3,0.3)
c + MakePoint(x,y,1.9,1.3,0.4,0.4)
c + MakePoint(x,y,0.8,0.9,0.4,0.5)
c + MakePoint(x,y,1.2,1.7,0.6,0.3)
c + MakePoint(x,y,0.3,0.6,0.5,0.4)
c + MakePoint(x,y,0.3,0.3,0.4,0.4)
c + MakePoint(x,y,1.4,0.8,0.4,0.5)
c + MakePoint(x,y,0.2,0.6,0.6,0.3)
c + MakePoint(x,y,1.3,0.5,0.5,0.4)
*color\x = a / 32.0
*color\y = b / 32.0
*color\z = c / 32.0
ProcedureReturn
EndProcedure
sppWindow("Example FPS: ",960,600,#SPP_WINDOW_NORMAL,320,200,@Callback(),#True,16,@time,#Null,#True)
End
Download Alpha 3:
https://www.dropbox.com/s/d0456l8pzsoqxwp/spp_alpha_3.zip?dl=0