{"id":13773487,"url":"https://github.com/gdsfactory/gdsfactory","last_synced_at":"2026-03-03T23:00:39.359Z","repository":{"id":36970280,"uuid":"250169028","full_name":"gdsfactory/gdsfactory","owner":"gdsfactory","description":"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.","archived":false,"fork":false,"pushed_at":"2026-02-27T04:58:02.000Z","size":49611,"stargazers_count":861,"open_issues_count":147,"forks_count":362,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-02-27T11:57:53.672Z","etag":null,"topics":["3d-printing","cad","eda","gds","gdsfactory","gdsii","hardware","klayout","pcb-layout","photonics","python","simulation"],"latest_commit_sha":null,"homepage":"https://gdsfactory.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gdsfactory.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-26T05:26:19.000Z","updated_at":"2026-02-26T23:22:29.000Z","dependencies_parsed_at":"2025-12-07T01:01:10.714Z","dependency_job_id":null,"html_url":"https://github.com/gdsfactory/gdsfactory","commit_stats":{"total_commits":6474,"total_committers":52,"mean_commits":124.5,"dds":0.5444856348470806,"last_synced_commit":"88d2b93cd374e588f54c23b357e66fc078f28590"},"previous_names":[],"tags_count":987,"template":false,"template_full_name":null,"purl":"pkg:github/gdsfactory/gdsfactory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsfactory%2Fgdsfactory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsfactory%2Fgdsfactory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsfactory%2Fgdsfactory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsfactory%2Fgdsfactory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdsfactory","download_url":"https://codeload.github.com/gdsfactory/gdsfactory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsfactory%2Fgdsfactory/sbom","scorecard":{"id":69100,"data":{"date":"2025-08-11","repo":{"name":"github.com/gdsfactory/gdsfactory","commit":"6a7a8658c4df5367f37c9cbedd2a70797dfbbeb0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":4,"reason":"Found 6/14 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/docker.yml:10","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release-drafter.yml:14","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:52","Warn: no topLevel permission defined: .github/workflows/codeflash.yml:1","Warn: no topLevel permission defined: .github/workflows/docker.yml:1","Warn: no topLevel permission defined: .github/workflows/pages.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/release-drafter.yml:10","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/test_code.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v9.12.2 not signed: https://api.github.com/repos/gdsfactory/gdsfactory/releases/237736755","Warn: release artifact v9.12.1 not signed: https://api.github.com/repos/gdsfactory/gdsfactory/releases/237087981","Warn: release artifact v9.12.0 not signed: https://api.github.com/repos/gdsfactory/gdsfactory/releases/235415899","Warn: release artifact v9.11.6 not signed: https://api.github.com/repos/gdsfactory/gdsfactory/releases/235412269","Warn: release artifact v9.11.5 not signed: https://api.github.com/repos/gdsfactory/gdsfactory/releases/234990653","Warn: release artifact v9.12.2 does not have provenance: https://api.github.com/repos/gdsfactory/gdsfactory/releases/237736755","Warn: release artifact v9.12.1 does not have provenance: https://api.github.com/repos/gdsfactory/gdsfactory/releases/237087981","Warn: release artifact v9.12.0 does not have provenance: https://api.github.com/repos/gdsfactory/gdsfactory/releases/235415899","Warn: release artifact v9.11.6 does not have provenance: https://api.github.com/repos/gdsfactory/gdsfactory/releases/235412269","Warn: release artifact v9.11.5 does not have provenance: https://api.github.com/repos/gdsfactory/gdsfactory/releases/234990653"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeflash.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/codeflash.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codeflash.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/codeflash.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pages.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pages.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pages.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pages.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pages.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pages.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pages.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/pages.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-drafter.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release-drafter.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-drafter.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release-drafter.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_code.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_code.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/gdsfactory/gdsfactory/test_code.yml/main?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:1: pin your Docker image by updating python:3.12-slim to python:3.12-slim@sha256:2267adc248a477c1f1a852a07a5a224d42abe54c28aafa572efa157dfb001bba","Warn: pipCommand not pinned by hash: .devcontainer/Dockerfile:30","Warn: downloadThenRun not pinned by hash: .devcontainer/Dockerfile:31","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:63","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:18","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:19","Info:   0 out of  20 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  19 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker.yml:7"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T03:23:31.709Z","repository_id":36970280,"created_at":"2025-08-15T03:23:31.709Z","updated_at":"2025-08-15T03:23:31.709Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30064771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-printing","cad","eda","gds","gdsfactory","gdsii","hardware","klayout","pcb-layout","photonics","python","simulation"],"created_at":"2024-08-03T17:01:16.166Z","updated_at":"2026-03-03T23:00:39.345Z","avatar_url":"https://github.com/gdsfactory.png","language":"Python","readme":"# GDSFactory 9.37.0\n\n[![docs](https://github.com/gdsfactory/gdsfactory/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gdsfactory/)\n[![PyPI](https://img.shields.io/pypi/v/gdsfactory)](https://pypi.org/project/gdsfactory/)\n[![PyPI Python](https://img.shields.io/pypi/pyversions/gdsfactory.svg)](https://pypi.python.org/pypi/gdsfactory)\n[![Downloads](https://static.pepy.tech/badge/gdsfactory)](https://pepy.tech/project/gdsfactory)\n[![MIT](https://img.shields.io/github/license/gdsfactory/gdsfactory)](https://choosealicense.com/licenses/mit/)\n[![codecov](https://img.shields.io/codecov/c/github/gdsfactory/gdsfactory)](https://codecov.io/gh/gdsfactory/gdsfactory/tree/main/gdsfactory)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/gdsfactory/binder-sandbox/HEAD)\n\nGDSFactory 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.\n\nAs input you write python code, as an output GDSFactory creates CAD files (GDS, OASIS, STL, GERBER).\n\n![cad](https://raw.githubusercontent.com/gdsfactory/gdsfactory/main/docs/images/cad.png)\n\n## Quick Start\n\nHere's a simple example to get you started:\n\n```bash\npip install gdsfactory\n```\n\nIf you prefer a faster setup, you can use the installer package:\n\n```bash\npip install gdsfactory_install\ngfi install\n```\n\n\n```python\nimport gdsfactory as gf\n\n# Create a new component\nc = gf.Component()\n\n# Add a rectangle\nr = gf.components.rectangle(size=(10, 10), layer=(1, 0))\nrect = c.add_ref(r)\n\n# Add text elements\nt1 = gf.components.text(\"Hello\", size=10, layer=(2, 0))\nt2 = gf.components.text(\"world\", size=10, layer=(2, 0))\n\ntext1 = c.add_ref(t1)\ntext2 = c.add_ref(t2)\n\n# Position elements\ntext1.xmin = rect.xmax + 5\ntext2.xmin = text1.xmax + 2\ntext2.rotate(30)\n\n# Show the result\nc.show()\n```\n\nHighlights:\n\n- 3M+ downloads\n- 105+ Contributors\n- 25+ PDKs available\n\n![workflow](https://raw.githubusercontent.com/gdsfactory/gdsfactory/main/docs/images/workflow.png)\n\nWe provide a comprehensive end-to-end design flow that enables you to:\n\n- **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.\n- **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.\n- **Validate**: Define layout and test protocols simultaneously for automated chip analysis post-fabrication. This allows you to extract essential component parameters, and build data pipelines from raw data to structured data to monitor chip performance.\n\nYour input: Python or YAML text.\nYour output: A GDSII or OASIS file for fabrication, alongside component settings (for measurement and data analysis) and netlists (for circuit simulations) in YAML.\n\nWe provide a common syntax for design (Ansys, Lumerical, Tidy3d, MEEP, DEVSIM, SAX, MEOW, Xyce ...), verification, and validation.\n\n![tool interfaces](https://raw.githubusercontent.com/gdsfactory/gdsfactory/main/docs/images/tool_interfaces.png)\n\n\n## Open-Source PDKs (No NDA Required)\n\nThese PDKs are publicly available and do not require an NDA:\n\n- Photonics:\n    - [Cornerstone PDK](https://github.com/gdsfactory/cspdk)\n    - [SiEPIC Ebeam UBC PDK](https://github.com/gdsfactory/ubc)\n    - [VTT PDK](https://github.com/gdsfactory/vtt)\n    - [Luxtelligence GF PDK](https://github.com/Luxtelligence/lxt_pdk_gf)\n- Quantum:\n    - [Quantum RF PDK](https://github.com/gdsfactory/quantum-rf-pdk)\n- RF/AMS/Digital/Analog:\n    - [IHP](https://gdsfactory.github.io/IHP)\n    - [GlobalFoundries 180nm MCU CMOS PDK](https://gdsfactory.github.io/gf180mcu/)\n    - [SkyWater 130nm CMOS PDK](https://gdsfactory.github.io/skywater130/)\n\n## Foundry PDKs (NDA Required)\n\nAccess to the following PDKs requires a **GDSFactory+** subscription.\nTo sign up, visit [GDSFactory.com](https://gdsfactory.com/).\n\nAvailable PDKs under NDA:\n\n- AIM Photonics\n- AMF Photonics\n- CompoundTek Photonics\n- Fraunhofer HHI Photonics\n- Smart Photonics\n- Tower Semiconductor PH18\n- Tower PH18DA by OpenLight\n- III-V Labs\n- LioniX\n- Ligentec\n- Lightium\n- Quantum Computing Inc. (QCI)\n\n\n## GDSFactory+\n\n**GDSFactory+** offers Graphical User Interface for chip design, built on top of GDSFactory and VSCode. It provides you:\n\n- Foundry PDK access\n- Schematic capture\n- Device and circuit Simulations\n- Design verification (DRC, LVS)\n- Data analytics\n\n\n## Getting Started\n\n- [See slides](https://docs.google.com/presentation/d/1_ZmUxbaHWo_lQP17dlT1FWX-XD8D9w7-FcuEih48d_0/edit#slide=id.g11711f50935_0_5)\n- [Read docs](https://gdsfactory.github.io/gdsfactory/)\n- [![Video Tutorials](https://img.shields.io/badge/youtube-Video_Tutorials-red.svg?logo=youtube)](https://www.youtube.com/@gdsfactory/playlists)\n- See announcements on [GitHub](https://github.com/gdsfactory/gdsfactory/discussions/547), [google-groups](https://groups.google.com/g/gdsfactory) or [LinkedIn](https://www.linkedin.com/company/gdsfactory)\n- [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=main\u0026repo=250169028)\n- [PIC training](https://gdsfactory.github.io/gdsfactory-photonics-training/)\n- Online course [UBCx: Silicon Photonics Design, Fabrication and Data Analysis](https://www.edx.org/learn/engineering/university-of-british-columbia-silicon-photonics-design-fabrication-and-data-ana), where students can use GDSFactory to create a design, have it fabricated, and tested.\n- [Visit website](https://gdsfactory.com)\n\n## Who is using GDSFactory?\n\nHundreds of organisations are using GDSFactory. Some companies and organizations around the world using GDSFactory include:\n\n![logos](https://raw.githubusercontent.com/gdsfactory/gdsfactory/main/docs/images/logos.png)\n\n\"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).\"\n\n\u003cdiv style=\"text-align: right; margin-right: 10%;\"\u003eJoaquin Matres - \u003cstrong\u003eGoogle\u003c/strong\u003e\u003c/div\u003e\n\n---\n\n\"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.\"\n\n\u003cdiv style=\"text-align: right; margin-right: 10%;\"\u003eAlec Hammond - \u003cstrong\u003eMeta Reality Labs Research\u003c/strong\u003e\u003c/div\u003e\n\n---\n\n\"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.\"\n\n\u003cdiv style=\"text-align: right; margin-right: 10%;\"\u003eHasitha Jayatilleka - \u003cstrong\u003eLightIC Technologies\u003c/strong\u003e\u003c/div\u003e\n\n---\n\n\"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.\"\n\n\u003cdiv style=\"text-align: right; margin-right: 10%;\"\u003eAlex Sludds - \u003cstrong\u003eMIT\u003c/strong\u003e\u003c/div\u003e\n\n---\n\n\"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.\n\n\u003cdiv style=\"text-align: right; margin-right: 10%;\"\u003eThomas Dorch - \u003cstrong\u003eFreedom Photonics\u003c/strong\u003e\u003c/div\u003e\n\n## Why Use GDSFactory?\n\n- **Fast, extensible, and easy to use** – designed for efficiency and flexibility.\n- **Free and open-source** – no licensing fees, giving you the freedom to modify and extend it.\n- **A thriving ecosystem** – the most popular EDA tool with a growing community of users, developers, and integrations with other tools.\n- **Built on the open-source advantage** – just like the best machine learning libraries, GDSFactory benefits from continuous contributions, transparency, and innovation.\n\nGDSFactory 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.\n\n| Benchmark      |  gdspy  | GDSFactory | Gain |\n| :------------- | :-----: | :--------: | :--: |\n| 10k_rectangles | 80.2 ms |  4.87 ms   | 16.5 |\n| boolean-offset | 187 μs  |  44.7 μs   | 4.19 |\n| bounding_box   | 36.7 ms |   170 μs   | 216  |\n| flatten        | 465 μs  |  8.17 μs   | 56.9 |\n| read_gds       | 2.68 ms |   94 μs    | 28.5 |\n\n## Contributors\n\nA huge thanks to all the contributors who make this project possible!\n\nWe welcome all contributions—whether you're adding new features, improving documentation, or even fixing a small typo. Every contribution helps make GDSFactory better!\n\nJoin us and be part of the community. 🚀\n\n![contributors](https://raw.githubusercontent.com/gdsfactory/gdsfactory/main/docs/images/contributors.png)\n\n## Stargazers\n\n[![Stargazers over time](https://starchart.cc/gdsfactory/gdsfactory.svg)](https://starchart.cc/gdsfactory/gdsfactory)\n\n## Key Features\n\n- **Design**: Create parametric components with Python\n- **Simulation**: Direct integration with major simulation tools\n- **Verification**: Built-in DRC, DFM, and LVS capabilities\n- **Validation**: Automated chip analysis and data pipelines\n- **Multi-format Output**: Generate GDSII, OASIS, STL, and GERBER files\n- **Extensible**: Easy to add new components and functionality\n\n## Community\n\nJoin our growing community:\n- [GitHub Discussions](https://github.com/gdsfactory/gdsfactory/discussions)\n- [Google Group](https://groups.google.com/g/gdsfactory)\n- [LinkedIn](https://www.linkedin.com/company/gdsfactory)\n- [Slack community channel](https://join.slack.com/t/gdsfactory-community/shared_invite/zt-3aoygv7cg-r5BH6yvL4YlHfY8~UXp0Wg)\n","funding_links":[],"categories":["Layout Compilers","Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdsfactory%2Fgdsfactory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdsfactory%2Fgdsfactory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdsfactory%2Fgdsfactory/lists"}