aws-cqc / aws-cqc/DeviceLayout.jl

Auto-fencing

Open
#131 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

This follows #130.

If we have multiple Paths, or a Path that doubles back on itself, we may want to add fencing while skipping fenceposts that would collide with another already-placed fencepost. This should also be a simple command: `autofence!(paths, fencepost, offsets, pitch, keepout_radius=pitch)` (using `auto` in the name in analogy to `autofill`). This is a little more involved because we have to efficiently check for collisions (easiest if we're just checking that distance is at least `keepout_radius` from existing fencepost centers stored in an appropriate spatial index for finding nearest neighbors). (There may be some simplifications possible if you are doing this in a RouteChannel, but I'm not sure it's worth it.) This can leverage some of `fence!`, but since the result is not actually periodic it may not be able to use any of the data structures suggested for fence implementation in #130.

Contributor guide

Open the contributing guide

Research direction

Start with the design in #130 and compare the existing fence! and autofill command patterns. Define the autofence! entry point for multiple or self-intersecting Paths, then determine how fencepost centers and keepout_radius checks should be handled so colliding posts are skipped.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.