Skip to main content
Euca’s particle system (euca-particle) is a CPU emitter pool: each ParticleEmitter spawns particles at a rate, integrates velocity + gravity, ages them, and interpolates color over life. The simulation is deterministic (seeded) and runs headless; it emits a ParticleRenderBatch (billboard quads + blend mode) that a GPU host draws.
Headless simulation, GPU display. Emission, physics, aging, and color all run on the :3917 server. Only drawing the resulting quads needs a render host.

What it does

  • EmittersEmitterConfig: rate, particle lifetime, speed range, size range, start/end color, and emission shape (Point / Sphere / Cone), capped by a max-particle count.
  • Simulationemit_particles_system (seeded, deterministic) + particle_update_system (velocity += gravity·dt, position += velocity·dt, age, retire dead).
  • Render batchParticleRenderBatch of ParticleVertex (position, size, color, atlas UVs) with AlphaBlend or Additive blend mode; optional atlas animation.

Endpoints

MethodPathDescription
POST/particle/createCreate a particle emitter entity
POST/particle/stopDeactivate an emitter (stops spawning)
GET/particle/listList active emitters with particle count + rate

Example

# A sphere-shaped emitter at (0,2,0)
curl -s -X POST http://localhost:3917/particle/create \
  -H 'Content-Type: application/json' \
  -d '{"position":[0,2,0],"rate":50,"lifetime":1.5,"max_particles":500}'

# Advance the sim, then inspect live particle counts
curl -s -X POST http://localhost:3917/step -H 'Content-Type: application/json' -d '{"ticks":30}'
curl -s http://localhost:3917/particle/list

Status

  • ✅ Emission, gravity integration, aging, color-over-life, point/sphere/cone shapes, render batches, atlas animation — shipped and headless. The renderer interprets ParticleRenderBatch separately.

Particle endpoints

Create, stop, and list emitter endpoints with schemas.