Lab
Explore particle behavior one experiment at a time. Change values, drag curves, and see the result beside the controls. Open the JSON when you want to use it in your own effect.
Emitter
Id
Unique emitter identifier within this effect. Use it to look up the emitter and bind its artwork. Renaming it does not change motion.
Capacity
Maximum simultaneous particles for this emitter. When all slots are occupied, excess births are dropped and living particles are preserved. Try 64 to see the stream run out of free slots.
Seed
Deterministic random seed. The same definition and playback steps reproduce the same variation. Changing the seed changes the pattern, not the configured ranges.
Playback
Playback
Emission cycle mode, duration, and duration spread. Once emits for one cycle; loop repeats. Restart to observe randomized cycle timing.
Start Delay
Delay before emission starts, with random variation around that delay. Restart to observe the timing.
Start Offset
Prewarm the effect by advancing simulation before displaying its first frame. This performs real simulation work in fixed 1/60-second steps. Compare zero with two seconds.
Transform
Transform
Emitter position, rotation, and uniform scale relative to the effect. Adjust these together to place and size the emitter.
Space
World particles stay behind when the effect moves. Local particles follow its transform. The experiment moves the whole effect so the difference is visible.
Inherit Velocity
Amount of emitter movement velocity added to newborn particles. Zero adds none; one inherits the full measured velocity. Existing particles keep their own motion.
Appearance
Orientation
Choose fixed rotation, alignment with the initial direction, alignment with current movement, or integrated angular velocity. The rectangular artwork makes the orientation visible.
Stretch With Velocity
Scale Y stretch by particle speed, using a fixed 60 FPS shutter factor. It needs nonzero stretchY; it does not stretch particles by itself.
Emission
Rate
Births requested per second and their random rate spread. Capacity limits how many particles can stay alive. Changing spread restarts playback; numeric rate changes apply live.
Shape
Spawn from a point, a filled circle, a box, or a 2D cone. Each shape has its own valid fields. Change the JSON type and dimensions together.
Shape type
Select the shape. Point has no dimensions; circle uses diameter; box and cone2d use width and height. The preview supplies dimensions for the selected shape.
Shape diameter
Circle diameter and its random variation. Births sample the filled circle; each dimension accepts a constant or an emitter-lifetime curve.
Shape dimensions
Width and height of a box or cone emitter, with independent spread for each dimension. Constants and emitter-lifetime curves are supported. This experiment uses a box.
Initial properties
Direction
Point-emitter direction and the full angular spread around it, in radians. Zero spread produces a straight stream; 2π distributes directions all around.
Lifetime
Seconds each particle remains alive. Longer lifetimes require more capacity at the same emission rate. Accepts a number or a curve sampled at birth using normalized emitter lifetime. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Speed
Initial velocity magnitude. Changing it affects new particles; modifiers change velocity afterward. Accepts a number or a curve sampled at birth using normalized emitter lifetime. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Size
Particle size in manual texture sizing mode. Initial size is multiplied by overLifetime.scale. Accepts a number or a curve sampled at birth using normalized emitter lifetime. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Rotation
Initial particle rotation. Positive angles turn counterclockwise. It is added to orientation and lifetime rotation. Accepts a number or a curve sampled at birth using normalized emitter lifetime. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Angular Velocity
Spin speed used by angular-velocity orientation. Integrated over simulation time. Accepts a number or a curve sampled at birth using normalized emitter lifetime. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Stretch
Additional horizontal and vertical stretch at birth. Zero keeps the original dimension; one doubles it. Each axis accepts a number or an emitter-lifetime curve. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Color
Birth color as red, green, and blue channels from 0 to 1. Each channel accepts a number or an emitter-lifetime curve. Lifetime color and rendering tint multiply this color afterward. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Alpha
Initial opacity, multiplied by lifetime alpha, emitter tint, and display-object alpha. Accepts a number or a curve sampled at birth using normalized emitter lifetime. Spread adds independent random variation around each birth value. Zero keeps that value unchanged.
Rendering
Effect
Over lifetime
Scale
Multiplies the particle’s initial size. A number stays constant; a curve follows each particle from birth at time 0 to expiration at time 1.
Stretch
Horizontal and vertical stretch added to birth stretch as particles age. Constants and particle-lifetime curves are supported.
Rotation
Added to the particle’s initial rotation. A number stays constant; a curve follows each particle from birth at time 0 to expiration at time 1.
Angular Velocity
Multiplies the particle’s initial angularVelocity. A number stays constant; a curve follows each particle from birth at time 0 to expiration at time 1.
Color
Red, green, and blue multipliers over each particle’s lifetime. Use curves to change color from birth at time 0 to expiration at time 1.
Alpha
Multiplies the particle’s initial alpha. A number stays constant; a curve follows each particle from birth at time 0 to expiration at time 1.
Modifiers
Acceleration
Constant force along the rotated local up direction. Changes velocity every simulation step.
Drag
Velocity damping. Positive strength slows particles; directional mode damps only the selected axis.
Radial
Force away from a center, with distance falloff. Negative magnitude attracts particles.
Vortex
Tangential force around a center, with distance falloff. Change the sign to reverse circulation.
Curves
Artwork
Size Mode
Manual uses initial particle size. Auto uses texture-frame dimensions and treats initial size as a multiplier. The same numeric size therefore has a very different effect.
Flip
Mirror artwork horizontally, vertically, or both, without changing particle motion.
Pivot
Horizontal and vertical particle pivot offsets. Adjust both axes together to change the anchor used for particle geometry.
Animation
Animation playback mode and FPS. Loop modes use FPS; once modes span particle lifetime. None freezes the first frame.
Animation Size
Reference width and height for animation geometry. The first frame’s original size is used when omitted. This sets a consistent aspect across the sequence.