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

Uploaded CPython 3.12Windows x86-64

playdough-0.3.1-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.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (690.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: playdough-0.3.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fb6660c4384cbc26e50944897c401a27faf69a8315803071bb6274a1be4a9f19
MD5 480452a9f99567e1cdb74068a13830cf
BLAKE2b-256 bcd6fa9db719aa3db9b214fb9fa058fe447171774a0dd85832e70cbe623723b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.1-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.1-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.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85ea6ecd933352e72b8cfd253005c495a4d7c913c409a50702f34fe45ef40084
MD5 eb8e3f8136843d04471527e501c49828
BLAKE2b-256 714002375fac3d78d4da96ef2c6787f14abd6bba6959e9698039bb092aff3a0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for playdough-0.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42ac41821098fa17057bd5f0b258499c80977490ce9f943dc4b2013011df0b8f
MD5 6af2a47edae9b37d9739015aa15bdc1c
BLAKE2b-256 084a79ff417b30aa9082b921500cffdd25ec84399a489d25bc6530c64eda0b45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for playdough-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4bb15270caccb8efc614fcd84376ab4c35498f8498eada71a43291e4f0a43742
MD5 600116094f81d178d2e8ebd25714af5d
BLAKE2b-256 7c7563d55b63a6273e3ae69982322d2d68eda542f6ffe9bea3236bc8e7d06eb1

See more details on using hashes here.

Provenance

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