Metadata-Version: 2.1
Name: gdsfactory
Version: 5.18.4
Summary: python library to generate GDS layouts
Home-page: https://github.com/gdsfactory/gdsfactory
Author: gdsfactory community
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Framework :: Pytest
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click
Requires-Dist: flatdict
Requires-Dist: gdspy
Requires-Dist: jsondiff
Requires-Dist: loguru
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: omegaconf
Requires-Dist: orjson
Requires-Dist: pandas
Requires-Dist: phidl (==1.6.2)
Requires-Dist: picwriter (==0.5)
Requires-Dist: pydantic
Requires-Dist: pytest
Requires-Dist: pytest-regressions
Requires-Dist: pyyaml
Requires-Dist: qrcode
Requires-Dist: rectpack
Requires-Dist: scipy
Requires-Dist: shapely
Requires-Dist: toolz
Requires-Dist: tqdm
Requires-Dist: types-PyYAML
Requires-Dist: typing-extensions
Requires-Dist: watchdog
Requires-Dist: xmltodict
Provides-Extra: dev
Requires-Dist: myst-parser ; extra == 'dev'
Requires-Dist: xdoctest ; extra == 'dev'
Requires-Dist: flatdict ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: rectpack ; extra == 'dev'
Requires-Dist: sphinx-click ; extra == 'dev'
Requires-Dist: phidl (==1.6.2) ; extra == 'dev'
Requires-Dist: pytest-regressions ; extra == 'dev'
Requires-Dist: omegaconf ; extra == 'dev'
Requires-Dist: autodoc-pydantic ; extra == 'dev'
Requires-Dist: sphinx-book-theme (==0.3.3) ; extra == 'dev'
Requires-Dist: shapely ; extra == 'dev'
Requires-Dist: tox ; extra == 'dev'
Requires-Dist: orjson ; extra == 'dev'
Requires-Dist: ipykernel ; extra == 'dev'
Requires-Dist: click ; extra == 'dev'
Requires-Dist: loguru ; extra == 'dev'
Requires-Dist: toolz ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: nbsphinx ; extra == 'dev'
Requires-Dist: numpy ; extra == 'dev'
Requires-Dist: pandas ; extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'dev'
Requires-Dist: autotyping ; extra == 'dev'
Requires-Dist: sphinx-markdown-tables (==0.0.17) ; extra == 'dev'
Requires-Dist: qrcode ; extra == 'dev'
Requires-Dist: docutils (==0.19) ; extra == 'dev'
Requires-Dist: gdspy ; extra == 'dev'
Requires-Dist: doc8 ; extra == 'dev'
Requires-Dist: jsondiff ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: picwriter (==0.5) ; extra == 'dev'
Requires-Dist: scipy ; extra == 'dev'
Requires-Dist: pydocstyle ; extra == 'dev'
Requires-Dist: types-waitress ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: pydantic ; extra == 'dev'
Requires-Dist: types-PyYAML ; extra == 'dev'
Requires-Dist: pyyaml ; extra == 'dev'
Requires-Dist: pur ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: xmltodict ; extra == 'dev'
Requires-Dist: typing-extensions ; extra == 'dev'
Requires-Dist: watchdog ; extra == 'dev'
Requires-Dist: flake8-bugbear ; extra == 'dev'
Requires-Dist: tqdm ; extra == 'dev'
Requires-Dist: sphinx-copybutton ; extra == 'dev'
Requires-Dist: matplotlib ; extra == 'dev'
Provides-Extra: exp
Requires-Dist: flatdict ; extra == 'exp'
Requires-Dist: rectpack ; extra == 'exp'
Requires-Dist: phidl (==1.6.2) ; extra == 'exp'
Requires-Dist: pytest-regressions ; extra == 'exp'
Requires-Dist: omegaconf ; extra == 'exp'
Requires-Dist: dash ; extra == 'exp'
Requires-Dist: shapely ; extra == 'exp'
Requires-Dist: orjson ; extra == 'exp'
Requires-Dist: click ; extra == 'exp'
Requires-Dist: loguru ; extra == 'exp'
Requires-Dist: toolz ; extra == 'exp'
Requires-Dist: jsonschema ; extra == 'exp'
Requires-Dist: numpy ; extra == 'exp'
Requires-Dist: pandas ; extra == 'exp'
Requires-Dist: qrcode ; extra == 'exp'
Requires-Dist: gdspy ; extra == 'exp'
Requires-Dist: jsondiff ; extra == 'exp'
Requires-Dist: picwriter (==0.5) ; extra == 'exp'
Requires-Dist: scipy ; extra == 'exp'
Requires-Dist: dash-bootstrap-components (>=0.8.2) ; extra == 'exp'
Requires-Dist: pydantic ; extra == 'exp'
Requires-Dist: types-PyYAML ; extra == 'exp'
Requires-Dist: pyyaml ; extra == 'exp'
Requires-Dist: Werkzeug (==2.2.2) ; extra == 'exp'
Requires-Dist: pytest ; extra == 'exp'
Requires-Dist: xmltodict ; extra == 'exp'
Requires-Dist: typing-extensions ; extra == 'exp'
Requires-Dist: watchdog ; extra == 'exp'
Requires-Dist: tqdm ; extra == 'exp'
Requires-Dist: matplotlib ; extra == 'exp'
Provides-Extra: full
Requires-Dist: flatdict ; extra == 'full'
Requires-Dist: rectpack ; extra == 'full'
Requires-Dist: phidl (==1.6.2) ; extra == 'full'
Requires-Dist: pytest-regressions ; extra == 'full'
Requires-Dist: sax ; extra == 'full'
Requires-Dist: omegaconf ; extra == 'full'
Requires-Dist: holoviews ; extra == 'full'
Requires-Dist: simphony (==0.6.1) ; extra == 'full'
Requires-Dist: shapely ; extra == 'full'
Requires-Dist: pyglet ; extra == 'full'
Requires-Dist: orjson ; extra == 'full'
Requires-Dist: ipywidgets ; extra == 'full'
Requires-Dist: click ; extra == 'full'
Requires-Dist: loguru ; extra == 'full'
Requires-Dist: toolz ; extra == 'full'
Requires-Dist: triangle ; extra == 'full'
Requires-Dist: numpy ; extra == 'full'
Requires-Dist: klayout ; extra == 'full'
Requires-Dist: pandas ; extra == 'full'
Requires-Dist: lytest (==0.0.20) ; extra == 'full'
Requires-Dist: qrcode ; extra == 'full'
Requires-Dist: gdspy ; extra == 'full'
Requires-Dist: jsondiff ; extra == 'full'
Requires-Dist: bokeh ; extra == 'full'
Requires-Dist: tidy3d-beta (==1.5.0) ; extra == 'full'
Requires-Dist: picwriter (==0.5) ; extra == 'full'
Requires-Dist: scipy ; extra == 'full'
Requires-Dist: sklearn ; extra == 'full'
Requires-Dist: ipympl ; extra == 'full'
Requires-Dist: pydantic ; extra == 'full'
Requires-Dist: types-PyYAML ; extra == 'full'
Requires-Dist: pyyaml ; extra == 'full'
Requires-Dist: networkx ; extra == 'full'
Requires-Dist: pytest ; extra == 'full'
Requires-Dist: xmltodict ; extra == 'full'
Requires-Dist: typing-extensions ; extra == 'full'
Requires-Dist: watchdog ; extra == 'full'
Requires-Dist: trimesh ; extra == 'full'
Requires-Dist: tqdm ; extra == 'full'
Requires-Dist: scikit-image ; extra == 'full'
Requires-Dist: matplotlib ; extra == 'full'
Provides-Extra: sipann
Requires-Dist: SIPANN (==2.0.0) ; extra == 'sipann'

