Physics Particles Debris
App: apps/physics_particles_debris/
Demonstrates the Tier 2 particle system: each particle is a Jolt dynamic body that collides with the world. Particles are emitted continuously from a point above the ground and bounce realistically. Active particle count is logged every second.
Run from root
Section titled “Run from root”% ./plume3d physics_particles_debrisWhat it does
Section titled “What it does”- Loads
Models/ParticlesDebris.blend(optional — falls back to a code-only scene if missing). - Creates a
ParticleEmitterviaScene.createParticleEmitterwith a pool of 64 bodies. - Calls
emitter.play()immediately to start continuous emission at 15 particles/sec. - Each particle has a lifetime of 3 seconds; expired particles are returned to the pool.
- Logs
activeCount/maxBodiesevery second. - Shadow mapping enabled.
Emitter creation
Section titled “Emitter creation”_emitter = _scene.createParticleEmitter( "DebrisEmitter", // name 64, // maxBodies — body pool size 0.08, // size — particle radius (m) 0.5, // mass — particle mass (kg) 3.0, // lifetime — seconds before despawn 15.0, // emissionRate — particles per second 0.0, 3.0, 0.0 // initial position (x, y, z))_emitter.play()Monitoring
Section titled “Monitoring”// In update(dt):Logger.info("Particles: %(_emitter.activeCount)/%(_emitter.maxBodies) active")Blend setup (optional)
Section titled “Blend setup (optional)”If Models/ParticlesDebris.blend is absent, the app creates a fallback code-only scene with a ground plane and a default point light. To use a blend:
| Object | Class | Notes |
|---|---|---|
| Ground plane | in Environment collection | Static rigid body |
| Camera | GameCamera | Tag: main_camera |
| Light | GameLight | Tag: main_light |
- ParticleEmitter —
createParticleEmitter,play,stop,burst,activeCount,maxBodies,setPosition,setNormal. - Scene —
createParticleEmitter. - Physics — collision layers govern particle-world interactions.
- Graphics —
setLights,setShadowMappingEnabled.