Skip to content

Releases: HarrisonKramer/optiland

v0.2.3 (Jan 2, 2025)

02 Jan 15:51
Compare
Choose a tag to compare

Optiland v0.2.3 Release Notes

Additions and Improvements:

  • File I/O feature updates for Zemax/Optiland file formats.
  • Added RingDistribution pupil distribution.
  • Various visualization updates.
  • Added new analyses: pupil aberrations, RMS vs. field (wavefront & RMS spot size),
  • Documentation update for Read the Docs. Developer's guide added.

v0.2.0 (Dec 1, 2024)

01 Dec 13:06
Compare
Choose a tag to compare

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()

v0.1.5 (Oct 10, 2024)

10 Oct 16:36
Compare
Choose a tag to compare

Optiland v0.1.5 Release Notes

This release implements the following additions and improvements:

  • Bug fix to properly link package data in pyproject.toml

v0.1.4 (Oct 6, 2024)

06 Oct 18:41
Compare
Choose a tag to compare

Optiland v0.1.4 Release Notes

This release implements the following additions and improvements:

  • Improved package documentation & minor bug fixes
  • New examples added for Read The Docs documentation
  • Added AbbeMaterial class for model glass use
  • Various code refactors for improved code robustness

v0.1.2 (Sep 9, 2024)

19 Sep 20:23
Compare
Choose a tag to compare

Optiland v0.1.2 Release Notes

This release implements the following additions and improvements:

  • Improved testing coverage for package robustness
  • General structural and maintainability improvements
  • Several new tutorials added in learning guide
  • Chebyshev polynomial freeform added
  • Tolerancing module added

Initial Release v0.1.0

06 Sep 23:18
Compare
Choose a tag to compare

This is the initial release of the Optiland package.

Optiland is a lens design and analysis program written in Python 3. It provides an intuitive and efficient interface for defining and visualizing lens systems, performing optimization of lens systems based on user-defined merit functions and variables, as well as analyzing optical systems using geometric and diffraction-based methods. Leveraging computational libraries such as NumPy and SciPy, Optiland delivers exceptional performance and efficiency in handling complex optical computations.

For more information, visit the Homepage.