AAA-03: Readability-first layout engine v3 (graph decomposition + lane planning) #17

Closed
opened 2026-02-18 21:51:14 -05:00 by Rbanh · 1 comment
Owner

Objective

Upgrade auto-layout so dense circuits are consistently readable and structurally organized.

Scope

  • Add graph decomposition into functional stages and domain clusters.
  • Introduce lane planning for power, ground, clock, analog, and buses.
  • Implement component rotation/orientation optimization in layout solve.
  • Add anti-overlap rules for symbols, labels, values, and annotation blocks.

Acceptance Criteria

  • Dense analog sample renders without major clutter or ambiguous flow.
  • Label collisions and symbol overlap are near-zero in default layouts.
  • Layout quality metrics improve across benchmark fixtures.
  • Deterministic output remains stable for identical JSON inputs.
## Objective Upgrade auto-layout so dense circuits are consistently readable and structurally organized. ## Scope - Add graph decomposition into functional stages and domain clusters. - Introduce lane planning for power, ground, clock, analog, and buses. - Implement component rotation/orientation optimization in layout solve. - Add anti-overlap rules for symbols, labels, values, and annotation blocks. ## Acceptance Criteria - Dense analog sample renders without major clutter or ambiguous flow. - Label collisions and symbol overlap are near-zero in default layouts. - Layout quality metrics improve across benchmark fixtures. - Deterministic output remains stable for identical JSON inputs.
Rbanh added this to the Phase 4 - AAA SaaS Productization and UX Polish milestone 2026-02-18 21:51:30 -05:00
Author
Owner

Completed in commit 538d137.

Delivered:

  • Added semantic lane profiling by dominant net class (power/clock/signal/analog/ground/bus/differential).
  • Updated group placement ordering to use lane-aware ordering + connectivity degree, improving structural readability.
  • Added lane spacing separation inside columns to reduce local visual crowding.
  • Added post-placement overlap resolver (resolvePlacementOverlaps) to automatically nudge colliding components apart while respecting locked placements.
  • Preserved deterministic placement behavior and existing constraint hooks.
  • Updated visual baselines for resulting layout changes.

Validation:

  • node --check src/layout.js
  • npm test
  • npm run test:ui:update-baselines
  • npm run test:ui
Completed in commit `538d137`. Delivered: - Added semantic lane profiling by dominant net class (power/clock/signal/analog/ground/bus/differential). - Updated group placement ordering to use lane-aware ordering + connectivity degree, improving structural readability. - Added lane spacing separation inside columns to reduce local visual crowding. - Added post-placement overlap resolver (`resolvePlacementOverlaps`) to automatically nudge colliding components apart while respecting locked placements. - Preserved deterministic placement behavior and existing constraint hooks. - Updated visual baselines for resulting layout changes. Validation: - `node --check src/layout.js` - `npm test` - `npm run test:ui:update-baselines` - `npm run test:ui`
Rbanh closed this issue 2026-02-18 22:03:55 -05:00
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Rbanh/schemeta#17
No description provided.