Repository navigation
Releases: CoreySpohn/physicaloptix
Releases · CoreySpohn/physicaloptix
Release list
v2.3.0
2.3.0 (2026-10-03)
Features
- viz: add plot_propagation, a field-along-z map with bench elements and a background-centered signed colormap (9b3701f)
- viz: add ray_train and mirror_train side views with paraxial and conic-mirror tracers, and near-to-far, Fresnel-zone and Cornu views (da896e5)
Bug Fixes
- deps: require eyepiece 0.7.0 for the viz extra, whose Cornu view draws with phasor (c2cd05e)
v2.2.0
2.2.0 (2026-09-30)
Features
- roman: add flight DM wavefront terms to the compact model and document the full train (d5eb0bc)
- roman: add PROPER-convention transforms, masks and resampling weights (df3fb93)
- roman: compile and run the full Roman train on pilot-beam grids (c3d1b44)
- roman: plan PROPER-style pilot-beam propagation and run it in JAX (4a72f9b)
Bug Fixes
- roman: normalize batched transforms by the grid, expose the full-train build helpers, and state the full-train agreement (87c4bb3)
v2.1.0
2.1.0 (2026-09-29)
Features
- instruments: add the Roman DM model: influence-function surface maps and voltage-to-height conversion (7d26d54)
- viz: give the field_columns no-light hatch its own hatch_color, keeping blank_color the flat fill (c2b6a9a)
- viz: let field_columns take caller-placed keys, hang gap labels on the figure, and hatch the no-light phase pixels (5ffd710)
Bug Fixes
- deps: require eyepiece 0.5.0 in the viz extra, the first release with eyepiece.prepared (9a9119f)
v2.0.0
2.0.0 (2026-09-29)
⚠ BREAKING CHANGES
- viz: share prepared speckle outputs
Features
- elements: noll_to_nm and zernike_name map Noll indices to orders and names (073268d)
- instruments: add NIRCam band integration over independent wavelength nodes and single detector pixel integration (ab95e08)
- instruments: add NIRCam pupil-path builder and STPSF bundle reader (8a755ad)
- instruments: add NIRCam round focal mask, Lyot stop and post-mask SI WFE (7885ec9)
- instruments: add the Roman Coronagraph compact train matched to the PROPER compact prescription (7c73b23)
- speckle: public eps accessor for the drifting mode coefficients (3383d40)
- viz: add field_columns for amplitude-over-phase columns of a field sequence (3c6571d)
- viz: boiling_strip and animate_speckles on the speckle-field protocol (a38566b)
- viz: plot_zernike_pyramid lays Zernike modes out by radial and azimuthal order (0261778)
- viz: share prepared speckle outputs (286484e)
- viz: the five stats shapes -- contrast profile, process, ensemble, field ellipse, mode gallery (76e4082)
Bug Fixes
- instruments: document non-compact NIRCam mask support and pin the full-band requirement (af896d8)
- instruments: rename the NIRCam detector block sum to integrate_detector_pixels, take m2nm from hwoutils, and state the benchmark gate scope and by-construction containment (9df1d98)
- transforms: make chromatic Fraunhofer.backward the fixed-grid adjoint at every wavelength (97f5060)
- viz: retire the eyepiece colorbar and figure-sizing workarounds (bfddbd3)
- viz: strip prepared speckle sequences directly (9f92439)
- viz: validate times before evaluating and label strip panels by their clock (a787927)
v1.2.0
v1.1.0
1.1.0 (2026-08-12)
Features
- api: export the stats module (e15346b)
- coatings: transfer-matrix stack response and thickness dispersion kernels (4776d86)
- docs: migrate Basics to plot_path, executed output-free (04f56f3)
- elements: DispersiveScreen with tabulated complex dispersion kernel (a00e874)
- linearize: chromatic G stacks via per-mode dispersion factors (e5e64b0)
- linearize: plane-aware perturbation_stage route and linearize_stages (5025e8e)
- package: export the mirror-train and plane-aware linearize API (8901dda)
- robustness: PASTIS sensitivity matrix and the exact improper dark-zone variance budget (7afc643)
- speckle: band correlation, n_eff, impropriety views and probe joint covariance (4472b3d)
- speckle: chromatic (w, m, y, x) layout through SpeckleProcess.draw (0054ef6)
- speckle: closed-form exposure-averaging count per mode (d9d6091)
- speckle: cross_band_moments exact joint band-pair statistics (c1012b8)
- speckle: derive flux-fraction normalization from recorded input-energy primitives (25d19a2)
- speckle: per-mode temporal PSDs and the closed-form moment self-oracle (b1803af)
- speckle: scale_e_nom option for lambda-scaled channels (7fcd63b)
- stats: absorb delta-referenced Beckmann and genchi2 speckle laws, scipy-free (0242132)
- stats: add generalized chi-square survival function (Gil-Pelaez) (c65029d)
- trains: band-limited power-law PSD surface synthesis (e5679d3)
- trains: equivalent-space mirror-train builder with bundled EAC-1 geometry (1990455)
- viz: contrast_row with shared/independent norm policies and dark-zone rings (2ea1141)
- viz: convert viz to a lazy package; render_path frozen in _legacy (56e79bb)
- viz: deprecate render_path in favor of plot_path (b350e62)
- viz: minimap greyed you-are-here rail (ae55392)
- viz: plot_field bridge with chromatic handling and declared cut (9689a0d)
- viz: plot_path typed rail and panels on eyepiece.rail with native_dpi (dc1f8d7)
Bug Fixes
- American spelling throughout (nanometres, centre, grey, honour), match optixstuff's segment_centers_m rename (0368ad7)
- linearize: guard dispersion-without-wavelengths on every method (5c1b8d7)
- linearize: mark merged stage-route linearizations and drop stale dispersion (282f16d)
- linearize: reject linearity_residual on perturbation_stage linearizations (f9cda5d)
- package: drop exports of names not yet defined in committed modules (c2a5a8b)
- post-review polish for chromatic-optics dispersion feature (11b758b)
- speckle: joint_covariance mask-shape guard, docs literal-block, tau_s coverage (8a85c37)
- speckle: weight spectral lines by S(f) df so the temporal kernel is the PSD's transform (dafbefd)
- stats: tighten genchi2_sf accuracy, fix its u-grid bias, and de-jargon test comments (dc59e7c)
- trains: reject degenerate frequency bands (893fa21)
- viz: correct system highlight, subfigure escape, rail alignment, and chromatic phase in plot_path (e180f62)
- viz: direction-correct declared cut and axes-shape contract for plot_field (e4368c2)
- viz: family-safe ring color and native-extent threading in contrast_row (c19f608)
- viz: render focal-plane maps with origin lower (4809228)
- viz: stop double-masking phase on cut update and clip cut='y' panel (fcb4828)
- viz: tighten axes-shape guards and clarify docs for R2 review items (0c4cb05)
- viz: unconditional branch labels, positive highlight/kinds tests, named channel range in plot_path (67fa487)
- yip: emit per-pixel flux fractions and repair validation data paths (f87346f)
v1.0.1
v1.0.0
1.0.0 (2026-07-20)
⚠ BREAKING CHANGES
- interop: PathCoronagraph builds at a true wavelength and serves the sampling-explicit contract natively -- native-grid table members removed
Features
- ifs: full-array coherent detector scene -- per-lenslet two-axis MFTs, centroid-table accumulation (76cf0aa)
- interop: PathCoronagraph builds at a true wavelength and serves the sampling-explicit contract natively -- native-grid table members removed (de2a025)
- speckle: chromatic wavelength channels -- stacked per-channel e_nom/G, nearest-channel realize, lambda-scaled broadened() (ceff56a)
v0.1.0
0.1.0 (2026-07-16)
Features
- apertures: YAML pupil loader and owned segmented rasterizer -- bundled EAC-1 geometry, survey-convention gray-pixel rendering, unit-energy normalization; pupil validation gates (717809d)
- broadband: chromatic propagation -- Spectrum.tophat, point_source with per-wavelength tilts and late-bound OPD phasors, fixed-angular Fraunhofer (reference_wavelength_nm); EAC-1 broadband null and fixed-angle planet validation (39d45b2)
- core: greenfield owned core -- Grid/Field, cmft pair, Fraunhofer with build-time sampling gates, SampledOptic, MultiScaleVortex port, OpticalTrain with static taps; EAC-1 acceptance gates in tests/validation (8138f9d)
- detector: photon shot + Gaussian read noise measurement model (302bc67)
- elements: PhaseScreen -- a mode-basis pupil phasor exp(i 2pi (coeffs.B)/lambda), the commandable/differentiable deformable-mirror & aberration stage (coeffs swapped per step via tree_at) (3e1feb0)
- fresnel: near-field angular-spectrum propagator with construction-time sampling gate, paraxial/exact kernels, chromatic + padding, and a physics V&V suite (2847be8)
- ifs: single-lenslet wave-optics chain and PSFlet template pack emitter (format v1) (bebb3d7)
- interop: PathCoronagraph -- OpticalPath behind AbstractCoronagraph with derived IWA/throughput/core curves; retire DLuxCoronagraph and the dLux dependency (dd568a0)
- linearize: amplitude-mode Jacobian columns -- kind='amplitude' bases linearize E(1+B.eps), achromatic and exactly linear (48a2b40)
- linearize: unified (E_nom, G) entry point -- analytic/jvp/jacfwd with memory-policy streaming, ModeBasis, diff_spec, stats module, SpeckleProcess bridge; G-export reproduction gate (069a85c)
- modes: band-limited Fourier deformable-mirror basis (8c8d20a)
- modes: mode-basis constructors -- zernike_basis (Noll) + segment_ptt_basis (PASTIS) in nm on the pupil grid, per-segment rasterizer, linearize round-trips clean (b521837)
- multichannel: linearize_shared -- trunk-hoisted per-channel shared-mode blocks (entrance + interior stage) and ncpa_differential_opd (99072c2)
- path: reject multi-output ops as stages at construction (fork lives in OpticalSystem) (d2371f8)
- phase-screen: apply per-wavelength phase for chromatic fields (broadband DM/aberration support) (37fb944)
- speckle: add AnalyticSpeckleField generator (676ef4e)
- speckle: add SpeckleProcess parameter object with draw(key) ensembles (ac3713e)
- system: BeamSplitter -- two-port energy split with construction-time conservation gate, Babinet from_mask, quadrature energy split, and call-time dichroic routing (776daa2)
- system: Branch/SplitterPort/OpticalSystem -- shared trunk propagated once feeding named branch paths, namespaced taps, and the as_channel_path flattening adapter (018670e)
- viz: render_path -- glyph rail + per-stage field panels consuming tapped propagation (bae0723)
- yip: yield-input-package emitter -- stellar_intens/offax_psf/sky_trans in the survey recipes (area-uniform disk pointings, stochastic sky screens, band-averaged fixed-angular images), yippy round-trip verified; 2D point_source positions; CPU-pinned deterministic test suite (8129dd8)
- zernike-wfs: Zernike low-order wavefront sensor forward model (9766d3b)
Bug Fixes
- broadband: chromatic slices carry the 1/lambda amplitude factor; midpoint_band + sky_band_nm -- seed-matched cds YIP cross-check lands at the engine floor with absolute scales 1.0000 (4400de0)
- speckle,linearize: stable coherent cross term (no catastrophic cancellation) + linearize stamps the focal pixel scale onto Linearization and to_speckle_process -- adversarial-review hardening (5739b3b)