Releases: HarrisonKramer/optiland
Releases · HarrisonKramer/optiland
v0.2.3 (Jan 2, 2025)
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)
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)
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)
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)
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
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.