---
title: "Particles"
description: "Particle emitters are built-in continuous billboard renderer components. They are suitable for smoke, sparks, dust, mist, embers, weather, magic, and lightweight stylized VFX."
engineVersion: v1.0.234
date: 2026-09-28
license: "(c) Gessa, proprietary. Cite with attribution to https://gessa.ai/docs/. Terms: https://gessa.ai/terms/."
canonical: https://gessa.ai/docs/creator/graphics/particles/
---
# Particles

Particle emitters are built-in continuous billboard renderer components. They are suitable for smoke, sparks, dust, mist, embers, weather, magic, and lightweight stylized VFX.

## Emitter Fields

`ParticleEmitterComponent` uses the one flat v1 ECS contract. It exposes continuous emission, lifetime size/color ramps, velocity/gravity/drag, six spawn shapes, texture, blend/sort/depth policy, CPU/GPU simulation policy, quality budget, and optional plane collision.

Prior nested records are converted only by the registered project-graph migration. They are not accepted by current authoring or runtime projection.

## Backend Paths

- WebGL uses a CPU point-billboard path with textures, blend modes, and camera-distance sorting for blended particles.
- WebGPU can use storage-buffer compute simulation, indirect draw arguments, and GPU sorting for alpha/multiply particles.

Additive particles skip sorting because ordering is not visually required.

## Budgets

Live particle budgets are quality-tiered:

- Low: 2,000
- Medium: 5,000
- High: 10,000
- Ultra: 50,000
- Cinematic: 75,000 live, with 50,000 per CPU or GPU emitter

Profiler counters show CPU/GPU emitter counts, live particles, storage bytes, indirect draws, compute dispatches, and clamps.

## Presets

V1 has no separate built-in Particle preset catalog. Reusable effects use normal project entities or prefabs; that keeps component values and texture preparation on the canonical project-graph path.
