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

Uploaded CPython 3.12Windows x86-64

playdough-0.3.3-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.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (700.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: playdough-0.3.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 610.5 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9bbfac119e844659086de89eafdfcdd8ca3820156db1817f7f3ee2cc9caa719b
MD5 313bd8ac6f44605d10c1f5a51dc5cfbf
BLAKE2b-256 eea48d57ccca65366328d1800809f8f6b20e2783a9d36cc5e5899deb427ad7eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for playdough-0.3.3-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.3-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.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8fde2b3a436b07069a7489c97884fe71cd25183707af8fae2cd5adb108d690fb
MD5 a80b8359292f6bcd9a4d0d1e83aa9f96
BLAKE2b-256 d62dc7c5d5c1c3a37a535ccb89f1f52cfe97072180f7425e91c6069e5b93862e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for playdough-0.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e5711bf977bd877b1744b3991a350263aeba0008b12ef51b8dd5387f6027af5d
MD5 96ab71939dc7b6da67b9d35ffb1df2cf
BLAKE2b-256 af5f05351c1a7c361ebe47718a51c30366f22a42c40d27ea4e0d1023b8df2d11

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for playdough-0.3.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91820853b5d3eea7db814e6351bff1b8144290424b09bc119be2a277559c7110
MD5 7a9f96a92f539d1824fa2489efca62c7
BLAKE2b-256 22a4e6ba4f1fcd8c733e5b239276e06feaeb5facb584ea836012efe281fc6b40

See more details on using hashes here.

Provenance

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