Skip to content

v0.24.3 — Store-review hardening

Latest

Choose a tag to compare

@emircbngl emircbngl released this 02 Jul 12:01

v0.24.3 — Store-review hardening: thread-free MCP bridge, input guards, graceful plots

The extensions.blender.org review pass — and several reviewer points turned out to be genuine engine
improvements that land here for all builds. No physics changes. Regression 409/409, validation
303/303.

Changed — the MCP bridge is now thread-free

The bridge is rewritten as a single bpy.app.timers pump over non-blocking sockets — accept, read,
dispatch, write each tick, entirely on Blender's main thread. threading/queue no longer appear
anywhere in the add-on (crash-prone in Blender; timers are the sanctioned pattern). The wire protocol
is unchanged
— existing MCP clients connect exactly as before.

Fixed — real crashes an agent could trigger

  • speckle_pattern / caustic_pattern / produce_phenomenon with png=True raised NameError
    (missing os/tempfile imports — thanks to the platform reviewer for catching it).
  • Garbage inputs on 15 MCP-reachable producers now return {error} instead of crashing:
    wavelength_nm=0 used to ZeroDivisionError, and an unbounded n_grid could OOM-kill Blender
    (verified with n_grid=1e6). n_grid is now capped.
  • The bridge replies with an error instead of dropping the connection on a non-serializable result.

Changed — plots degrade gracefully everywhere

All matplotlib use goes through one access point: in a matplotlib-less environment PNG producers
return an honest png_error instead of crashing — numeric results are never affected.

Added

  • tools/build_platform_zip.py — builds the extensions.blender.org-compliant zip from an untouched
    source tree (no updater, no sys.modules alias, no self-test tails, no external-software access),
    with a strict compliance self-check. The GitHub build keeps its full feature set.
  • +32 independent-oracle validation checks (coverage-gap audit; 271 → 303).

Install / update: drag the one-click link from https://emircbngl.github.io/blender-optics-simulator/
into Blender 4.2+, or download the attached zip. Existing installs update from inside Blender.