Skip to content

v0.24.0 — Laser speckle + the coffee-cup caustic

Choose a tag to compare

@emircbngl emircbngl released this 01 Jul 14:15

v0.24.0 — Phenomena closed out: laser speckle + the coffee-cup caustic, and a bypassed-optic warning

Two new off-trace phenomenon producers close the emergence catalog — laser speckle and the coffee-cup
caustic
— each derived from first principles and checked against its exact textbook statistics/geometry.
Plus a diagnostic the owner's own eye surfaced: the engine now warns when an optic is knocked off the
beam
. All off-trace; the live trace stays byte-identical — validation 271/271, regression 397/397, CI-green.

Added — laser speckle (speckle_pattern)

  • A random-phase circular diffuser propagated to a screen gives fully-developed laser speckle. Reports
    the verified Goodman statistics: contrast σ_I/⟨I⟩ → 1, the negative-exponential intensity PDF
    P(I) = e^{-I/⟨I⟩}/⟨I⟩ (so var/⟨I⟩² → 1 and P(I>⟨I⟩) → e⁻¹ = 0.368), mean speckle size ~ λz/D, and —
    averaging n_avg independent frames — the speckle-suppression law C_N = 1/√N. Contrast + 1/√N are
    physics_verify ok=true; the exponential PDF / survival / size-scaling are confirmed in the module self-test.

Added — caustics (caustic_pattern)

  • Parallel rays reflecting off the concave inner wall of a circular mirror (radius R) pile up on a
    nephroid — the coffee-cup caustic. Traced from first principles (reflect a ray fan, accumulate the
    ray-density) and reported against the exact analytic envelope (R/4)(3cosθ−cos3θ, 3sinθ−sin3θ). The
    reflected direction (−cos2θ,−sin2θ), the caustic point lying on each ray at t = −(R/2)cosθ, and the
    cusp at R/2 (the mirror paraxial focus) are physics_verify ok=true; the ray-density piles onto the
    nephroid ~20×, brightest at the cusp. This closes the phenomenon-emergence catalog (hologram · interferogram
    · Fabry–Pérot · Talbot · Newton's-rings · speckle · caustic).

Added — optic_bypassed diagnostic

  • diagnose() / propose_corrections() now warn when a mid-path optic receives no beam at all — it was
    moved or mis-placed off the path so the trace bypasses it ("<optic> is in the scene but NO beam reaches it … (moved off the beam / mis-placed?)"), with a re-centre fix + a maybe_intentional_if judge hint.
    Previously silent: beam_clipped only fires on a near-miss over the aperture and dark_detector only
    covers terminals. Found via the v0.23.0 rigid-mount render, where a lens stepped aside left the beam and
    nothing flagged it. No false positives across the 18 example benches.

Install / update: drag the one-click link from
https://emircbngl.github.io/blender-optics-simulator/ into Blender, or download the attached
optical_alignment_sim-0.24.0.zip and Install from Disk. Existing installs auto-update via the
self-hosted extension channel.