Skip to main content

GDSFactory's next-gen routing engine for photonic IC design

Project description

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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

playdough-0.3.0-cp312-cp312-win_amd64.whl (603.1 kB view details)

Uploaded CPython 3.12Windows x86-64

playdough-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

playdough-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

playdough-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (696.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file playdough-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: playdough-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 603.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for playdough-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bfb31bfdaff11b9aa4215d4af94d9f7268b9f4073323e84ca2eaa7aa6d6ce7f2
MD5 dcff0536687b66bc0e9265106bb0b760
BLAKE2b-256 b2a5d234b389c1b0636e727a4bfc3da5a4f884b03bf82c47a362ceb675462c04

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on doplaydo/playdough

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file playdough-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for playdough-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f302ba3780e35ee846d55d24fa5882f8cadad15214ea6bd6b9dda7788c9054bc
MD5 a5d689187a7c23071020b0e025b2e685
BLAKE2b-256 a643c57104cc30b346e9700dd9b88eab03c2d0722b7cfece8324eb7a1d27c647

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on doplaydo/playdough

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file playdough-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for playdough-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4703519cb19779427b6f38c6763a96ccd2805ebea9d28a4731ebf9eb4108ce70
MD5 3120035a53f3f301091687c7f67553df
BLAKE2b-256 2c3f75a0fa37612d6075dc75db7cbf99a4d41705e72bded88c6a6574e84bd56b

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on doplaydo/playdough

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file playdough-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for playdough-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 825c60bdad11aa461f5f4b4eeb76d766a45a80389713b0bb4110a639b0480bac
MD5 f92969b3428a6e60daaa83fd3cd48fb1
BLAKE2b-256 5701e663e16c31dfd5d86445ce12b1c0a991701f38d49b6da9dc2c4d29e03497

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on doplaydo/playdough

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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