Files
a817a62440 Meshing test corpus built with SolidCraft; assembly placement in open_design (#11)
* geometry: build designs from SolidCraft command scripts (feature scripts)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* geometry: place component bodies through their occurrences when opening a design

An assembly's instances were missing and moved components sat at their own origin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Meshing test corpus: 16 SolidCraft recipes, analytic shapes, loader and runner

modelcraft-testkit holds the corpus (tests/corpus/<name>/recipe.json run through SolidCraft's
engine, then opened as a design) and the runner binary behind cargo xtask corpus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* docs: corpus results, test corpus architecture and the scripts feature; licences

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* corpus: measure each body once, check stage widths, simpler loader and runner

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

---------

Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 15:19:06 -04:00

12 lines
883 B
JSON

{"corpus": {"categories": ["assembly", "blocky"], "volume_mm3": 32998.93807},
"commands": [
{"command": "solid.box", "params": {"corner": [0, 0, 0], "length": 100, "width": 60, "height": 5, "body_name": "Base"}},
{"command": "component.create", "params": {"name": "Clamp"}},
{"command": "solid.box", "params": {"corner": [0, 0, 0], "length": 20, "width": 10, "height": 8, "body_name": "Clamp body"}},
{"command": "solid.hole", "params": {"position": [10, 5, 8], "diameter": 4}},
{"command": "component.activate", "params": {"component": "root"}},
{"command": "occurrence.move", "params": {"occurrence": "Clamp:1", "translate": [10, 10, 5]}},
{"command": "occurrence.copy", "params": {"component": "Clamp", "translate": [50, 0, 0]}},
{"command": "occurrence.move", "params": {"occurrence": "Clamp:2", "axis": [0, 0, 1], "angle": "90 deg", "origin": [70, 15, 5]}}
]}