Skip to content

v0.23.0 — The mount rides the optic

Choose a tag to compare

@emircbngl emircbngl released this 30 Jun 11:29

v0.23.0 — The mount rides the optic: rigid assemblies, inspection dashboards & post-audit hardening

A post-release review pass. The headline is a real bug hit on the bench: dressed opto-mechanical
hardware (post, holder, mount) did not move with its optic — grab the lens in a Newton's-rings setup
and it slid free of its mount. Alongside that fix, this release adds the "show me everything"
inspection + report tooling, surfaces the in-add-on update button for up-to-date users, expands the
glass / crystal / IR catalog, and tidies vendor-IP provenance + naming. All trace-affecting work
stays byte-identical — regression 392/392, validation 262/262, CI-green.

Fixed — opto-mechanical hardware now rides its optic

  • dress_bench() built each optic's post / holder / mount as standalone objects pinned to absolute
    world coordinates, so moving the optic left the mount behind. _own_new now rigid-parents each
    cluster's hardware to a representative optic via matrix_parent_inverse = optic.matrix_world.inverted():
    no visible jump, the optic's matrix_world is untouched (so the live trace stays byte-identical),
    and Blender's depsgraph moves the whole assembly rigidly — an optic nudged 10 mm carries all of
    its dressed hardware by exactly 10 mm.
  • Added a distinct translation-stage mount geometry (it previously fell through to the kinematic mount).

Added — "show me everything" inspection & reporting

  • inspect_all() — a per-element dashboard (power, beam count, w, R, polarization, vignetting,
    diagnostics) for the whole bench.
  • export_report(filepath, title, with_render) — a self-contained HTML spec-sheet bundling
    get_state + diagnose + per-element inspection + plots (+ an optional render), images embedded.
  • Both exposed over MCP for the AI agent.

Added — material / crystal / IR catalog (sourced)

  • Four more glasses — N-PK51, N-LASF9, N-SF66, S-FPL51.
  • Two more nonlinear crystals — CLBO and AgGaS2 (self-validated against published cuts).
  • Three infrared materials — As2S3, AgCl, ZnS — via a new refractiveindex.info formula 4
    evaluator.
  • A new docs/DATASOURCES.md documenting the provenance of every material constant + component spec.

Added — physics-validation coverage

  • New checks for AOM deflection and Gaussian-to-fiber coupling efficiency.

Changed — update-button discoverability, naming & IP provenance

  • The in-add-on Updates panel rendered only when an update was available or staged, so up-to-date
    users never saw it. It is now always visible with an "Up to date · Check" affordance + a state icon.
  • Naming tidy toward "simulator": "Alignment Report" → "Optical Report"; "Update Report" → "Refresh Report".
  • library.py gained an IP / trademark clarifying note (public part-number references for spec
    reproduction; no vendor CAD bundled; not affiliated with or endorsed by any vendor).

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.23.0.zip and Install from Disk. Existing installs auto-update via the
self-hosted extension channel.