Skip to content

Fix symmetric check on multi-body Compounds#11

Merged
SmartAI merged 1 commit into
mainfrom
claude/great-jepsen-0d050a
Jul 11, 2026
Merged

Fix symmetric check on multi-body Compounds#11
SmartAI merged 1 commit into
mainfrom
claude/great-jepsen-0d050a

Conversation

@SmartAI

@SmartAI SmartAI commented Jul 11, 2026

Copy link
Copy Markdown
Owner

The verify-gate's symmetric check reported false failures on multi-body Compounds: a five-part stack that is exactly mirror-symmetric about YZ failed with "asymmetric volume 151% of total" while XZ passed on the same geometry.

Root cause: the evaluator ran shape - mirrored directly on the Compound. That hands OCC one cut where every tool solid coincides exactly with an argument solid (the mirror of symmetric geometry lands on the original). OCC's same-domain detection is unreliable on that degenerate input - children can come back completely uncut - and whether it fails depends on the face parametrization the mirror transform produces, which is why one plane passed and the other didn't. Summing both difference directions then double-counted the phantom volume, producing the impossible >100% ratio.

Fix: fuse all solids into a single body before mirroring, so the mirror-difference is one well-posed solid-vs-solid boolean (same family as the earlier clearance-evaluator & fix), and measure a single difference direction - mirroring is an isometry, so both directions enclose equal volume, and the reported ratio now stays within 0-100%.

Tests: new regression test builds the symmetric five-part stack (fails before the fix with the exact live-run message) plus an off-center variant proving real asymmetry is still caught. 105/105 py-tests pass; golden.json is untouched (it pins no symmetric output).

🤖 Generated with Claude Code

…rence

Cutting a multi-child Compound against its mirror hands OCC several
exactly-coincident tools in one boolean; its same-domain detection is
unreliable on that degenerate input and children can come back uncut,
so a coordinate-symmetric assembly could report >100% asymmetric
volume on one plane while passing on another. Fuse all solids into a
single body first so the mirror-difference is one well-posed boolean,
and measure a single difference direction (mirroring is an isometry,
so both directions enclose equal volume; summing them double-counted).
@SmartAI SmartAI merged commit 2f80adb into main Jul 11, 2026
1 check passed
@SmartAI SmartAI deleted the claude/great-jepsen-0d050a branch July 11, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant