Skip to main content

Hardware abstractions for the HWO direct imaging simulation suite

Project description

optixstuff

Flux-level optical system abstractions for the HWO direct imaging simulation suite.

What optixstuff is

optixstuff is the radiometric hardware layer for HWO simulations. It operates on flux — photon rates, throughput fractions, and detector-level noise — providing the shared interfaces that simulation tools and exposure time calculators build on top of.

The same OpticalPath object drives both scalar ETC calculations (jaxEDITH) and full 2D image generation (coronagraphoto), ensuring that the hardware model is consistent across all downstream science products.

What optixstuff is not

optixstuff does not model diffraction, wavefront propagation, or E-field interference. That level of physical optics belongs to tools like dLux and HCIPy, which generate PSFs from first principles.

optixstuff and these wavefront tools are complementary: dLux/HCIPy compute the PSFs, which are delivered as yield input packages (YIPs). optixstuff consumes those PSFs as flux patterns (via yippy) and composes them with the rest of the observatory — throughput chain, detector QE, noise — to produce science-level outputs.

Architecture

Built on JAX and Equinox, optixstuff provides:

  • Abstract interfacesAbstractPrimary, AbstractOpticalElement, AbstractCoronagraph, AbstractDetector
  • Concrete implementationsSimplePrimary, ConstantThroughputElement, SimpleDetector
  • 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

                          ┌───────────────────────────┐
                          │  Physical optics           │
                          │  (dLux, HCIPy, PROPER)     │
                          │  E-fields → PSFs           │
                          └──────────┬────────────────┘
                                     │ YIP
                          ┌──────────▼────────────────┐
                          │  yippy                     │
                          │  PSF interpolation         │
                          └──────────┬────────────────┘
                                     │ flux patterns
              ┌──────────────────────▼────────────────────────┐
              │                  optixstuff                    │
              │  Telescope • Coronagraph • Detector • OpticalPath │
              │  Throughput chains • QE • Noise rates          │
              └────────┬──────────────────────┬───────────────┘
                       │                      │
            ┌──────────▼──────────┐ ┌────────▼───────────────┐
            │  jaxEDITH           │ │  coronagraphoto         │
            │  Scalar count rates │ │  2D image simulation    │
            │  Exposure times     │ │  Multi-epoch scenes     │
            └─────────────────────┘ └────────────────────────┘

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-0.0.1.tar.gz (12.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-0.0.1-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for optixstuff-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4672e95bbadb282a05d35d65546e261542e1ef6e246f0cac7f5569e759a55ef9
MD5 50c8f2d087ee7fdb6e0eb1f1514ed064
BLAKE2b-256 971734ee3e44463eb5a822e2e0f6262d2ce3bb5479c09bedb49820bad4b7cbaa

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for optixstuff-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fffe6792b52e32d5972561e5bd985f568b169cad95836be18726144546dc2ff6
MD5 0ad9745103b7a5e63e9291480dad24fb
BLAKE2b-256 52edf02f3369b58245b70120e2fe1e93d47fb4403fdf53f2f1aca7ecd13a149e

See more details on using hashes here.

Provenance

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