Files
solidcraft/docs/kernel-ladder.md
T
jyvikoandClaude Opus 5.5 b1326e48d6 brep: an edge on a line, circle or ellipse carries the NURBS form SMLib holds it as
The edge mirror of a face's NURBS form: Edge::nurbs keeps the NURBS SMLib holds a conic as, and
the edge's interval and its pcurves' parameter are its. Edge::parameters is the curve every
evaluation at a parameter uses; curve says what the edge is. Nothing writes the form yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 02:28:51 -04:00

147 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Kernel complexity ladder
Generated by `cargo xtask kernel-cases --ladder`. The ladder in [`tests/kernel-cases/ladder/`](../tests/kernel-cases/ladder/) orders kernel operations by complexity: each tier builds on the shapes of the tiers before it, so the last case carries everything. Every case is a test with its own right answer (analysis or invariants, as in the [regression rig](kernel-cases.md)); the golden (`tests/kernel-cases/ladder/golden.json`) records each case's time and what it made, orders each tier by time and flags slowdowns. The cases run on SMLib.
The **frontier** is the first case of a tier, in ladder order, that fails (fail, crash or hang).
## Tiers
| Tier | What | Cases | Results | Frontier |
|---|---|---|---|---|
| 01-primitives | primitives with closed-form volumes | 6 | 6 pass | – |
| 02-booleans | booleans in the degeneracy classes, and cuts that end in a single line | 20 | 1 fail, 19 pass | 018-hole-tangent-to-side-face |
| 03-analytic-profiles | extrudes and revolves of line-and-arc profiles | 9 | 9 pass | – |
| 04-spline-profiles | spline profiles, sweeps and lofts | 10 | 10 pass | – |
| 05-holes-and-taps | holes and tapped holes | 13 | 1 fail, 12 pass | 010-hole-tangent-to-end-face |
| 06-threads | modelled threads | 10 | 1 fail, 7 pass, 2 unsupported | 006-external-m10-into-chamfer |
| 07-fillets | constant, variable and corner fillets | 17 | 3 fail, 12 pass, 2 unsupported | 012-variable-into-rounded-corner |
| 08-chamfers | chamfers | 8 | 1 fail, 7 pass | 008-part-chamfers |
| 09-shells-and-offsets | shells and offsets | 11 | 2 fail, 9 pass | 010-shell-under-rounded-top |
| 10-patterns-and-mirrors | patterns and mirrors | 8 | 1 fail, 7 pass | 008-part-vents |
| 11-cumulative-parts | parts combining every tier | 4 | 3 fail, 1 pass | 002-flange |
Cases where SMLib's check gave no verdict on a body (SMLib can't take the record yet), so only the record's checks graded validity: 0.
## Cases, in ladder order
Times are the commands' own, in seconds, from the case's process; **golden** is the recorded time.
| Case | What | Answer | Result | s | golden s | changes |
|---|---|---|---|---|---|---|
| ladder/01-primitives/001-box | a 60x40x20 box: the stock every later tier starts from | analytic | pass | 0.003 | – | status was unsupported |
| ladder/01-primitives/002-cylinder | a cylinder r10 h30 | analytic | pass | 0.031 | – | status was unsupported |
| ladder/01-primitives/004-frustum | a cone frustum r10 -> r5, h20 (revolved trapezoid) | analytic | pass | 0.035 | – | status was unsupported |
| ladder/01-primitives/003-cone | a cone r10 h30 (no cone primitive: a revolved right triangle, its axis a sketch line) | analytic | pass | 0.028 | – | status was unsupported |
| ladder/01-primitives/005-sphere | a sphere r10 | analytic | pass | 0.009 | – | status was unsupported |
| ladder/01-primitives/006-torus | a torus R20 r5 | analytic | pass | 1.466 | – | status was unsupported |
| ladder/02-booleans/004-edge-on-edge-no-overlap | a cut tool that shares only the top front edge of the stock | analytic | pass | 0.010 | – | status was unsupported |
| ladder/02-booleans/003-pocket-flush-with-top | a 20x20x10 pocket whose tool's top is the stock's top face | analytic | pass | 0.011 | – | status was unsupported |
| ladder/02-booleans/015-knife-edge-wedge-cut | a triangular prism cut whose slope meets the bottom face along one line (a knife edge), its other faces on the stock's | analytic | pass | 0.007 | – | status was unsupported |
| ladder/02-booleans/002-coplanar-overlap-join | two 60x40x20 boxes overlapping 30x20 in plan, tops and bottoms coplanar | analytic | pass | 0.007 | – | status was unsupported |
| ladder/02-booleans/019-notch-flush-with-end-face | a notch 40x20 through the height, its end flush with the stock's end face: a U | analytic | pass | 0.007 | – | status was unsupported |
| ladder/02-booleans/016-v-groove-pinches-bottom-to-line | a V groove whose apex touches the bottom face along a line, cut through: two pieces | analytic | pass | 0.007 | – | status was unsupported |
| ladder/02-booleans/013-cut-across-cylinder-seam | a 10x4 notch through a cylinder r10 across its +X side (where the seam lies) | analytic | pass | 0.063 | – | status was unsupported |
| ladder/02-booleans/001-coincident-face-join | a 60x40x10 box joined exactly on the stock's top face: one 60x40x30 box | analytic | pass | 0.007 | – | status was unsupported |
| ladder/02-booleans/009-near-tangent-overlap-1e-3 | a cylinder r10 along X dipping 1e-3 mm into the top face, cut: a groove 1e-3 deep | analytic | pass | 0.032 | – | status was unsupported |
| ladder/02-booleans/020-part-back-wall | the running part: a 60x10x15 back wall joined on the stock's top, flush with its back and ends | analytic | pass | 0.009 | – | status was unsupported |
| ladder/02-booleans/005-vertex-on-face-no-overlap | an inverted cone whose apex touches the middle of the top face, cut | analytic | pass | 0.042 | – | status was unsupported |
| ladder/02-booleans/018-hole-tangent-to-side-face | a through hole r10 tangent to the front face: the front face pinched to a line | analytic | **FAIL**: measure Part: the operation failed: not supported yet: tessellation: face 4 (plane): boundary crosses itself (want measurable); body_count 0 (want 1); volume_mm3 0 (want 41716.814693) | 0.068 | – | status was unsupported |
| ladder/02-booleans/010-near-tangent-overlap-1e-6 | a cylinder r10 along X dipping 1e-6 mm into the top face, cut | invariants | pass | 0.034 | – | status was unsupported |
| ladder/02-booleans/006-tangent-along-line-no-overlap | a cylinder r10 along X lying on the top face (tangent along a line), cut | analytic | pass | 0.031 | – | status was unsupported |
| ladder/02-booleans/008-near-tangent-gap-1e-6 | a cylinder r10 along X 1e-6 mm above the top face, cut | analytic | pass | 0.032 | – | status was unsupported |
| ladder/02-booleans/007-near-tangent-gap-1e-3 | a cylinder r10 along X 1e-3 mm above the top face, cut | analytic | pass | 0.032 | – | status was unsupported |
| ladder/02-booleans/017-cylinder-tangent-top-and-bottom | a cylinder r10 along X tangent to both the top and bottom faces, cut: two pieces with zero-angle cusps | analytic | pass | 0.060 | – | status was unsupported |
| ladder/02-booleans/011-tangent-along-circle-through-hole | a sphere r10 sitting in a through hole r10 at the top edge (tangent along the hole's top circle), cut | analytic | pass | 0.094 | – | status was unsupported |
| ladder/02-booleans/014-cut-through-sphere-pole | a 4x4 square post cut off the top of a sphere r10 through its pole | analytic | pass | 0.024 | – | status was unsupported |
| ladder/02-booleans/012-tangent-along-circle-bowl | a blind hole r10 10 deep, then a sphere r10 centred on its floor: the floor disk vanishes exactly | analytic | pass | 0.103 | – | status was unsupported |
| ladder/03-analytic-profiles/001-extrude-rect-with-arc-end | a 60x40 profile with a semicircular end r20, extruded 20 | analytic | pass | 0.016 | – | status was unsupported |
| ladder/03-analytic-profiles/003-extrude-tapered-circle | a circle r10 extruded 20 with a -5 deg taper (inward): a cone frustum | analytic | pass | 0.043 | – | status was unsupported |
| ladder/03-analytic-profiles/007-revolve-180-touching-axis | a 15x20 rectangle on the axis revolved 180 deg: a half cylinder | analytic | pass | 0.017 | – | status was unsupported |
| ladder/03-analytic-profiles/008-extrude-slot | a slot (centres 40 apart, width 20) extruded 10 | analytic | pass | 0.020 | – | status was unsupported |
| ladder/03-analytic-profiles/002-extrude-annulus | an annulus r20/r10 extruded 15 | analytic | pass | 0.057 | – | status was unsupported |
| ladder/03-analytic-profiles/004-revolve-full-off-axis | a 10x30 rectangle 10 mm off the Z axis revolved 360 deg: a tube | analytic | pass | 0.055 | – | status was unsupported |
| ladder/03-analytic-profiles/006-revolve-partial-90 | a 10x10 rectangle 10 mm off the axis revolved 90 deg | analytic | pass | 0.013 | – | status was unsupported |
| ladder/03-analytic-profiles/005-revolve-touching-axis-hemisphere | a quarter disk r20 with an edge on the Z axis revolved 360 deg: a hemisphere | analytic | pass | 0.085 | – | status was unsupported |
| ladder/03-analytic-profiles/009-part-boss-and-slot | the running part: a revolved boss r8 h10 joined on the top, a slot 15x8 cut through the base | analytic | pass | 0.148 | – | status was unsupported |
| ladder/04-spline-profiles/001-extrude-bezier-arch | a profile closed by a cubic Bezier arch (control-point spline, 4 points), extruded 10 | analytic | pass | 0.010 | – | status was unsupported |
| ladder/04-spline-profiles/008-loft-square-to-circle | a loft from a 40 square at z=0 to a circle r10 at z=30 | invariants | pass | 0.018 | – | status was unsupported |
| ladder/04-spline-profiles/006-loft-circle-frustum | a loft between circles r20 at z=0 and r10 at z=30 | analytic | pass | 0.039 | – | status was unsupported |
| ladder/04-spline-profiles/007-loft-three-circles | a smooth loft through circles r20, r10, r20 at z = 0, 20, 40 | invariants | pass | 0.059 | – | status was unsupported |
| ladder/04-spline-profiles/005-loft-square-frustum | a loft between a 40 square at z=0 and a 20 square at z=30 | analytic | pass | 0.005 | – | status was unsupported |
| ladder/04-spline-profiles/009-extrude-periodic-fit-spline | a closed periodic fit-point spline through 6 points, extruded 10 | invariants | pass | 0.021 | – | status was unsupported |
| ladder/04-spline-profiles/004-sweep-square-along-bezier | a 4x4 square swept along the same Bezier path | analytic | pass | 0.034 | – | status was unsupported |
| ladder/04-spline-profiles/002-revolve-bezier-profile | a profile with a Bezier side (r from 20 to 15 over z 0..30) revolved 360 deg about Z | analytic | pass | 0.092 | – | status was unsupported |
| ladder/04-spline-profiles/003-pipe-along-bezier | a pipe d4 along a planar Bezier path | analytic | pass | 0.115 | – | status was unsupported |
| ladder/04-spline-profiles/010-part-bezier-window | the running part: a Bezier-arched window cut through the back wall | analytic | pass | 0.212 | – | status was unsupported |
| ladder/05-holes-and-taps/010-hole-tangent-to-end-face | a d10 through hole tangent to the end face x=0 | analytic | **FAIL**: measure Part: the operation failed: not supported yet: tessellation: face 4 (plane): triangulation does not (want measurable); body_count 0 (want 1); volume_mm3 0 (want 46429.203673) | 0.055 | – | status was unsupported |
| ladder/05-holes-and-taps/002-simple-blind-flat | a d10 blind hole 10 deep, flat bottom | analytic | pass | 0.062 | – | status was unsupported |
| ladder/05-holes-and-taps/009-hole-0.5-from-edge | a d10 through hole whose wall is 0.5 mm from the end face | analytic | pass | 0.045 | – | status was unsupported |
| ladder/05-holes-and-taps/001-simple-through | a d10 through hole in the stock's top | analytic | pass | 0.045 | – | status was unsupported |
| ladder/05-holes-and-taps/006-tapped-m6-through | an M6 tapped hole through: the tap drill d5 (major - pitch), cosmetic thread | analytic | pass | 0.038 | – | status was unsupported |
| ladder/05-holes-and-taps/004-counterbore | a counterbored hole: d6.6 through, d11 x 6.4 counterbore | analytic | pass | 0.121 | – | status was unsupported |
| ladder/05-holes-and-taps/007-tapped-m8-blind | an M8 tapped blind hole 12 deep with a 118 deg drill point | analytic | pass | 0.064 | – | status was unsupported |
| ladder/05-holes-and-taps/003-drilled-blind-118 | a d10 drilled hole 10 deep to the shoulder with a 118 deg point | analytic | pass | 0.073 | – | status was unsupported |
| ladder/05-holes-and-taps/005-countersink | a countersunk hole: d6.6 through, d12 x 90 deg countersink | analytic | pass | 0.140 | – | status was unsupported |
| ladder/05-holes-and-taps/008-tapped-m5-into-curved-face | an M5 tapped hole drilled radially through a cylinder r20 lying along X | analytic | pass | 0.134 | – | status was unsupported |
| ladder/05-holes-and-taps/011-crossing-holes-steinmetz | two d10 through holes whose axes cross: vertical and along Y at z=10 | analytic | pass | 0.244 | – | status was unsupported |
| ladder/05-holes-and-taps/012-crossing-tapped-holes-offset | two M6 tapped holes (d5) crossing with axes 2 mm apart | analytic | pass | 0.128 | – | status was unsupported |
| ladder/05-holes-and-taps/013-part-holes | the running part: an M6 tapped through hole, an M5 tapped blind hole in the boss, a d3.3 hole down through wall and base | analytic | pass | 0.604 | – | status was unsupported |
| ladder/06-threads/003-external-m10-partial-length | a modelled M10 thread over 15 of the 30 mm: it stops square in the middle of the face | invariants | pass | 1.146 | – | status was unsupported |
| ladder/06-threads/005-internal-m10-through | a modelled internal M10 thread in a d8.5 (tap drill) hole through a 30x30x20 block | analytic | pass | 1.392 | – | status was unsupported |
| ladder/06-threads/004-external-m10-to-shoulder | a modelled M10 thread on a d10 shaft running down to a d16 shoulder | invariants | pass | 2.444 | – | status was unsupported |
| ladder/06-threads/001-external-m10-full | a modelled M10 thread over the whole of a d10 x 30 cylinder | analytic | pass | 2.593 | – | status was unsupported |
| ladder/06-threads/006-external-m10-into-chamfer | a d10 x 30 cylinder with a 1 mm chamfer on top, then a modelled M10 thread over its cylinder face, running out through the chamfer | analytic | **FAIL**: record_valid geometry: portable B-rep: face 25 loop 0 use 1: pcurve middle lifts off its edge's curve by 0.000045 (want ok) | 2.764 | – | status was unsupported |
| ladder/06-threads/002-external-m10x1-fine | a modelled fine M10x1 thread over a d10 x 30 cylinder | analytic | pass | 4.590 | – | status was unsupported |
| ladder/06-threads/010-part-threaded-boss | the running part with a modelled M16 thread on its d16 boss | invariants | pass | 1.482 | – | status was unsupported |
| ladder/06-threads/007-external-m10-at-filleted-shoulder | a modelled M10 thread on a d10 shaft whose root at the d16 shoulder has an r1 fillet | invariants | pass | 2.568 | – | status was unsupported |
| ladder/06-threads/008-multi-start-thread | a two-start M10 thread (lead 3, pitch 1.5) | invariants | not supported yet: solid.thread has no start count: multi-start threads | – | – | |
| ladder/06-threads/009-thread-runout-length | an M10 thread that vanishes over a 2-pitch runout before a shoulder | invariants | not supported yet: solid.thread has no runout (vanishing thread) length | – | – | |
| ladder/07-fillets/006-variable-r5-to-zero | a variable round on the top front edge, r5 at x=0 down to 0 at the x=60 vertex | analytic | pass | 0.018 | – | status was unsupported |
| ladder/07-fillets/005-variable-r5-to-r1 | a variable round on the top front edge, r5 at x=0 to r1 at x=60 | analytic | pass | 0.018 | – | status was unsupported |
| ladder/07-fillets/007-variable-r5-to-1e-3 | a variable round on the top front edge, r5 down to 1e-3 mm | analytic | pass | 0.018 | – | status was unsupported |
| ladder/07-fillets/015-corner-g2-patch | three r5 rounds at a corner with the g2 corner patch | invariants | not supported yet: step 2 (solid.fillet): invalid input: not supported yet: a fillet with G2 corner patches with the SMLib kernel | 0.005 | – | |
| ladder/07-fillets/008-constant-r1e-3 | a constant 1e-3 mm round on the top front edge | analytic | pass | 0.012 | – | status was unsupported |
| ladder/07-fillets/004-convex-and-concave-r5 | an L block: r5 on its inner (concave) vertical edge and on an outer (convex) one | analytic | pass | 0.025 | – | status was unsupported |
| ladder/07-fillets/001-single-edge-r5 | an r5 round on the stock's top front edge | analytic | pass | 0.012 | – | status was unsupported |
| ladder/07-fillets/012-variable-into-rounded-corner | a vertical r5 round, then a variable round r1 -> r5 along the top back edge into it | invariants | **FAIL**: step 3 (solid.fillet): SMLib variable fillet: operation: SMLib failed (status 1001) | 0.020 | – | status was unsupported |
| ladder/07-fillets/014-curved-edge-r2 | an r2 round on the top edge of a cylinder r10 h20 | analytic | pass | 0.113 | – | status was unsupported |
| ladder/07-fillets/011-chain-ending-at-corner | r5 rounds on two top edges meeting at a corner whose vertical edge stays sharp | invariants | pass | 0.017 | – | status was unsupported |
| ladder/07-fillets/002-four-vertical-edges-r5 | r5 rounds on the four vertical edges | analytic | pass | 0.028 | – | status was unsupported |
| ladder/07-fillets/009-corner-three-equal-r5 | r5 rounds on the three edges meeting at the corner (60,40,20): a sphere corner | analytic | pass | 0.025 | – | status was unsupported |
| ladder/07-fillets/010-corner-unequal-r7-r3 | an r7 vertical round at a corner, then r3 along a top edge, which runs on round the r7 arc to the other top edge | invariants | pass | 0.042 | – | status was unsupported |
| ladder/07-fillets/003-tangent-chain-r3 | an r3 round all round the top of the box with r5 vertical rounds: a tangent chain of lines and arcs | analytic | pass | 0.090 | – | status was unsupported |
| ladder/07-fillets/016-corner-three-sequential-r5-r3-r7 | rounds r5 and r3 on the two top edges at a corner, then r7 on the vertical edge under them | invariants | **FAIL**: step 4 (solid.fillet): SMLib fillet: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 0.051 | – | status was unsupported |
| ladder/07-fillets/017-part-rounds | the running part: r5 on the front vertical edges, r3 on the back wall's top front edge, r1 where the boss meets the top | analytic | **FAIL**: step 21 (solid.fillet): SMLib fillet: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 0.986 | – | status was unsupported |
| ladder/07-fillets/013-corner-setback | three r5 rounds at a corner with setbacks of 8 mm along each edge | invariants | not supported yet: solid.fillet has no corner setback distances | – | – | |
| ladder/08-chamfers/002-two-distances-5-3 | a 5 x 3 chamfer on the top front edge | analytic | pass | 0.009 | – | status was unsupported |
| ladder/08-chamfers/001-equal-5 | a 5 mm chamfer on the top front edge | analytic | pass | 0.010 | – | status was unsupported |
| ladder/08-chamfers/003-distance-angle-5-30 | a chamfer 5 mm at 30 deg on the top front edge | analytic | pass | 0.010 | – | status was unsupported |
| ladder/08-chamfers/005-corner-two-mitred-3 | 3 mm chamfers on two top edges meeting at a corner (mitred) | analytic | pass | 0.014 | – | status was unsupported |
| ladder/08-chamfers/004-corner-three-equal-3 | 3 mm chamfers on the three edges meeting at a corner | analytic | pass | 0.015 | – | status was unsupported |
| ladder/08-chamfers/007-chamfer-then-fillets | a 3 mm chamfer on the top front edge, then r2 rounds on the front vertical edges that meet it | invariants | pass | 0.029 | – | status was unsupported |
| ladder/08-chamfers/006-curved-edge-2 | a 2 mm chamfer on the top edge of a cylinder r10 h20 | analytic | pass | 0.117 | – | status was unsupported |
| ladder/08-chamfers/008-part-chamfers | the running part: 1 mm on the boss top edge, 2 mm on the back wall's top back edge | analytic | **FAIL**: step 21 (solid.fillet): SMLib fillet: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 0.999 | – | status was unsupported |
| ladder/09-shells-and-offsets/007-offset-top-face-5 | the stock's top face offset 5 mm | analytic | pass | 0.016 | – | status was unsupported |
| ladder/09-shells-and-offsets/003-tube-two-open-faces | the stock shelled 2 mm, open top and bottom | analytic | pass | 0.017 | – | status was unsupported |
| ladder/09-shells-and-offsets/001-box-open-top-t2 | the stock shelled 2 mm, open at the top | analytic | pass | 0.021 | – | status was unsupported |
| ladder/09-shells-and-offsets/004-thin-wall-0.2 | the stock shelled 0.2 mm, open at the top | analytic | pass | 0.015 | – | status was unsupported |
| ladder/09-shells-and-offsets/009-shell-outside-t2 | the stock shelled 2 mm outward, open at the top | analytic | pass | 0.044 | – | status was unsupported |
| ladder/09-shells-and-offsets/008-offset-cylinder-wall-2 | a cylinder r10 h20 with its side face offset 2 mm | analytic | pass | 0.155 | – | status was unsupported |
| ladder/09-shells-and-offsets/002-cylinder-open-top-t1 | a cylinder r10 h30 shelled 1 mm, open at the top | analytic | pass | 0.160 | – | status was unsupported |
| ladder/09-shells-and-offsets/006-shell-rounds-r1-thinner-than-t2 | the box with r1 vertical rounds shelled 2 mm: the inner corners close sharp | analytic | pass | 0.063 | – | status was unsupported |
| ladder/09-shells-and-offsets/005-shell-rounds-r5-t2 | the box with r5 vertical rounds shelled 2 mm open at the top: the inner corners r3 | analytic | pass | 0.164 | – | status was unsupported |
| ladder/09-shells-and-offsets/010-shell-under-rounded-top | the stock with r3 rounds on its four top edges, shelled 2 mm open at the bottom | invariants | **FAIL**: step 3 (solid.shell): SMLib shell: SMLib's check refuses the result: 1 failed tests: SmBSplineCurve::Test #13 Bad CurveCusp: 2D BSplineCurve Warning: Extremely | 0.179 | – | status was unsupported |
| ladder/09-shells-and-offsets/011-part-shell | the running part shelled 1.5 mm open at the bottom | invariants | **FAIL**: step 21 (solid.fillet): SMLib fillet: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 0.998 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/007-pattern-bodies | a pin r3 h10 patterned 4 times at 10 mm as bodies | analytic | pass | 0.037 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/005-mirror-feature | a d10 hole in the stock mirrored about x=30 as a feature | analytic | pass | 0.126 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/004-mirror-body-joined | a 30x40x20 half with a d10 hole mirrored about x=30 and joined: the faces at x=30 coincide | analytic | pass | 0.138 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/001-rect-pattern-holes | a d5 hole patterned 3 x 2 at 20 mm in a 60x40x10 plate | analytic | pass | 0.572 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/003-overlapping-pattern-leaves-core | six r5 cuts patterned round a circle r6 in a disk r20: they overlap and cut a core free | analytic | pass | 0.836 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/002-circular-pattern-holes | a d6 hole patterned 8 times round a disk r30 h10 | analytic | pass | 1.322 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/006-circular-pattern-counterbores | a counterbored hole (d5, d9 x 3) patterned 6 times round a disk r30 h10 | analytic | pass | 2.310 | – | status was unsupported |
| ladder/10-patterns-and-mirrors/008-part-vents | the running part with a d3 vent hole in its top patterned 4 times at 5 mm | invariants | **FAIL**: step 21 (solid.fillet): SMLib fillet: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 0.978 | – | status was unsupported |
| ladder/11-cumulative-parts/002-flange | a revolved flange and hub with a bore, six bolt holes, a hub chamfer and a hub-root round | analytic | **FAIL**: step 7 (solid.chamfer): SMLib chamfer: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 1.244 | – | status was unsupported |
| ladder/11-cumulative-parts/001-bracket | an L bracket: concave r5 round, 5 mm outer chamfer, a hole in each leg | analytic | pass | 0.153 | – | status was unsupported |
| ladder/11-cumulative-parts/003-threaded-flange | the flange with a modelled M30 thread on its hub, between the round and the chamfer, and M8 tapped holes in the disk | invariants | **FAIL**: step 7 (solid.chamfer): SMLib chamfer: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 1.171 | – | status was unsupported |
| ladder/11-cumulative-parts/004-housing | the running part with every tier: back wall, boss, slot, spline window, tapped holes, rounds, chamfers, shell, vents, and a modelled M16 thread on the boss | invariants | **FAIL**: step 21 (solid.fillet): SMLib fillet: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT) | 0.913 | – | status was unsupported |