Skip to content

v4.7.3

Choose a tag to compare

@github-actions github-actions released this 12 Oct 23:44
· 174 commits to main since this release
5b26788

⚠️ Breaking Changes

  • Lumice raypath --report now emits schema 3 (#475, #477, #478; LUMICE_API_VERSION
    452 → 453). The target-free feature report serializes as schema_version: 3 where 4.7.2
    emitted 2, and a reader written for the schema-2 document must reject a v3 document (the
    engine's own reader does) — update any script that parses --report JSON to accept schema 3.
    The change is the report's shape, not just its number: where schema 2 was a per-feature list
    with Monte-Carlo evidence, schema 3 emits structural objects — a scope block, a support
    block carrying the delta-axis partition with its completeness certificate, the per-wavelength
    onset table and the restricted family curve, per-feature blocks, unattributed_structures,
    and mc_evidence demoted to a corroboration field. The request surface (target schema 1, the
    fiber walk, --warm) is unchanged.

CLI

  • Changed: config fields that silently did nothing now warn at startup (#476). A config that
    declares a filter nothing binds, places a filter key where nothing reads it (on the scene or
    a scattering layer, instead of per entry), or commits an empty render list used to be
    accepted without a trace; the engine now logs a warning naming the no-op. Every such config
    still renders byte-identically — the change is the warning, not new behavior.

GUI

  • Added: Look At target locking (#483). The camera row is now Reset → Look At → Lock.
    The Look At combo points the camera at a named direction in one click; with Lock checked,
    the camera keeps following that direction as scene values such as sun altitude change, without
    a Run. Editing Elevation or Azimuth, or dragging the preview to rotate it, turns Lock
    off and keeps that manual view; changing Roll, FOV, or the preview zoom does not. The
    selected target is retained, so re-checking Lock resumes following it. Reset, a lens
    change, or a document New/Open/Revert turns Lock off (document changes also reset the target
    to Sun); full-sky lenses disable both controls.
  • Changed: the Sun diameter field accepts 0 — a point source (#486). The GUI's sun-diameter
    editor clamped the value at a 0.1° floor, so a point-source sun (diameter 0, which the
    engine's default scene uses and the config file has always accepted) could not be entered
    from the panel. The floor is gone; the tooltip names what 0 means.
  • Fixed: the Look At row aligns with the panel's control grid (#487, #489). The Reset /
    Look At / Lock row drew its three controls at mismatched heights and off the grid the
    right panel's other rows follow; all three now share one full-height row that ends on the
    Lock checkbox, its right edge on the same line the FOV input ends on.

Rendered output (GUI + CLI)

  • Fixed: dual-fisheye fold-boundary energy loss (#480). The dual-fisheye projection passed
    the fold-boundary direction through a float32 rounding that pushed rays out of the projection
    and let the bounds check silently drop them — roughly 18.9% of a dual-fisheye frame's energy.
    The boundary is now clamped after the floor, so the dropped rays render; the projection's
    shared path is fixed once, for both the CLI and the GUI.

liblumice_analytic

  • Added: LUMICE_ANALYTIC_API_VERSION 7 → 8 — the u-S² field layer (#477). Eight new calls
    (TraceBoundaryLoop, TraceWeightKinks, ClassifyCriticalStructure, PartitionDeviationAxis,
    TraceWavelengthCriticalTable, TraceRestrictedFamilyCurve, DiagnoseChromatic,
    DiagnoseClassTint) with their result structs, Release functions and twelve enumerations
    publish the deviation-field geometry of one fixed face sequence: kind-1/2/3 critical structure,
    the delta-axis partition with its escape regimes, per-wavelength onset tables, the restricted
    family curve, and the two-index chromatic verdicts. Nothing existing changed. The kernels are
    the C++ port of Lumice Integral's field layer, pinned against it by parity fixtures; the
    library is still not part of the download packages.

What's Changed

  • feat(raypath): schema3 measure layer (task-661) by @LoveDaisy in #475
  • fix(config): warn on the two silent no-op config shapes by @LoveDaisy in #476
  • feat(analytic): schema3 geometry layer port (u-S2 field, partition, walks, focusing/chromatic, contour, API v8) by @LoveDaisy in #477
  • feat(raypath): schema3 report - state machines, support block, unattributed, mc_evidence, schema_version=3 by @LoveDaisy in #478
  • Share-domain calibration: lens landing semantics + dual fold-boundary defect + cone cross-check tool (task-669) by @LoveDaisy in #479
  • fix(raypath): clamp dual-fisheye fold-boundary pixels into canvas (task-670) by @LoveDaisy in #480
  • Clarify mixed-corner tolerance consumer comment by @LoveDaisy in #481
  • ci: reduce repeated raypath test work and govern cumulative duration by @LoveDaisy in #482
  • feat(gui): add Look At target locking with manual takeover by @LoveDaisy in #483
  • chore(release): cut 4.7.3 by @LoveDaisy in #484
  • docs: migrate repo name ice_halo_sim to Lumice by @LoveDaisy in #485
  • fix(gui): allow sun diameter 0 (point source) in the GUI domain by @LoveDaisy in #486
  • fix(gui): align the View Look At row to the panel's control grid by @LoveDaisy in #487
  • fix(ci): fix ccache seed audit false positive (one write per miss) by @LoveDaisy in #488
  • Fix: revert right panel to 300px and end the Look At row on the Lock square by @LoveDaisy in #489
  • chore(release): recut 4.7.3 by @LoveDaisy in #491

Full Changelog: v4.7.2...v4.7.3