Repository navigation
v2.5.2
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 withGeoLens.surf_d(), and keep each surface's transmitted medium inmat2. - 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; uselens.surf_d(index)for absolute axial positions. - Code using
calc_chief_ray_infinite()should migrate tocalc_chief_ray(fov=..., plane=...). - Direct imports from
geometric_surface.base,diffractive_surface.diffractive,phase_surface.phase, andgeolens_pkg.optim_opsshould migrate tobase_surface,base_diffractive,base_phase, andops, 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