PARTICLE LAB0.1

A JOY GAMES EXPERIMENT

A little motion.
A lot of possibilities.
PARTICLE ASSET / .JOYFX

01 Compose

Emitter Stack
SPAWN / UPDATECtrl / Cmd + Enter to apply

02 Preview

Y-UP / PERSPECTIVE
DRAG TO ORBIT · SHIFT + DRAG TO PAN · SCROLL TO ZOOM
0.00 s6.00 s
0 PARTICLES0 DROPPEDGPU …Starting…
Range Simulation Ticks 0Preview FPS Simulation CPU Geometry CPU Submission CPU Draw Calls 0 Triangles 0Lights 0

Simulation CPU averages ms per frame; geometry and submission show the last rendered frame. GPU time unavailable. Emitter spawn/update CPU times are ms per simulation tick; geometry is ms for the last frame. Paused CPU samples are retained.

EmitterLiveSpawn CPUUpdate CPUGeometry CPUTrianglesLightsSpawned TotalDropped TotalOperations Total
BOUNDED PARTICLE LANGUAGE

Script Reference

Particles use XYZ world space, with Y up in the perspective preview. Size is in world units; rotation and spin roll the camera-facing sprite. PARTICLE LAB uses its own deterministic scalar language. It is not JavaScript or PopcornFX syntax.

Particle Values

Writable: x, y, z, vx, vy, vz, ax, ay, az, drag, size, rotation, spin, r, g, b, alpha, lifetime, lightIntensity, lightRange, u0–u3.

Read only: dt, age, t, index, time, originX/Y/Z, parentVx/Vy/Vz, pi, tau, plus named parameters.

Optional particle lights inherit particle RGB and alpha. Light intensity and range can be animated in either script.

Expressions

Use let, assignments, += -= *= /=, and if (...) { ... } else { ... }. Operators: + - * / % ^ < > <= >= == != && || !.

Functions: sin, cos, tan, abs, sqrt, floor, ceil, round, exp, log, min, max, pow, atan2, clamp, mix, smoothstep, noise, and rand.

Children and Limits

Root emitters run their timeline. Trail and death links spawn particles directly from a child template, inherit parent velocity inputs, and stop after four child generations. Assets allow up to 4,096 live particles, 128 bursts per emitter, 30 seconds per timeline/lifetime, and bounded spawn work. Loops, objects, strings, vectors, and browser or host calls are unavailable.