PhotonForge 1.1.7 Documentation¶

PhotonForge is a design tool that integrates with foundry PDKs to speed up the design, simulation, and verification cycle for optical components and systems.
Installation¶
Simply go to tidy3d.simulation.cloud and sign up for an account. From there, just load our web GUI (no installation required) or continue with the next steps for the Python interface.
PhotonForge is a python module that can be easily installed via pip
:
pip install "photonforge[live_viewer]"
This command will install PhotonForge and its dependencies in the current environment, including the optional LiveViewer
dependencies.
If you have Tidy3D already installed in a virtual environment, you can use the same environment for PhotonForge.
A Tidy3D API key is required to authenticate PhotonForge users. If you don’t have one already configured, you can get a free API key and configure it with the following command:
tidy3d configure
On Windows, it is easier to use pipx
to find the path to the configuration tool:
pip install pipx
pipx run tidy3d configure
More information about the installation and configuration of Tidy3D can be found here.
You can verify that the PhotonForge installation worked by running the following command to print the installed version:
python -c 'import photonforge as pf; print(pf.__version__)'
Optional: PDK Installation¶
Proprietary foundry PDKs are loaded as PhotonForge technologies, which are distributed within each PDK package along with installation instructions.
Publicly available PDKs can be installed with pip
.
For example, to install SiEPIC OpenEBL or Luxtelligence LNOI400 PDKs for PhotonForge, simply use:
pip install siepic-forge
pip install luxtelligence-lnoi400-forge
Next Steps¶
- Getting Started
- Quick Start
- Short Guides
- Technology
- Layers
- Ports
- Electrical Ports
- Fiber Ports
- PDK Components
- Parametric Component Library
- Custom Technology
- Custom Parametric Components
- Routing and Connections
- Importing a GDSII/OASIS Layout
- Exporting a GDSII/OASIS Layout
- S Parameters
- Tidy3D Model
- Circuit Model
- Data Model
- Custom Model
- Layout Examples
- Examples
- Python API Reference
- Frequently Asked Questions
- How to estimate the cost of an S matrix computation?
- How to change the layers of a component?
- Can I use paths to create corrugated waveguides?
- How do I specify the number of vertices when a circle or a path is converted to a polygon?
- How do I apply changes to a simulation object in a mode solver simulation?
- How can I extract simulation data, such as field data, from Tidy3D?
- How can I simulate the S-matrix exclusively for a specific port?
- How do I update a specific reference within a hierarchical component, such as its model?
- How do I define port symmetries?
- Is the order of ExtrusionSpec objects in a list important?
- How can I modify a technology?
- Change Log
- Software License Agreement