Metadata-Version: 2.2
Name: photonforge
Version: 1.5.2
Summary: PhotonForge is a design tool that integrates with foundry PDKs to speed up the design, simulation, and verification cycle for optical components and systems.
Author-Email: "Flexcompute Inc." <support@flexcompute.com>
Project-URL: homepage, https://www.flexcompute.com/
Project-URL: documentation, https://docs.flexcompute.com/projects/photonforge/
Requires-Python: >=3.10
Requires-Dist: numpy>=1.22
Requires-Dist: scipy>=1.15
Requires-Dist: tidy3d[trimesh]<2.13,>=2.12.0
Requires-Dist: cryptography==48.0.1; platform_system == "Darwin" and platform_machine == "x86_64"
Requires-Dist: pydantic<3,>=2.9
Requires-Dist: packaging>=23
Requires-Dist: uvicorn>=0.34
Requires-Dist: fastapi>=0.115
Requires-Dist: jinja2>=3.1
Requires-Dist: automerge==0.2.0.dev4
Requires-Dist: base58
Requires-Dist: httpx[http2]>=0.28
Requires-Dist: websockets>=16.0
Provides-Extra: dev
Requires-Dist: build>=1.3; extra == "dev"
Requires-Dist: ipykernel>=6.10; extra == "dev"
Requires-Dist: ipywidgets>=8.0; extra == "dev"
Requires-Dist: jsonschema>=4.25; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.2; extra == "test"
Requires-Dist: gdstk>=0.9.61; extra == "test"
Requires-Dist: scipy>=1.7; extra == "test"
Requires-Dist: httpx>=0.28; extra == "test"
Provides-Extra: xarray
Requires-Dist: xarray; extra == "xarray"
Provides-Extra: plotting
Requires-Dist: matplotlib; extra == "plotting"
Provides-Extra: docs
Requires-Dist: sphinx<8.2.0; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: nbsphinx; extra == "docs"
Requires-Dist: nbformat; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: ipython; extra == "docs"
Requires-Dist: ipywidgets; extra == "docs"
Requires-Dist: scikit-rf; extra == "docs"
Requires-Dist: bayesian-optimization>=2.0.0; extra == "docs"
Description-Content-Type: text/markdown

# PhotonForge

PhotonForge is a design tool that integrates with foundry PDKs to speed up the
design, simulation, and verification cycle for optical components and systems. 


## Documentation

The online documentation can be found
[here](https://docs.flexcompute.com/projects/photonforge/).


## Notebook LiveViewer

LiveViewer accepts Components and GDSII/OASIS paths and renders native viewport
packets with WebGL2. In IPython, the most recent Component is rebuilt 100 ms
after successful cell execution. A following cell cancels the pending rebuild,
so queued runs publish only their final state. Direct mutations and rebinding
its public notebook variable both update the viewer. Configure the delay with
`LiveViewer(auto_refresh_delay=0.1)`, or disable refresh with
`LiveViewer(auto_refresh=False)`. Opening a file path, including from the
browser, stops Component auto-refresh only after that file scene publishes
successfully; canceled and failed opens resume any pending refresh.
Small cell instances switch from exact vectors at a fixed 8-CSS-pixel threshold
to subtree-atlas and density rendering. Over-budget placement-free flat layouts
use a bounded layer-aware field while close views remain exact. File-backed
axis-aligned rectangles use compact PHVS storage and first-touch checked mmap
chunks without changing exact
rendering or picking. Middle-tier cells use complete exact boundaries when
available; isolated atlas levels preserve subpixel tiles without cross-cell
bleed. Nonresident boundary assets remain bounded. After interaction settles,
bounded native raster tiles
progressively replace previews only when complete; failed or incomplete regions
retain the preview. Exact vectors and refined tiles preserve native scene-layer
order. Layout-file paths are not watched.


## Development docs:

- [docs/development.md](docs/development.md): local development setup.
- [docs/architecture.md](docs/architecture.md): general code structure and
  architecture.
- [docs/spice.md](docs/spice.md): user guide for `photonforge.spice`.
- [docs/spice_release_plan.md](docs/spice_release_plan.md): implementation and
  release plan for `photonforge.spice`.
- [docs/testing.md](docs/testing.md): testing infrastructure.
- [docs/deployment.md](docs/deployment.md): how to release a new version.
