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.2-cp312-cp312-win_amd64.whl (606.9 kB view details)

Uploaded CPython 3.12Windows x86-64

playdough-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

playdough-0.3.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (694.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: playdough-0.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 606.9 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0ed3c52df5438c66cbeab1367f97378c9559c51a69a3d1cb336d7474c65fa805
MD5 fd9661c2e03bf0f6a2518a8aebd7901c
BLAKE2b-256 c3ad7a300c95325413d074a57481aafdfa62cee1b549c6637b018aff270453da

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.2-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.2-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.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d0399744eb0749a484d837bb816b1c3309ad446d0a0463818181324f39071f2
MD5 d5b5ee8dd31e99747192c98246b5bab6
BLAKE2b-256 0b01af43fe587a4f88c446787a5f436a09d81ecaf87c74b137d6d89bd048baad

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.2-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.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for playdough-0.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d9a20c76310eafc7c732f8489e205ae802e915fe5649d2ba4027fadafdd96fa
MD5 7df3a7d1bcda3fe0fb88fbc4a68c1415
BLAKE2b-256 1c6319e57c2a3a45c60d3c07781c1cd4805ee6ccf42d1c72852a5828b70ec208

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.2-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.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for playdough-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d06e87f23a602e330d1516a99c6b5d0226073feb7a03308793b12d8d2086f913
MD5 94bc453a6238c47fb3f5e97a4af7e990
BLAKE2b-256 6251fda345154119ff2bb3527aaa047109c937f8cdc1828e72752567fabdc3d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.2-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