Skip to content

v2.5.2

Choose a tag to compare

@singer-yang singer-yang released this 05 Sep 17:38
· 42 commits to main since this release

DeepLens 2.5.2 updates geometric tracing, chief-ray evaluation, coherent PSFs, and the Python module layout.

Changes

  • Represent sequential surface spacing with d_next, derive absolute vertex positions with GeoLens.surf_d(), and keep each surface's transmitted medium in mat2.
  • Unify physical-stop chief-ray calculation across object points, field angles, and existing traced bundles; use the shared calculation in PSF centering and distortion evaluation.
  • Add optional energy-normalized complex field output to coherent and Huygens PSF models with return_field=True. Intensity remains the default output.
  • Improve ray state handling, invalid-ray propagation, tensor shape and dtype preservation, and aspheric Newton initialization.
  • Move geometric rendering into GeoLensRender, consolidate lens operations, and update module documentation and repository links.
  • Pin Ruff 0.16.5, establish the formatting baseline, and fix the import-order and formatting errors in the latest CI run.

Compatibility notes

  • Code that constructs surfaces should use d_next; use lens.surf_d(index) for absolute axial positions.
  • Code using calc_chief_ray_infinite() should migrate to calc_chief_ray(fov=..., plane=...).
  • Direct imports from geometric_surface.base, diffractive_surface.diffractive, phase_surface.phase, and geolens_pkg.optim_ops should migrate to base_surface, base_diffractive, base_phase, and ops, respectively. Prefer the public package exports where available.

Validation

  • Full test suite on CPU: 596 passed.
  • Ruff lint and format checks passed with Ruff 0.16.5.
  • Source distribution and wheel built from commit 2e3bcb24f4b550258ab14f35c0dae5635d0f6d6d; both passed strict Twine metadata validation.
  • Package contents were checked against the committed source, including the material catalogs.
  • Installed-wheel smoke check passed, including a 32-ray trace with finite sensor intersections.

Full changelog: v2.5.1...v2.5.2