playdough
GDSFactory's next-gen routing engine — robust, collision-aware Manhattan routing with optional gradient-based finetuning for photonic IC design.
Features
- Search-based Manhattan routing — performant, collision-aware, instant results
- Gradient-based finetuning — flexible constraint satisfaction (path length matching, collision avoidance) via automatic differentiation
- Multi-bundle routing — grouped port bundles with independent tangent directions
- Polyline output — get corner-point coordinates as numpy arrays, with optional smooth euler-bend curves
Installation
pip install playdough
Quick Start
import gdsfactory as gf
import playdough as pld
c = gf.Component()
waveguides = gf.components.array(gf.c.straight, columns=1, rows=3, row_pitch=3)
left = c << waveguides
right = c << waveguides
right.move((100, 50))
obs = c << gf.components.rectangle(size=(80, 10))
obs.ymin = 20
router = pld.add_route_bundle(
c,
start_ports=list(left.ports.filter(orientation=0)),
end_ports=list(right.ports.filter(orientation=180)),
obstacles=[obs],
)
# Optionally finetune for length matching
router.finetune(length_matching=5.0, lr=0.5)
Documentation
See the documentation site for tutorials and API reference.
License
Requires a valid GDSFactory account. Authenticate with gfp configure.
Metadata
Release files for playdough 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| playdough-0.4.2-1-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| playdough-0.4.2-1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| playdough-0.4.2-1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| playdough-0.4.2-1-cp312-cp312-macosx_11_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 11.0+ ARM64 | Details |
Total release size: 18.7 MB
Release files / playdough-0.4.2-1-cp312-cp312-win_amd64.whl
| Download URL | playdough-0.4.2-1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
afb848692fcdc71c444c2bf3b5cb7b3f4d163b9bde928ac095f5d0eb7cc6030c
|
|
BLAKE2b-256 checksum How to use checksums |
bc6c0f9fa53ac2969de44d0c8c890dc1af905161ed953e4ae6cd1cab1fb43f5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|
Release files / playdough-0.4.2-1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | playdough-0.4.2-1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5c1baf75590b672d1c2bfb630fc0b533f8ecd3ebf96a5e9c577b7fbba6787dde
|
|
BLAKE2b-256 checksum How to use checksums |
91a91c3a457f889ba804774afdcb918003e6acf675d46ed68482b160228edcda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|
Release files / playdough-0.4.2-1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | playdough-0.4.2-1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 8.0 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d1eead72067691b87ac8661785186827a3c981c101f4db8499689433b0248967
|
|
BLAKE2b-256 checksum How to use checksums |
6c5fd54bf9c493267d91a1b57c7d62bb8a6a1b0c87164ce7609a1127dfc06dfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|
Release files / playdough-0.4.2-1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | playdough-0.4.2-1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7ddd1b13f3011b4b6e68e12867faf82b12d93e8addc33681de69a9262c666469
|
|
BLAKE2b-256 checksum How to use checksums |
f52540f22d95e980f4e493d102fac258c31c56b9e47ea183eb892dc96bb5de5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|