Skip to content

v2.5.0

Latest

Choose a tag to compare

@singer-yang singer-yang released this 02 Jul 05:48

v2.5.0

Highlights

  • Surface JSON now carries readable material info. Every surface dict emits informational (mat2_n) and (mat2_V) keys alongside mat2, so refractive index and Abbe number are visible without a glass-catalog lookup. Parenthesised keys are ignored on load, matching the existing (c)/(d) convention.
  • Lighter dependency footprint. transformers, timm, and wandb are dropped from requirements.txt/pyproject.toml/environment.yml (plus orphaned transitives). PSFNetLens now uses the in-repo cosine LR schedule instead of pulling in transformers for a single scheduler.
  • Dead code removed. GeoLensSurfOps aspheric auto-management (add_aspheric, increase_aspheric_order + helpers, ~360 lines) had zero callers and is gone.

Changes

Features

  • Add mat2_n / mat2_V info keys to surface JSON across all 16 surf_dict() methods (Aperture/ThinLens unchanged).

Refactors

  • Clarify DOE/surface function names surfaced by a naming audit (pure token renames, no external callers affected):
    • DiffractiveSurface.pmap_fabexport_fab_phase_map (writes a .pth to disk — the old getter-style name hid the side effect)
    • DiffractiveSurface.pmap_quantizequantize_phase_map
    • Cubic/Spiral _dfdxy locals sx, sydfdx, dfdy (align with spheric/aspheric/qtype)
  • Drop dead aspheric ops and unused deps; route PSFNetLens LR schedule to geolens_pkg.optim.get_cosine_schedule_with_warmup.

Verification

  • Full test suite (451 tests) passes on GPU.

Full Changelog: v2.4.0...v2.5.0