OpticSim.jl is a Julia package for geometric optics. One of the design goals of OpticSim is to make it easy to create optical systems procedurally. Unlike Zemax, Code V, or other interactive optical design systems OpticSim.jl has limited support for interactivity.
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 substantial catalog of optical materials is provided through the GlassCat submodule.
Before you can use the software you will need to download glass files. See the documentation for detailed information about how to do this.
Warning: During installation OpticSim automatically downloads glass catalogs from a variety of public sources. The Schott website keeps moving their catalog on their website so our software can't find it to download. This caused all our examples to fail because they use Schott glasses. We have replaced the glasses in the examples with hard coded glass files so all examples now work (if they don't work for you please file an issue).
If you want to use Schott glasses you will have to manually download and install the Schott catalog.
This project welcomes contributions and suggestions.