Skip to content

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)