Skip to main content

Optics engine for coupled gradient-index light transport simulations.

Project description

VAM cone process summary and striation prediction

Mirage Coupled Optics Engine (Python)

Optics Express paper

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:
    • energythreshold
    • reactiondiffusion
  • 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.

Coupling interface between optics and external 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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (81.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (81.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (81.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mirage_optics_engine-1.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71960f906636d52c4893ee1d72d6f9a68f703b267b777597daf1e5bff41fbdea
MD5 7a4ea9ab482c463c560388b9ef769879
BLAKE2b-256 b0c91103aed493daecb156e53a02485ba293e25bb05d3b686de589af1219e021

See more details on using hashes here.

File details

Details for the file mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mirage_optics_engine-1.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3975e2112504041197a3e7c4ce9664e1d17d86e839468594262f20c80de3f976
MD5 fc582b60f70e0170bec05f03f17d9ece
BLAKE2b-256 b598b71391362502bbc87cc869d19ab8623d36f8ee799130e4c8cb09bcab9080

See more details on using hashes here.

File details

Details for the file mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mirage_optics_engine-1.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4063c21c6e748cf2a22d954193a0ad7cda919fb7526736a1d8060e3cd2753dfe
MD5 550f79652017ed3bdd0d9c340a25cf29
BLAKE2b-256 46cb698faed7d999fdff9fc837c6b601c497e780609a69cb1ca07e5055655025

See more details on using hashes here.

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