How harrisonkramer/optiland works
Optiland is a Python optical-design platform with a GUI. The principal workflow is to construct an optical system, trace rays through it, and analyze its optical performance; engineers can then optimize and tolerance the design. The repository also supports non-sequential tracing, image simulation, file interoperability, and interactive visualization. The graph reflects README capabilities and sampled source; several core call paths and unsampled subsystem wiring are therefore left unspecified.
Main entry points: optic.py Optic system · tracer.py Non-sequential tracing · main_window.py Optiland GUI · real_ray_tracer.py Sequential ray tracing
Components 24
Optical Design
- Optic system
optiland/optic/optic.py - Surfaces and geometry
optiland/surfaces/standard_surface.py - Fields and wavelengths
optiland/fields/field_group.py - Optical materials
optiland/materials/material.py - Trace sequences
optiland/sequences/sequenced_optic.py
Tracing Engines
- Sequential ray tracing
optiland/raytrace/real_ray_tracer.py - Non-sequential tracing
optiland/nonsequential/tracer.py - Non-sequential scene
optiland/nonsequential/scene.py - NumPy / PyTorch backend
optiland/backend/__init__.py
Analysis
- Optical analyses
optiland/analysis/__init__.py - Wavefront analysis
optiland/wavefront/wavefront.py - PSF and MTF
optiland/psf/base.py - Image simulation
optiland/analysis/image_simulation/engine.py
Engineering Tools
- Optimization
optiland/optimization/problem.py - Tolerancing
optiland/tolerancing/core.py - Prescription reports
optiland/prescription/prescription.py
Interfaces
- Optical file exchange
optiland/fileio/zemax/reader/parser.py - JSON serialization
optiland/fileio/optiland_handler.py - Visualization
optiland/visualization/system/optic_viewer.py - Optiland GUI
optiland_gui/main_window.py - GUI panels
optiland_gui/panel_manager.py - Surface editor service
optiland_gui/services/surface_service.py - GUI connector
optiland_gui/optiland_connector.py
Other components
- Optical engineer
Connections 26
- Optical engineer → Optic system: defines system
- Optic system → Surfaces and geometry: configures surfaces
- Optic system → Fields and wavelengths: configures fields
- Optic system → Optical materials: uses materials
- Optic system → Trace sequences: defines sequences
- Optical engineer → Sequential ray tracing: requests trace
- Sequential ray tracing → NumPy / PyTorch backend: computes with
- Optical engineer → Non-sequential tracing: requests trace
- Non-sequential tracing → Non-sequential scene: traces scene
- Non-sequential tracing → NumPy / PyTorch backend: computes with
- Optical engineer → Optical analyses: requests analysis
- Optical engineer → Wavefront analysis: requests analysis
- Optical engineer → PSF and MTF: requests analysis
- Optical engineer → Image simulation: simulates image
- Image simulation → PSF and MTF: generates PSF basis
- Optical engineer → Optimization: optimizes design
- Optical engineer → Tolerancing: evaluates tolerance
- Optical engineer → Prescription reports: generates report
- Optical engineer → Optical file exchange: imports or exports
- Optical engineer → JSON serialization: saves or loads
- Optical engineer → Visualization: views system
- Optical engineer → Optiland GUI: uses
- Optiland GUI → GUI panels: creates panels
- GUI panels → GUI connector: provides connector
- Optiland GUI → Surface editor service: edits surfaces
- Surface editor service → Optic system: updates system