Skip to main content

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)

Table of built distributions (wheels) for playdough 0.4.2
File
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

Release history Release notifications | RSS feed

0.5.11

4 release files

0.5.10

4 release files

0.5.9

4 release files

0.5.8

4 release files

0.5.7

4 release files

0.5.6

4 release files

0.5.5

4 release files

0.5.4

4 release files

0.5.3

4 release files

0.5.2

4 release files

0.5.1

4 release files

0.5.0

4 release files

This release

0.4.2 This release

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page