Files
jyviko f3b507c056 Known failing: the 14 cargo tests SMLib v1.1.0-alpha fails, with what each sees; two cases that pass now
Develop's CI after the a18bbe5 pin (run 41522001173) fails 14 tests that
passed on f916a8d, and passes two listed ones. Each new line says what the
test sees on v1.1.0-alpha; v1.1.0-alpha.1 fixes the setback hole's cause.
shell_tangent_chain_that_opens_every_face_explains_how_to_keep_walls and
oracle 37-pyramid-apex-blend pass and leave their lists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-02 16:24:16 -05:00
..

Reference tests (the oracle)

Each directory is one case:

  • recipe.json: the part, written in SolidCraft's recipe format (sketches in sketch-local coordinates, features with their parameters, faces and edges picked by a world-space point). cargo xtask oracle replays it through SolidCraft's command engine.
  • expected.json: what the part must measure, and where those numbers come from.
  • reference.stl (optional): a fine triangulation of the expected part, used to check the shape itself (surface distance), not only its totals.

Run every case with cargo xtask oracle; it writes docs/oracle.md.

expected.json

{
  "source": "analytic",
  "method": "box 40 x 30 x 20: V = abc, A = 2(ab + bc + ca)",
  "body_count": 1,
  "volume_mm3": 24000.0,
  "area_mm2": 5200.0,
  "center_of_mass": [20.0, 15.0, 10.0],
  "bbox": { "min": [0.0, 0.0, 0.0], "max": [40.0, 30.0, 20.0] },
  "faces": 6
}
Field Meaning
source "analytic" (closed-form geometry, worked out by hand; method gives the formulas) or "freecad <version>" (built from the same recipe by tools/freecad-oracle/).
method How the numbers were obtained: formulas for analytic cases, the construction for FreeCAD ones.
body_count Number of solid bodies.
volume_mm3, area_mm2 Totals over all bodies.
center_of_mass Volume-weighted centroid of all bodies (uniform density).
bbox Axis-aligned bounding box of all bodies.
faces Optional. Only where the geometry fixes the count: a face is a maximal smooth patch of one surface (a full cylinder side is one face; coplanar neighbours are one face).
compare Optional. Restricts the comparison to these keys (for example ["volume_mm3", "area_mm2"] where kernels legitimately build different corner patches); note says why.
tolerance Optional overrides: rel (volume, area; default 1e-3), abs_mm (centre of mass and bbox, default 1e-3 × the bbox diagonal), surface_mm (STL surface distance).
note Optional remarks.

No value here was measured in, or exported from, any commercial CAD product.