Hia,
I'm proud to announce that I'm finally ready to present the project I've been working on for the last couple of weeks. It's
Particle Reality, an extremely versatile open source java particle engine. It is based on the ideas of a commercial partical animation software package named
Particle Illusion by wondertouch software. (You can download a demo version)
Basically, the library allows you to define all aspects of particle and particle emitter behaviour over their entire lifetime in xml, allowing for a very flexible particle system.
A good place to start would be:[size=14pt]
[/size]
It is very easy to use in your own programs:
1 2 3 4 5 6 7 8 9 10 11 12
| ParticleEffectsManager.loadEffectsResource("/particleset.xml");
Emitter myEmitter = ParticleEffectsManager.getEmitter("myEmitter");
OpenGLRenderer renderer = new SimpleOpenGLRenderer(); renderer.initialize(myEmitter);
renderer.render(myEmitter); |
Here is an example of how a particle is described in xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <particle blendingMode="intense" shape="/img/smallblurstar.png" name="trail" useEmittersRangeAndAngle="true"> <angle type="specific"> <key frameNum="0" angle="45"/> </angle>
...
<motionRandomnessVariation> <key frameNum="0" value="44"/> </motionRandomnessVariation> <bounceVariation> <key frameNum="0" value="0"/> </bounceVariation> <sizeOverLife> <key life="0%" percentage="160%"/> <key life="42%" percentage="140%"/> <key life="63%" percentage="120%"/> <key life="80%" percentage="75%"/> <key life="100%" percentage="0%"/> </sizeOverLife> <velocityOverLife> <key life="0%" percentage="120%"/> </velocityOverLife> <weightOverLife> <key life="0%" percentage="100%"/> </weightOverLife> <spinOverLife> <key life="0%" percentage="100%"/> </spinOverLife> <motionRandomnessOverLife> <key life="0%" percentage="100%"/> </motionRandomnessOverLife> <bounceOverLife> <key life="0%" percentage="100%"/> </bounceOverLife> <color> <key life="0%" red="255" green="126" blue="152"/> <key life="25%" red="255" green="141" blue="35"/> <key life="65%" red="255" green="252" blue="165"/> <key life="90%" red="0" green="0" blue="0"/> </color> <alpha> <key life="0%" percentage="100%"/> <key life="25%" percentage="100%"/> <key life="65%" percentage="100%"/> <key life="90%" percentage="0%"/> </alpha> </particle> |
I don't think there are any aspects of particles which cannot be changed or modified, allowing for tons and tons of particle behaviours. Even better, you can download the demo version of
particle illusion and mimic their massive library of particle emitters for effects including text-fading, explosions, worm holes, dripping. Or design your own.
A few main points which will be adressed in the future of this project will be to create a particle editor, optimize the system, make renderers for java2d and bring the particle system into the realm of 3d.
Enjoy, please let me know what you think and if you happen to use the program in one of your own projects or create a particle emitter, let me know. Besides, the project page is a wiki, so you can all expand on it, if you like

Kind Regards,
- Vincent Vollers