particle op• Data kinds: none → table (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"))
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.
• 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.
• gfx2d_scene — py -3.11 examples/gfx2d_scene.py
table as input)layer_stack · particle_step · particle_render
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.