Skip to content

Releases: CoreySpohn/physicaloptix

v2.3.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 04 Oct 15:41
5ccb1ba

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

Choose a tag to compare

@CoreySpohn CoreySpohn released this 01 Oct 00:24
3aee318

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

Choose a tag to compare

@CoreySpohn CoreySpohn released this 29 Sep 23:23
be349c1

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

Choose a tag to compare

@CoreySpohn CoreySpohn released this 29 Sep 20:48
d20efe4

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

Choose a tag to compare

@CoreySpohn CoreySpohn released this 12 Aug 16:13
21cfc3e

1.2.0 (2026-08-12)

Features

  • diagnostics: quadrature audit for the paired-quadrature eta bound (ecc3b13)
  • speckle: Photometry audit of the normalization primitives and derived divisor (542637b)
  • speckle: public delta_e complex-increment accessor (8c69f97)

v1.1.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 12 Aug 15:06
79f7340

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

Choose a tag to compare

@CoreySpohn CoreySpohn released this 22 Jul 21:10
16de6c9

1.0.1 (2026-07-22)

Bug Fixes

  • vortex: palindromic Hann window keeps the level-handoff taper point-symmetric (854201f)

v1.0.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 20 Jul 02:42
0bb6201

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

Choose a tag to compare

@CoreySpohn CoreySpohn released this 16 Jul 22:02
79a5413

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)

v0.0.1

Choose a tag to compare

@CoreySpohn CoreySpohn released this 27 Jun 03:20
dcbb376

0.0.1 (2026-06-27)

Features

Miscellaneous Chores