Files
OneCAD/docs/oracle.md
T
bherbruckandClaude Opus 5.5 d10312b7fd Command ids are SolveCraft's own: 173 ids that were another product's internal command ids become dotted, lower-case ids (<area>.<thing>[.<variant>]: solid.extrude, sketch.rectangle.two_point, sheet.flange, joint.drive, ...), in the registry, toolbar, dialogs, shortcuts, palette, control channel, MCP, examples, scenarios and docs
The old ids live only in crates/engine/src/legacy_ids.rs (the legacy migration table): find_command maps them, so old scripts, recipes and control calls keep working, and saved shortcuts, recent and pinned commands are migrated on load (designs store no command ids). Parity maps the observed catalog ids to ours through xtask/data/fusion-ids.tsv. The agent rule now reads: our own dotted id, never another product's. Cargo.toml's repository points at github.com/bherbruck/solvecraft.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 12:17:23 +00:00

5.6 KiB
Raw Permalink Blame History

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.