Skip to main content

Hardware abstractions for the HWO direct imaging simulation suite

Project description

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, ConstantThroughput, IdealDetector, Detector, 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).

Project details


Download files

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

Source Distribution

optixstuff-1.3.0.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

optixstuff-1.3.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for optixstuff-1.3.0.tar.gz
Algorithm Hash digest
SHA256 e545bd1c1875f705d9429a494a26efd139098655e5c5018c86e69608b8c27e45
MD5 7a97975aa96e445ca5fff676622ca92a
BLAKE2b-256 475314584c9c4b8fb0311331dbc46faa461e4da12f28ad1fed82d9e3eddd54ea

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for optixstuff-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4d14b6baded8af0ca6a01b93e990d164aa12d2f9cbb0544129e7752bb24a445
MD5 9ae1c416ed9d7fcb4dc11c812c4a5164
BLAKE2b-256 6355507d793da6e897ed43f6f2417ce8bdc7b67595825f73698efed8a5e51290

See more details on using hashes here.

Provenance

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

Supported by

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