Skip to main content

optixstuff

Shared hardware objects — with standard values — for the HWO direct-imaging simulation suite.

What optixstuff is

optixstuff is a thin shared dependency that defines the observatory's hardware as composable JAX modules: primary aperture, throughput-affecting elements, coronagraph backend, detector. Its job is to be the single source of truth for the hardware configuration that downstream tools consume.

coronagraphoto (2D image simulation), coronachrome (lenslet-IFS dispersion + spectral extraction), and jaxEDITH (exposure-time and yield calculations) import the same OpticalPath class and the same detector / throughput / primary / disperser types from optixstuff. Change a value here and every downstream tool picks it up on the next import.

What optixstuff is not

  • Not a wavefront tool. Diffraction, E-field propagation, and PSFs-from-first-principles belong to dLux and HCIPy.
  • Not a PSF interpolator. That's yippy's job; optixstuff wraps a PSF backend via YippyCoronagraph but does not compute PSFs.
  • Not a scene model. Stars, planets, disks, and zodi live in skyscapes.
  • Not a simulator. Downstream tools (coronagraphoto, coronachrome, jaxEDITH) consume an OpticalPath to produce images, dispersed IFS frames, or count rates.

Architecture

Built on JAX and Equinox, optixstuff provides:

  • Abstract interfacesAbstractPrimary, AbstractOpticalElement, AbstractCoronagraph, AbstractDetector, AbstractDisperser
  • Concrete implementationsSimplePrimary, SegmentedPrimary (carries hex segment geometry for a diffraction backend), ConstantThroughput, IdealDetector, Detector (with optional wavelength-dependent QE), LensletDisperser
  • ContainerOpticalPath, a composable hardware configuration passed to all simulators

Every abstract method accepts three fidelity axes — wavelength, position, and time — with defaults so that simple implementations can ignore unused axes while future high-fidelity models (wavelength-dependent coatings, position-dependent vignetting, time-dependent detector degradation) can use them without breaking the interface.

Ecosystem position

flowchart TB
    physopt["<b>Physical optics</b><br/>dLux · HCIPy · PROPER<br/>E-fields → PSFs"]
    yippy["<b>yippy</b><br/>PSF interpolation"]
    optix["<b>optixstuff</b><br/>Telescope · Coronagraph · Detector · OpticalPath<br/>Throughput chains · QE · Noise rates"]
    jaxedith["<b>jaxEDITH</b><br/>Scalar count rates<br/>Exposure-time calculations"]
    corono["<b>coronagraphoto</b><br/>2D image simulation<br/>Multi-epoch scenes"]
    coronachrome["<b>coronachrome</b><br/>Lenslet-IFS dispersion<br/>Spectral extraction"]

    physopt -- YIP --> yippy
    yippy -- flux patterns --> optix
    optix --> jaxedith
    optix --> corono
    optix --> coronachrome

Installation

pip install optixstuff

Status

This package is in early development (pre-v0.1.0).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

optixstuff-3.0.0.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

optixstuff-3.0.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file optixstuff-3.0.0.tar.gz.

File metadata

  • Download URL: optixstuff-3.0.0.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for optixstuff-3.0.0.tar.gz
Algorithm Hash digest
SHA256 561d73a04a87f0d1f75c643294094259a3c48ffb04e5787dc902bdfafe91da24
MD5 1af9b69e258a9895c8e56826df974013
BLAKE2b-256 bffc3ff45415076d9ac45ba88943106c0238399f4ab763e99997651b44de2a29

See more details on using hashes here.

Provenance

The following attestation bundles were made for optixstuff-3.0.0.tar.gz:

Publisher: publish-to-pypi.yml on CoreySpohn/optixstuff

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file optixstuff-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: optixstuff-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for optixstuff-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d53a3728291f17f7a8287373a822a50c7030a7f36f5df8d79c3319f143141d6
MD5 52b07eb44918280aceee3a3ac153c22f
BLAKE2b-256 b69c78f84dbcb29c20d2d840d50a0f760e34adaea0ed35c6f96988cdd7970a74

See more details on using hashes here.

Provenance

The following attestation bundles were made for optixstuff-3.0.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on CoreySpohn/optixstuff

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 files

2.0.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.2.0

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page