Skip to content

v0.2.0 (Dec 1, 2024)

Latest
Compare
Choose a tag to compare
@HarrisonKramer HarrisonKramer released this 01 Dec 13:06
· 278 commits to master since this release

Optiland v0.2.0 Release Notes

Additions and Improvements:

  • Refactor of 2D and 3D visualization to better include surface tilts/decenters
  • FFT PSF visualization code optimized for speed
  • Add the OperandRegistry for optimization operands. Improves optimization organization and simplifies adding new or user-defined operands.
  • Updated documentation and new tutorials
  • Tests added to improve package coverage
  • SolveManager and PickupManagers added to handle solves and pickups, respectively, for a given Optic instance.

Breaking Changes:

This release introduces changes to the API that may affect existing code. Specifically:

  • SolveManager and PickupManager Integration
    • Methods for adding solves and pickups have been updated to use managers. This ensures a more modular and extendable design.

Example migration:

lens = CookeTriplet()

# v0.1.7 (Old)
lens.set_pickup(source_surface_idx=1, attr_type='radius', target_surface_idx=2, scale=-1, offset=0)
lens.clear_pickups()
lens.set_solve('marginal_ray_height', surface_idx=0, height=10)
lens.clear_solves()

# v0.2.0 (New)
lens.pickups.add(source_surface_idx=1, attr_type='radius', target_surface_idx=2, scale=-1, offset=0)
lens.pickups.clear()
lens.solves.add('marginal_ray_height', surface_idx=0, height=10)
lens.solves.clear()