Fluid dynamics (even `psuedo-', as you say) in Python is going to be
slow ... period. You can't optimize the function call overhead with
display lists, for one, because your circles will likely move
independently of one another. :(
There are certainly opportunities for clever cheats in the context of
games where you can overlay textures (or use 3d textures ... or use
some shader), but you not going to achieve decent performance with a
bunch of circles (unless you write it in C - and you'll still have
very finite bound on the number of circles you can get by with ...
just much less finite than with Python). There could very well be
other approaches yielding good results in Python - maybe use a
B-spline for the surface? I'm a dilettante on theses matters -
complex OpenGL operations make my head explode.
Anyhow the future might offer us more directly on the GPU:
http://www.bulletphysics.com/Bullet/wordpress/uncategorized/gpu-physics-demos-in-the-cuda-11-sdk
--
\\\\\/\"/\\\\\\\\\\\
\\\\/ // //\/\\\\\\\
\\\/ \\// /\ \/\\\\
\\/ /\/ / /\/ /\ \\\
\/ / /\/ /\ /\\\ \\
/ /\\\ /\\\ \\\\\/\
\/\\\\\/\\\\\/\\\\\\
d.p.s
If your circles could be drawn with (pyglet.sprite) sprites then you should
see an improvement. With a little effort you could also adapt the fire
particle demo posted to the pyglet-users page which would give you a little
more speed.
Richard