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-2.0.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

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

optixstuff-2.0.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for optixstuff-2.0.0.tar.gz
Algorithm Hash digest
SHA256 52fdf4578d33e82d80b0b22646112d857bd99b0b49c719815fe3992f35144e7b
MD5 7302386f43c6f70337729f410d94ee66
BLAKE2b-256 4d5baad979a15bd5a03691fa802bcea7d7b59ac89438a25ffd240c90e9091892

See more details on using hashes here.

Provenance

The following attestation bundles were made for optixstuff-2.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-2.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for optixstuff-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0dcfc3ebf87f7f45dd0c618135b5390ba4b0c12b3d1e7a2dccd118d6c1f8ead
MD5 66e366ebefc9cff635ca420f4c547725
BLAKE2b-256 c052b6d1abd3380f298f5beed76eeba05298c0e79d3ed184333b7ef219b16472

See more details on using hashes here.

Provenance

The following attestation bundles were made for optixstuff-2.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

3.0.0

2 files

This release

2.0.0 This release

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