Skip to main content

python library to generate GDS layouts

Project description

GDSFactory 9.46.0

docs PyPI PyPI Python Downloads MIT codecov Binder

GDSFactory is a Python library for designing chips (Photonics, Analog, Quantum, MEMS), PCBs, and 3D-printable objects. We aim to make hardware design accessible, intuitive, and fun—empowering everyone to build the future.

As input you write python code, as an output GDSFactory creates CAD files (GDS, OASIS, STL, GERBER).

cad

Quick Start

Here's a simple example to get you started:

pip install gdsfactory

If you prefer a faster setup, you can use the installer package:

pip install gdsfactory_install
gfi install
import gdsfactory as gf

# Create a new component
c = gf.Component()

# Add a rectangle
r = gf.components.rectangle(size=(10, 10), layer=(1, 0))
rect = c.add_ref(r)

# Add text elements
t1 = gf.components.text("Hello", size=10, layer=(2, 0))
t2 = gf.components.text("world", size=10, layer=(2, 0))

text1 = c.add_ref(t1)
text2 = c.add_ref(t2)

# Position elements
text1.xmin = rect.xmax + 5
text2.xmin = text1.xmax + 2
text2.rotate(30)

# Show the result
c.show()

4M+ downloads · 116+ contributors · 42+ PDKs

workflow

GDSFactory provides a comprehensive end-to-end design flow:

  • Design (Layout, Simulation, Optimization) — Define parametric cell functions in Python to generate components. Test component settings, ports, and geometry to avoid unwanted regressions, and capture design intent in a schematic.
  • Verify (DRC, DFM, LVS) — Run simulations directly from the layout using our simulation interfaces, removing the need to redraw your components in simulation tools. Conduct component and circuit simulations, study design for manufacturing. Ensure complex layouts match their design intent through Layout Versus Schematic verification (LVS) and are DRC clean.
  • Validate — Define layout and test protocols simultaneously for automated chip analysis post-fabrication. Extract essential component parameters and build data pipelines from raw data to structured data to monitor chip performance.

Input: Python or YAML. Output: GDSII, OASIS, STL, or GERBER files for fabrication, plus component settings and netlists in YAML.

GDSFactory integrates with Ansys, Lumerical, Tidy3d, MEEP, DEVSIM, SAX, MEOW, SPICE, and more.

tool interfaces

Open-Source PDKs (No NDA Required)

These PDKs are publicly available and do not require an NDA:

Photonics

PDK Code Docs
Cornerstone PDK GitHub Docs
SiEPIC Ebeam UBC PDK GitHub Docs
VTT PDK GitHub Docs
Luxtelligence GF PDK GitHub Docs

Quantum

PDK Code Docs
Quantum RF PDK GitHub Docs

RF / AMS / Digital / Analog

PDK Code Docs
IHP GitHub Docs
GlobalFoundries 180nm MCU CMOS GitHub Docs
SkyWater 130nm CMOS GitHub Docs

Foundry PDKs (NDA Required)

Access PDKs under NDA require a GDSFactory+ subscription. To sign up, visit GDSFactory.com. See list of available PDKs under NDA here.

GDSFactory+

GDSFactory+ offers Graphical User Interface for chip design, built on top of GDSFactory and VSCode. It provides you:

  • Foundry PDK access
  • Schematic capture
  • Device and circuit Simulations
  • Design verification (DRC, LVS)
  • Data analytics

Getting Started

Who is using GDSFactory?

Hundreds of organisations are using GDSFactory. Some companies and organizations around the world using GDSFactory include:

logos

"I've used GDSFactory since 2017 for all my chip tapeouts. I love that it is fast, easy to use, and easy to extend. It's the only tool that allows us to have an end-to-end chip design flow (design, verification and validation)."

Joaquin Matres - Google

"I've relied on GDSFactory for several tapeouts over the years. It's the only tool I've found that gives me the flexibility and scalability I need for a variety of projects."

Alec Hammond - Meta Reality Labs Research

"The best photonics layout tool I've used so far and it is leaps and bounds ahead of any commercial alternatives out there. Feels like GDSFactory is freeing photonics."

Hasitha Jayatilleka - LightIC Technologies

"As an academic working on large scale silicon photonics at CMOS foundries I've used GDSFactory to go from nothing to full-reticle layouts rapidly (in a few days). I particularly appreciate the full-system approach to photonics, with my layout being connected to circuit simulators which are then connected to device simulators. Moving from legacy tools such as gdspy and phidl to GDSFactory has sped up my workflow at least an order of magnitude."

Alex Sludds - MIT

"I use GDSFactory for all of my photonic tape-outs. The Python interface makes it easy to version control individual photonic components as well as entire layouts, while integrating seamlessly with KLayout and most standard photonic simulation tools, both open-source and commercial."

Thomas Dorch - Freedom Photonics

Why Use GDSFactory?

  • Fast, extensible, and easy to use – designed for efficiency and flexibility.
  • Free and open-source – no licensing fees, giving you the freedom to modify and extend it.
  • A thriving ecosystem – the most popular EDA tool with a growing community of users, developers, and integrations with other tools.
  • Built on the open-source advantage – just like the best machine learning libraries, GDSFactory benefits from continuous contributions, transparency, and innovation.

GDSFactory is really fast thanks to KLayout C++ library for manipulating GDS objects. You will notice this when reading/writing big GDS files or doing large boolean operations.

Benchmark gdspy GDSFactory Gain
10k_rectangles 80.2 ms 4.87 ms 16.5
boolean-offset 187 μs 44.7 μs 4.19
bounding_box 36.7 ms 170 μs 216
flatten 465 μs 8.17 μs 56.9
read_gds 2.68 ms 94 μs 28.5

Contributors

A huge thanks to all the contributors who make this project possible!

We welcome all contributions—whether you're adding new features, improving documentation, or even fixing a small typo. Every contribution helps make GDSFactory better!

Join us and be part of the community. 🚀

contributors

LLM-Friendly Documentation

GDSFactory provides machine-readable documentation optimized for LLM agents and AI-assisted development:

  • llms.txt — concise overview with links to all documentation sections
  • llms-full.txt — complete API reference and usage guide in a single document

These follow the llms.txt standard for making documentation easily ingestable by large language models.

Community

Join our growing community:

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gdsfactory-9.46.0.tar.gz (560.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gdsfactory-9.46.0-py3-none-any.whl (812.1 kB view details)

Uploaded Python 3

File details

Details for the file gdsfactory-9.46.0.tar.gz.

File metadata

  • Download URL: gdsfactory-9.46.0.tar.gz
  • Upload date:
  • Size: 560.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for gdsfactory-9.46.0.tar.gz
Algorithm Hash digest
SHA256 b9969e9d436161b0875a7d7b04c72254bf897cf50a9c9fbcabbf8a6116c2d10e
MD5 b84c98e81e664ebf277e29f3e5308879
BLAKE2b-256 f25b5ab971d466eafdc014a84331107631660012423ccda1294451504b63dd09

See more details on using hashes here.

File details

Details for the file gdsfactory-9.46.0-py3-none-any.whl.

File metadata

  • Download URL: gdsfactory-9.46.0-py3-none-any.whl
  • Upload date:
  • Size: 812.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for gdsfactory-9.46.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39458475c5edb0027e8f8d697d5f28345d9e7d659c2675f26b7f20442e817c41
MD5 067cdd0f543a70f41fb9f10a41c792e9
BLAKE2b-256 e0426b8bc5beeba14213592a1a4f3e1f3bb9d610a65a9ae45bdaf601f8cd5035

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page