aws-cqc / aws-cqc/DeviceLayout.jl

Fencing

Open
#130 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
67
Forks
14
Avg merge
1d 16h
Merged PRs (30d)
21

Description

Say we have a Path, and we want to periodically attach a feature alongside it on both sides (i.e., add "fences" along the path). `attach!` can do this, but positions are parameterized by the arclength of the original path, not the offset path the fence is actually sitting on. This means that if we use regularly spaced positions in `attach!`, then on curves, the inner fence becomes more closely spaced, and the outer becomes more sparsely spaced. We want an interface to add fences directly: `fence!(path, fencepost, offsets, pitch)`. We can have `stop` and `start` keywords to partially fence paths, and/or a `margin` keyword to automatically set stop and start a certain distance away from the ends. There are a few options for implementation:

1. Compensate for curvature in `attach!`.
2. Create (and resolve) offset paths and `attach!` on top of those.
3. Make a new `Paths.Style` for periodic attachments, and use that instead of `attach!` in 2. (This would also be convenient for air bridges.)
4. Make a new `Paths.Style` for fences, which eventually does one of the above
5. Make a new `Fence::GeometryStructure` that eventually does one of the above

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing attach! behavior and the Paths.Style and Fence::GeometryStructure entry points named in the issue. Compare the five proposed implementation directions, then define which approach supports fence!(path, fencepost, offsets, pitch) and any stop/start or margin options. Done means periodic attachments remain correctly spaced on offset paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.