particle_step — GFX2D particle op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.particle_step(state, dt, gravity=(0.0, 98.0), drag=0.0) (implementation को सीधे call करना हो तो import gfx2d; gfx2d.particle_step(state, dt, gravity=(0.0, 98.0), drag=0.0), registry से लेना हो तो opsgfx2d.get("particle_step"))

उपयोग

particle state को dt second आगे बढ़ाता है। नया dict लौटाता है।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Semi-implicit (symplectic) Euler::

v <- v + (g - drag*v) * dt

p <- p + v * dt

age <- age + dt

which makes the closed form exact and checkable: with gravity=(0,0) and drag=0 the position after k steps is p0 + v0*k*dt, and with drag the speed is v0 * (1 - drag*dt)**k. Both are compared as equalities in the test suite.

gravity is (gx, gy) in px/s^2, positive gy pulling down the screen. The input dict is never mutated.

Raises ValueError: dt <= 0; drag * dt >= 1, which is the point where explicit drag stops decaying the speed and starts reversing it — an instability that otherwise shows up as particles flying backwards rather than as an error.

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• gfx2d_scene — py -3.11 examples/gfx2d_scene.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

layer_stack · particle_render

इसी category के (particle)

particle_emit · particle_render


*Provenance: gfx2d.py — GFX2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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