aws-cqc / aws-cqc/DeviceLayout.jl
Improve meander interface
- Dominant language
- Julia
- Stars
- 67
- Forks
- 14
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 24
Description
We have a few methods like `meander!`, `bellow!` (should that be `billow!`?), and `radiator!`. These seem ad-hoc and can be a little hard to distinguish/understand from their documentation (let alone the names), even if they're clear enough once you see them used. It would be nice to have a clear unifying specification for various types of meanders. I think we almost never want to give lengths of particular segments or directions of particular turns—usually one meanders to create a certain path length within a given region while reaching a certain point.
I think the DemoQPU17 example makes some progress towards this with [`meander_waypoints`](https://github.com/aws-cqc/DeviceLayout.jl/blob/89c9228ef5c3593070ef47c44c8141f19efd9067/examples/DemoQPU17/routing.jl#L136), where the specification gives you a rectangle you're allowed to fill and an additional length you need to create (beyond what you get by just going straight). If possible I'd like to accommodate more variations (entry and exit points not necessarily opposite each other and in the rectangle corner, different meander directions) and add better validation/error messages.
(We could then use that in a length-constrained meandering `RouteRule`.)
Contributor guide
Research direction
Start with examples/DemoQPU17/routing.jl at meander_waypoints, then compare it with meander!, bellow!, and radiator!. The work is complete when the supported entry and exit points, meander directions, added length, validation, and error behavior are unified well enough to support a length-constrained RouteRule.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- api, computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100