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.2.0.tar.gz (16.9 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.2.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for optixstuff-0.2.0.tar.gz
Algorithm Hash digest
SHA256 39635e0ed182f8b49efb62e884677efd76874ef21e9346c0dd0d58ab12fb48d4
MD5 2fea3ed67c1e2cd4a7392ef96f19abae
BLAKE2b-256 4b4d4039d2d6e8935dd9eece0141c4cce6cf939ba95d8dbaa60cf6432cd3228a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: optixstuff-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.9 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a71ed4314bd098833118b7681c52448a0064fcd2ea0d2780e0478b02397d443
MD5 20036c7f640c59e55a837ad54e0f3b55
BLAKE2b-256 e64a6864bf2352fc9699004c50a1f575a042327f06eaec806d6061ff9fe068f3

See more details on using hashes here.

Provenance

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