Mirage Coupled Optics Engine (Python)
Mirage is a GPU-accelerated coupled optics and curing physics engine. It can model additive manufacturing workflows, but is not limited to additive manufacturing applications.
Mirage can be used as a foundational physics engine to build vat photopolymerization workflows, including Digital Light Processing (DLP) and Tomographic Volumetric Additive Manufacturing (TVAM) simulations.
This package distributes the compiled Python bindings for Mirage Optics and its built-in curing submodules.
- Distribution name:
mirage-optics-engine - Import namespace:
mirage
Capabilities
Standard ray tracers are usually not built to couple natively with multi-physics (finite element) solvers. Mirage Optics is designed exactly for that workflow.
Core capabilities:
- GPU-accelerated finite-element ray tracing
- Volumetric light transport and absorption in gradient-index and gradient-absorptivity media
- Boundary-condition-based interface modeling:
- reflection
- refraction
- rough-surface scattering
- Coupling-friendly architecture for external physics modules
- Proprietary ASCII ray collection format (
.ry) for custom ray generators - Built-in accelerated curing submodules:
energythresholdreactiondiffusion
- Designed to serve as a reusable simulation engine for process-level toolchains
Coupling Picture
The figure below highlights the coupling interface between optics and other modules.
Install
pip install mirage-optics-engine
Quick import check:
from mirage import optics_engine, energythreshold, reactiondiffusion
print("MIRAGE import OK")
Attribution and Citation
If you use MIRAGE in academic work, please provide attribution and cite the relevant paper(s).
Optics module:
@article{aarab2026fert,
title = "Fast Hessian-free finite element ray tracing method for light transport in gradient-index media",
author = "Marwan Aarab and Geers, \{Marc G.D.\} and Remmers, \{Joris J.C.\}",
year = "2026",
doi = "10.1364/OE.582633",
volume = "34",
pages = "10749--10769",
journal = "Optics Express",
publisher = "Optica Publishing Group",
number = "6",
}
Reaction-diffusion module:
@inproceedings{aarab2026optochem,
title = "High performance coupled opto-chemical simulation of gradient-index light transport in vat photopolymerization",
author = "M. Aarab and Geers, \{Marc G.D.\} and J.J.C. Remmers",
year = "2026",
doi = "10.1117/12.3100381",
series = "Proceedings of SPIE",
publisher = "SPIE",
editor = "Herkommer, \{Alois M.\} and \{von Freymann\}, Georg and Manuel Flury",
booktitle = "3D Printed Optics and Additive Photonic Manufacturing V",
address = "United States",
}
System and Version Requirements (Summary)
- Linux x86_64
- Python >= 3.10 and < 3.13
- NVIDIA GPU with compute capability >= SM60
- CUDA runtime compatibility for wheel build/runtime expectations
- NumPy >= 1.23
License
This package is released under the PolyForm Noncommercial License 1.0.0.
It is intended for non-commercial use.
Metadata
Release files for mirage-optics-engine 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 | Details for mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
| mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 | Details for mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
| mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 | Details for mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
Total release size: 243.4 MB
Release files / mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 81.1 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
71960f906636d52c4893ee1d72d6f9a68f703b267b777597daf1e5bff41fbdea
|
|
BLAKE2b-256 checksum How to use checksums |
b0c91103aed493daecb156e53a02485ba293e25bb05d3b686de589af1219e021
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 81.1 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3975e2112504041197a3e7c4ce9664e1d17d86e839468594262f20c80de3f976
|
|
BLAKE2b-256 checksum How to use checksums |
b598b71391362502bbc87cc869d19ab8623d36f8ee799130e4c8cb09bcab9080
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 81.1 MB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4063c21c6e748cf2a22d954193a0ad7cda919fb7526736a1d8060e3cd2753dfe
|
|
BLAKE2b-256 checksum How to use checksums |
46cb698faed7d999fdff9fc837c6b601c497e780609a69cb1ca07e5055655025
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Security for mirage-optics-engine 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.