particle_emit — GFX2D particle op

Data kinds: nonetable (an op determined by its arguments alone — it takes no image or data input)

Call: import gfx2d; gfx2d.particle_emit(count, seed, origin=(0.0, 0.0), spread=0.0, speed=(10.0, 40.0), direction=(0.0, 360.0), life=(0.5, 1.5), size=(1.0, 3.0), color='emphasis', scheme='okabe_ito') (or opsgfx2d.get("particle_emit"))

Usage

Emit `count particles from origin, deterministically from seed`.

Returns the particle state as a dict of arrays::

{"pos": (N,2) as (x, y), "vel": (N,2) px/s, "age": (N,), "life": (N,),

"size": (N,) radius in px, "color": (N,4) straight rgba}

Ranges are `(low, high) pairs sampled uniformly; direction` is in

degrees measured clockwise from the +x axis (again because the row axis

points down). `spread` is the radius of the uniform disc the start

positions are jittered over.

All randomness comes from `numpy.random.default_rng(seed)` — the same seed

gives the same bytes, which the test suite pins with a SHA-256.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

gfx2d_scenepy -3.11 examples/gfx2d_scene.py

Ops the type connects to (they accept table as input)

layer_stack · particle_step · particle_render

Same category (particle)

particle_step · particle_render


*Provenance: gfx2d.py — GFX2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.