Particle System
Photon builds an effect from a hierarchy of FX objects. Emitters simulate particles; renderer settings convert their state into draw calls; materials decide how those vertices become pixels; the Timeline can override the same runtime values over time.

FX Object Types
| Type | Use |
|---|---|
| Empty | Group children and provide an animatable transform. |
| Particle Emitter | Spawn many independent tile/model particles and optional particle trails. |
| Trail Emitter | Build a continuous ribbon or tube from a moving emitter. |
| Beam Emitter | Render a beam between endpoints or along a raycast. |
| AraTrail Emitter | Simulate a physically moving trail with segment properties. |
| Force Field | Apply directional, gravity, drag, and vortex influence through External Forces. |
Recommended Reading Order
- Hierarchy and Transforms
- Curves, Gradients, and Value Functions
- Particle Emitter
- Emission and Shapes
- Simulation and Forces
- Lifetime and Speed Modules
- Rendering, Materials, and Meshes
Runtime Model
Authored settings remain config data. Each emitted object creates a runtime layer whose values fall back to that config. Timeline tracks and Java code write runtime slots without mutating the reusable FX definition. This is why one .fx can play many independent instances.
Debug one system at a time
Start with a plain texture material, constant values, and one module. Add curves, trails, custom shaders, and post effects only after emission and motion look correct.