# gdsfactory 5.18.4

[![docs](https://github.com/gdsfactory/gdsfactory/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gdsfactory/)
[![pypi](https://img.shields.io/pypi/v/gdsfactory)](https://pypi.org/project/gdsfactory/)
[![PyPI Python](https://img.shields.io/pypi/pyversions/gdsfactory.svg)](https://pypi.python.org/pypi/gdsfactory)
[![issues](https://img.shields.io/github/issues/gdsfactory/gdsfactory)](https://github.com/gdsfactory/gdsfactory/issues)
[![forks](https://img.shields.io/github/forks/gdsfactory/gdsfactory.svg)](https://github.com/gdsfactory/gdsfactory/network/members)
[![GitHub stars](https://img.shields.io/github/stars/gdsfactory/gdsfactory.svg)](https://github.com/gdsfactory/gdsfactory/stargazers)
[![Downloads](https://pepy.tech/badge/gdsfactory)](https://pepy.tech/project/gdsfactory)
[![Downloads](https://pepy.tech/badge/gdsfactory/month)](https://pepy.tech/project/gdsfactory)
[![Downloads](https://pepy.tech/badge/gdsfactory/week)](https://pepy.tech/project/gdsfactory)
[![MIT](https://img.shields.io/github/license/gdsfactory/gdsfactory)](https://choosealicense.com/licenses/mit/)
[![codecov](https://img.shields.io/codecov/c/github/gdsfactory/gdsfactory)](https://codecov.io/gh/gdsfactory/gdsfactory/tree/master/gdsfactory)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/gdsfactory/gdsfactory/HEAD)

![](https://i.imgur.com/v4wpHpg.png)

gdsfactory is an EDA (electronics design automation) tool for Integrated Circuits.
It combines a code driven flow (python or YAML) with visualization and simulation plugins.


Multiple foundries have gdsfactory PDKs available. Talk to your foundry to access their gdsfactory PDK.

You can also access:

- open source PDKs available on GitHub
    * [UBCPDK](https://gdsfactory.github.io/ubc/README.html)
    * [skywater130](https://gdsfactory.github.io/skywater130/README.html)
- instructions on [how to build your own PDK](https://gdsfactory.github.io/gdsfactory/notebooks/08_pdk.html)
- instructions on [how to import a PDK from a library of fixed GDS cells](https://gdsfactory.github.io/gdsfactory/notebooks/09_pdk_import.html)



gdsfactory provides you with functions that you can use to:

- define Pcells in python or YAML.
- define routes between components.
- test settings, ports and geometry for components to avoid regressions.


As input, you write python or YAML code.
As output you write a GDSII or OASIS file that can send to your CMOS foundry.
You can also write components settings (for measurement and data analysis) or netlists (for circuit simulations).

![](https://i.imgur.com/XbhWJDz.png)


gdsfactory leverages phidl, gdspy and klayout python libraries.

![](https://i.imgur.com/zMpvrWr.png)


## Getting started

- Run notebooks on [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/gdsfactory/gdsfactory/HEAD)
- [see slides](https://docs.google.com/presentation/d/1_ZmUxbaHWo_lQP17dlT1FWX-XD8D9w7-FcuEih48d_0/edit#slide=id.g11711f50935_0_5)
- [read docs](https://gdsfactory.github.io/gdsfactory/)
- [See YouTube videos](https://www.youtube.com/channel/UCp4ZA52J1pH4XI5gvLjgB_g)

## Acks

gdsfactory top contributors:

- Joaquin Matres (Google): maintainer.
- Damien Bonneau (PsiQ): cell decorator, Component routing functions, Klayout placer.
- Pete Shadbolt (PsiQ): Klayout auto-placer, Klayout GDS interface (klive).
- Troy Tamas (Rockley): get_route_from_steps, netlist driven flow (from_yaml).
- Floris Laporte (Rockley): netlist extraction and circuit simulation interface with SAX.
- Alec Hammond (Georgia Tech): Meep and MPB interface.
- Simon Bilodeau (Princeton): Meep FDTD write Sparameters.
- Thomas Dorch (Freedom Photonics): for Meep's material database access, MPB sidewall angles, and add_pin_path.
- Igal Bayn (Google): for documentation improvements and suggestions.
- Alex Sludds (MIT): for tiling fixes.
- Skandan Chandrasekar (BYU): for simphony and SiPANN plugins.
- Helge Gehring (Google): for simulation plugins, improving code quality and new components (spiral paths).

Open source heroes:

- Matthias Köfferlein (Germany): for Klayout
- Lucas Heitzmann (University of Campinas, Brazil): for gdspy
- Adam McCaughan (NIST): for phidl
- Alex Tait (Queens University): for lytest
- Thomas Ferreira de Lima (NEC): for `pip install klayout`

## Links

- [gdsfactory GitHub repo](https://github.com/gdsfactory/gdsfactory), [docs](https://gdsfactory.github.io/gdsfactory/) and [general updates](https://github.com/gdsfactory/gdsfactory/discussions/547)
- [awesome photonics list](https://github.com/joamatab/awesome_photonics)
