Fusion oracle
Generated by cargo xtask oracle. Each case is a part built in Fusion (recipe and measurements kept locally in plan/fusion/oracle/, not committed). SolveCraft replays the recipe through its command engine and compares body count, volume and area (relative tolerance 1e-3) and face/edge/vertex counts (exact). SolveCraft counts each closed-surface patch once and ignores seam edges and vertices; when body count, volume and area pass but the raw counts differ, Fusion’s counts are normalised the same way from its face, edge and vertex lists (faces cut from one cylinder, cone, sphere or torus and separated only by seams count once; an edge on that surface and no other is a seam and is dropped; a vertex left with two edges joins them) and compared exactly; the note gives both sides’ raw counts.
76 / 76 cases pass (0 need features not implemented yet).
| Case | Result | Notes |
|---|---|---|
| 01-box | pass | |
| 02-cylinder | pass | |
| 03-box-through-hole | pass | |
| 04-revolve-vase | pass | |
| 05-taper-extrude | pass | |
| 06-symmetric-extrude | pass | |
| 07-fillet-all-edges | pass | |
| 08-chamfer | pass | |
| 09-shell | pass | |
| 10-rect-pattern-holes | pass | |
| 11-circular-pattern-flange | pass | |
| 12-mirror-feature | pass | |
| 13-combine-join | pass | |
| 14-combine-cut | pass | |
| 15-combine-intersect | pass | |
| 16-sweep | pass | |
| 17-loft | pass | |
| 18-hole-features | pass | |
| 19-l-bracket-constrained | pass | |
| 20-slot-constrained | pass | |
| 21-draft | pass | |
| 22-split-body | pass | |
| 23-bracket-multifeature | pass | |
| 24-user-parameters | pass | |
| 25-sketch-triangle | pass | |
| 26-sketch-belt | pass | |
| 27-sketch-trapezoid | pass | |
| 28-blind-pocket-fillets | pass | |
| 29-two-sided-and-partial-revolve | pass | |
| 30-fillet-after-shell | pass | |
| 31-fillet-l-all-edges | pass | |
| 32-boss-plate-fillets | pass | |
| 33-fillet-tangent-chain | pass | |
| 34-chamfer-then-fillet | pass | |
| 35-fillet-curved-curved | pass | topology compared seam-normalised: Fusion’s 6/6/5 faces/edges/vertices become 6/5/5 with closed-surface patches counted once and seam edges and vertices dropped (raw SolveCraft/Fusion: faces 9/6, edges 17/6, vertices 10/5) |
| 36-corner-blend-two-radii | pass | |
| 37-pyramid-apex-blend | pass | |
| 38-coincident-cylinders | pass | |
| 39-tee-pipe | pass | |
| 40-box-sphere-torus | pass | |
| 41-tube-radial-holes | pass | |
| 42-overlapping-patterns | pass | |
| 43-cut-splits-body | pass | |
| 44-shell-l-bracket | pass | |
| 45-shell-boss-plate | pass | |
| 46-shell-two-open-faces | pass | |
| 47-draft-curved-pocket | pass | |
| 48-pulley | pass | |
| 49-helical-sweep | pass | Fusion sweeps along a spline fitted through helix points; SolveCraft builds the true helix (a coil), so the size is compared within 0.5% and the topology not at all |
| 50-sweep-tight-bend | pass | area not compared: Fusion reports this tight sweep’s horn torus face at three times its area (π²·R·r quarter-turn value; 740 mm² against 246.7 by Pappus); volume and topology are compared |
| 51-loft-rect-circle-offset | pass | |
| 52-circular-pattern-fillet | pass | |
| 53-path-pattern | pass | |
| 54-mirror-body-fillets | pass | |
| 55-tapped-hole-cosmetic | pass | |
| 56-holes-on-curved-face | pass | topology compared seam-normalised: Fusion’s 7/10/10 faces/edges/vertices become 7/8/8 with closed-surface patches counted once and seam edges and vertices dropped (raw SolveCraft/Fusion: faces 16/7, edges 32/10, vertices 19/10) |
| 57-hole-pattern-sketch-points | pass | |
| 58-phone-stand | pass | |
| 59-enclosure-base | pass | |
| 60-pipe-flange | pass | |
| 61-shaft-keyway | pass | topology compared seam-normalised: Fusion’s 14/22/18 faces/edges/vertices become 14/20/16 with closed-surface patches counted once and seam edges and vertices dropped (raw SolveCraft/Fusion: faces 24/14, edges 54/22, vertices 34/18) |
| 62-heat-sink | pass | |
| 63-hinge-knuckle | pass | known Fusion difference: Gap replayed with the extent Fusion actually used (its through-all is sized as 1.1 × the farthest vertex, so curved tops stop it short; SolveCraft’s through-all goes truly through) |
| 64-sketch-tangent-arc-chain | pass | |
| 65-sketch-gear-tooth | pass | |
| 66-sketch-linkage | pass | |
| 67-sm-base-flange | pass | |
| 68-sm-edge-flange | pass | |
| 69-sm-tray | pass | |
| 70-sm-flange-45 | pass | |
| 71-sm-custom-rule | pass | |
| 72-sm-contour-flange | pass | |
| 73-sm-hem | pass | |
| 74-sm-unfold-refold | pass | |
| 75-sm-bracket-holes | pass | |
| 76-sm-thickness-variant | pass |
No oracle
| Feature | Status | Tested by |
|---|---|---|
| Boss (draft, root fillet, hole, ribs) | no oracle (licence) | post, hole and rib volumes (boss_with_hole_fillet_and_ribs) |
| Lip / Groove | no oracle (licence) | band offsets and groove clearance on a shelled box (lip_and_groove_on_a_shelled_box, groove_takes_the_rule_clearance) |
| Snap Fit | no oracle (licence) | arm and catch volume, hook direction (snap_fit_arm_and_catch) |
| Rest | no oracle (licence) | rectangle, round, hollow and drafted pads (rest_pads) |
| Plastic Rules (manage, assign) | no oracle (licence) | library values, Thickness-based values, rule draft as the boss default (plastic_rules_library_edit_and_assign) |
Fusion builds these only with its Design Extension, which the oracle account lacks, so there is no Fusion part to compare with. They follow Autodesk’s public descriptions of the features and are checked against hand-computed geometry; the plastic rule library values were read from Fusion’s API.