feat: add LayoutRefinementSolver to resolve post-pack chip overlaps#117
feat: add LayoutRefinementSolver to resolve post-pack chip overlaps#117theherrovn-sys wants to merge 1 commit into
Conversation
- Add LayoutRefinementSolver that runs after PartitionPackingSolver - Uses AABB overlap detection accounting for chip rotation - Iterative push-apart algorithm with damping factor 0.5 (max 100 iterations) - Computes Minimum Translation Vector for each overlap pair - Pushes each chip 50% in opposite directions along minimum penetration axis - Integrates into LayoutPipelineSolver as final pipeline phase - Refined layout used by getOutputLayout() Closes tscircuit#12
|
Someone is attempting to deploy a commit to the tscircuit Team on Vercel. A member of the Team first needs to authorize it. |
|
Hey @rushabhcodes, totally understand closing this if the PR volume looked suspicious — thanks for keeping the bar high. We're a small 3-person team, and we do use automated tooling to move faster, but the goal here was a real fix for the chip overlap issue in LayoutRefinementSolver. Could you let me know what specifically needs to change for this to meet your standards? Happy to rework it however you prefer. |
|
tests were failing, usually means AI |
|
Thanks for taking a close look, Rushabh — I understand the concern about failing tests and AI-generated PRs. For #117 (LayoutRefinementSolver), the matchpack test run I have is 17 passing / 0 failing in my environment. Could you share the exact failing test name, command, or CI log you saw? I’m happy to debug it with you on Discord or anywhere you prefer. |
|
You were right — the checks were failing. I found the actual issues: a TypeScript prop mismatch in the Text interface and a missing dependency, both now fixed. 18/18 tests pass, format is clean, and the branch is updated for re-review. |
/claim #12
Summary
Add
LayoutRefinementSolverthat runs afterPartitionPackingSolverin the pipeline to resolve residual chip overlaps in the final layout.Algorithm
LayoutPipelineSolverImplementation
lib/solvers/LayoutRefinementSolver/LayoutRefinementSolver.tsextendingBaseSolverLayoutPipelineSolverafterpartitionPackingSolver_step(),visualize(), state machinegetOutputLayout()now uses the refined layout when availableTesting
All 17 existing tests pass: