OpticSim.jl is a Julia package for geometric optics (ray tracing) simulation and optimization of complex optical systems developed by the Microsoft Research Interactive Media Group and the Microsoft Hardware Architecture Incubation Team (HART). It is designed to allow optical engineers to create optical systems procedurally and then to simulate and optimize them. Unlike Zemax, Code V, or other interactive optical design systems OpticSim.jl has limited support for interactivity, primarily in the tools for visualizing optical systems. A large variety of surface types are supported, and these can be composed into complex 3D objects through the use of constructive solid geometry (CSG). A complete catalog of optical materials is provided through the complementary GlassCat submodule. This software provides extensive control over the modelling, simulation, visualization and optimization of optical systems. It is especially suited for designs that have a procedural architecture.
Features
- OpticSim.jl is optimized for use with Julia 1.7.x; using other versions will probably not work
- OpticSim.jl will generate a glass database from the available files
- If you are using Julia 1.5, we recommend compiling a custom Julia system image for the OpticSim.jl package
- Reduce startup time and improve first-time performance
- We provide a Julia script that will build the sysimage using a representative workload
- Modelling, simulation, visualization and optimization of optical systems