ParticleSystems.org
Announcing version 2.20 of the free Particle System API!
by David K. McAllister
[Mail me]
"Probably the best tool around for understanding and creating particle systems."
-gamedev.net
The Particle System API allows C++ application developers to easily include dynamic
simulations of groups of moving objects. The API is much lighter weight than a full
physics engine. It is especially useful for eye candy in games and screen savers,
but is also used in off-line animation software.
With the Particle System API you create a group of particles, then describe the
components of the particle effect using actions like Gravity(), Explosion(),
Bounce(), etc. You apply the actions to the particle group at each time step, then
read back the particle positions and other attributes into your app, or send them
directly to the GPU as a vertex array or as geometry instances.
Sign Up For Particle System API News (a few emails a year)
Check out this talk about particle systems in DX10 from GDC2007.
|
Version 2.20 released March 20, 2007 |
Browse the documentation online.
Version 2.20 Highlights
- Added the PDUnion domain, which is the union of multiple other domains. This gets
us closer to being able to define a polygonal model domain. It also is a good way
to specify colors for the Balloons effect, where colors come from disjoint sets,
not from a continuum.
- 3X Performance speedup for the pNRandf() function, which is used frequently.
- Fixed the Within() function for many domains. Some domains just had their sense
reversed. Non-3D domains used to always return false but now I try to determine
whether the point rests in the plane or whatever.
- Fixed Rotational damping. It was previously just doing positional damping. Oops!
- Avoid() of a rectangle was steering toward the middle of the rectangle sometimes.
- Avoid() of a plane was pulling away from the plane too sharply, basically bouncing.
- Avoid() was incorrectly being scaled by dt when computing the look_ahead position.
- Wrote some domain self-testing code that does Generate() then calls Within() on
the generated point to make sure they match.
- Added the new pError.h file and added an error when negative radiuses are supplied
to a domain.
- Made PSpray check whether you have SSE and whether you have the necessary OpenGL
extensions for point sprites.
- See the Change Log for a full list of changes in each version.
- Thanks to Greg Croft, Lloyd Tullues, and John Berendsen for bug reports and fixes.
|
Version 2.10 released December 1, 2006 |
|
|
Version 2.0 beta released February 24, 2006 |
This is the first major update to the Particle System API in five years. It includes
enhancements in several areas. Here are the major improvements:
|
|
Version 1.5 beta released December 20, 2005. |
This is a source code release. It's a .zip with Makefiles and Visual C++ .NET project
files. It's really just an earlier beta for 2.0.
|
|
Version 1.21 released February 24, 2001. |
Version 1.21 adds a size attribute, a PDTriangle domain, bug fixes, and I'm not
sure what else.
|
|
January 2000 |
Here is a technical
report about the design of the Particle System API.
|
|
Version 1.11 released February 2, 1999. |
Version 1.11 adds a length attribute, bug fixes, more domains and other stuff.
|
|
Seeking Your Input
I've recently (2005-2007) improved the API a lot, but it could always use more work. Also, I
am considering releasing the project into the wild as an open source project. If
you have any experience setting up an open source project on SourceForge or similar
sites, I could use your help. If you would like to help with any of the above, or
have any other contributions to the API, I would sure appreciate them.
Just mail me.
Projects Using The Particle System API
- The Alice virtual worlds system from CMU uses
the particle system API.
- Profound Effects uses the Particle
System API in their Useful Assistants and CameraPOV plug-in suites for AfterEffects.
- Jahshaka real-time editing and effects system.
- I first used the particle system API for the smoke and steam on Hewlett-Packard's
PixelFlow train demo at Siggraph '97.
- The API is being used in dozens of games, mostly open source and independent.
- Flow is a
project by Mark Allen using the Particle System API. The cool lava pictures were
from his system.
- GEM (Graphics Environment for Multimedia) uses the Particle System API for cool effects.
- RIMM is an interactive music and eye candy extravaganza.
- Blade3D's particle system is heavily inspired by mine, according to its author, Christian Beaumont.
- Eye-Sys is a visualization architecture that looks pretty cool.
- The Ars Electronica Center uses the Particle System API in several augmented reality exhibits.
- A bunch of other developers have contacted me over the years and told me about their
projects but I haven't kept track of them. If you have a project that you'd like
me to list here, please mail me.
Thanks to Jon Leech of SGI (previously of UNC) for code and ideas fundamental to
the Particle System API.
For use with
or
.
[DaveMc Home]
|
|