Optics Design Workbench
This workbench was inspired by the OpticsWorkbench and aims to extend its functionality towards design and optimization of optical assemblies.
The documentation is far from complete but growing.
Feel free to ask any question in the forum thread.
Getting started with examples
To get started, FCStd files and corresponding jupyter notebooks can be found in the examples folder of this repository.
Gaussian beam point source and detector
examples/1-source-and-detector
Ray-fan simulation mode
The ray-fan mode renders rays for cross-sections of the solid angle with a spacing matching the inverse power density of the light source. This mode renders fast and gives a good first impression where the optical power of your sources ends up.
Monte-Carlo simulation mode
In the Monte-Carlo simulation mode, rays are placed randomly in the full solid angle according to the given power density of the light source. If the simulation is run in continuous mode, recorded ray hits will be stored to disk and can be loaded and further analyzed with the accompanying notebook in the example folder.
Spherical lens and parabolic mirror
Any geometric body in FreeCAD can become member of one of the OpticalGroups to turn them into reflective, refractive, absorbing or ray-detecting objects. This example contains spherical lenses and slotted parabolic mirrors, transparent and absorbing detectors. When running the continuous simulation, folders for all objects that have set Store Hits to true will be generated.
Geometry parameter optimization
All parameters of the FreeCAD model are accessible from an external python shell through the jupyter_utils submodule. The recommended workflow is to use a jupyter notebook for such edits (hence the module name). The example shows a simple spherical lens, the radius of which is optimized to minimize the spot size on a detector.
Troubleshooting
When encountering errors please make sure that the workbench is up-to-date (Addon Manager->Optics Design Workbench->Update) and that all python dependencies have the latest version (Addon Manager->Little "gear" button->Update all python packages).
When things don't work as expected first make sure you are actually running want you intend to run and whether the same workbench version is installed on the python and the FreeCAD side. To check this, run
import freecad.optics_design_workbench
freecad.optics_design_workbench.versionInfo()
in the FreeCAD python shell and
import optics_design_workbench
optics_design_workbench.versionInfo()
in your regular python shell of choice.
Make sure that the workbench versions seen by FreeCAD and by python match and that all the displayed versions and paths match your expectations.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file optics_design_workbench-1.2.0.tar.gz.
File metadata
- Download URL: optics_design_workbench-1.2.0.tar.gz
- Upload date:
- Size: 4.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4500c50a487b7806f5722385cfb7b6e27cabb348fd34a8efc4a99cbeb21440af
|
|
| MD5 |
0074d1c72b770f1b501f72f6f3c3fb09
|
|
| BLAKE2b-256 |
bf45d4c4b92e905e138fc96db62bdbff21b4774fc596a42c3869d0c662fde2c1
|
File details
Details for the file optics_design_workbench-1.2.0-py3-none-any.whl.
File metadata
- Download URL: optics_design_workbench-1.2.0-py3-none-any.whl
- Upload date:
- Size: 496.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffc60a7255b031f5f7083b89437f1b6327f24d299e81dbf5e18b2c515bc08e1d
|
|
| MD5 |
d8dcb6486c57fb08871deb109a9bedd3
|
|
| BLAKE2b-256 |
681985128d180817895158434417cbd3670ef6075c8a14ab0fbfed839544f984
|