The main branch of this project has been updated to PyOpticL v2.0! This is a breaking change for existing designs. Unless you manually update PyOpticL within FreeCAD, existing installs should be unaffected.
If you need to install v1:
- Use Branch: v1-legacy when following the install instructions
To update to v2.0:
- Backup all locally changed files (optomech.py, stls, etc.)
- Uninstall PyOpticL from addon manager (This will delete all PyOpticL source files, backup your changes)
- Restart FreeCAD
- Re-install PyOpticL
Discord Server: https://discord.gg/vV4NP6rXmp
- Laser - Extended Cavity Diode Laser (with optical isolator)
- Doublepass AOM Baseplate
- Singlepass AOM Baseplate
- Saturation Absorption Spectroscopy Baseplate
- Periscope
- CoverBox
PyOpticL is a Python library for optics layout which uses beam-path simulation and dynamic beam-path routing for quick and easy optical layout by placing optical elements along the beam path without a priori specification, enabling dynamic layouts with automatic routing and connectivity. The beam paths are automatically calculated as components are placed in the layout. Component placement can be defined "along beam" to remove the need for hard-coded coordinates. Beam calculations include reflection, transmission, refraction, and diffraction (limited). This library enables a new paradigm of optical engineering using modular sub-systems of modular baseplates with commerical optical elements (see abstraction layers below).
See our recent preprint for more details about our results using these laser sources and baseplates in our lab:
arXiv:2501.14957 - Qubit operations using a modular optical system engineered with PyOpticL: a code-to-CAD optical layout tool
-
Install FreeCAD, Python, and Git
-
Add PyOpticL as a custom addon repository in FreeCAD
Under Edit>Preferences>Addon Manager>Custom Repositories, click the plus icon and enter the following information:
Repository URL: https://github.com/UMassIonTrappers/PyOpticL.git
Branch: main
Press OK to save settings -
Install the PyOpticL library In the Addon Manager (Tools>Addon Manager), search for "PyOpticL" and click install.
Note: if you get an error related to git, try disabling it - Edit>Preferences>Addon Manager>Disable git -
Check everything is setup correctly
You should now be able to re-launch FreeCAD and see the "PyOpticL" workbench in the workbench dropdown -
Check out the wiki for guides on how to get started and examples
-
Read the docs library documentation
Macro files for pre-made layouts can be found in the PyOpticL directory. This can be found in:
<FreeCAD User Data Directory>/Mod/PyOpticL/Design
On windows this is:
%APPDATA%\FreeCAD\Mod\PyOpticL\Design
- MIT QUANTA LAB (Prof. Isaac Chuang created the initial C4PO library which inspired this project)
- MIT Quantum Photonics & AI Group (Prof. Dirk Englund)
- UCONN - Prof. Simone Colombo
- Montana St. - Prof. Matt Jaffe
- UC Berkeley - Prof. Aziza Suleymanzade
- UW Madison - Prof. Josiah Sinclair
- NUS - Prof. Dzmitry Matsukevich
- Stanford - Prof. Jonathan Simon
- Quera
- Durham University