Spaces:
Running
NaturalCAD Compositional Spec v1.1
Why this exists
NaturalCAD is currently targeting concept-grade generation, not fabrication-grade precision. That means the next spec should stay loose enough to support novel and unexpected objects, instead of forcing every prompt into a tiny menu of safe default families.
This spec is meant to capture:
- intent
- semantic part meaning
- topology/composition
- geometry features and operations
- dimensions
- constraints
- style cues
It is intentionally less rigid than a true later-phase spec-to-model contract.
Design goals
- Preserve novelty and surprise
- Avoid collapsing every prompt into the same default family
- Capture enough structure to support execution and logging
- Leave room for later hardening into stricter parametric generators
Shape
{
"spec_version": "1.1",
"intent": "Offset wall support with ribbed spine and staggered mounting tabs",
"mode": "part",
"output_type": "3d_solid",
"units": "mm",
"semantic_part": {
"category": "support",
"function": "wall-mounted load transfer",
"topology": ["main spine", "2 mounting tabs", "reinforcing ribs"],
"symmetry": "asymmetric"
},
"family_hint": {
"name": "support_bracket",
"generation_mode": "extend",
"parent_family": null,
"confidence": 0.64,
"novelty_score": 0.72
},
"geometry": {
"primitive_strategy": ["extrude", "boolean_subtract", "fillet"],
"features": [
{
"name": "spine",
"feature_type": "tapered_plate",
"attributes": {"taper_ratio": 0.7}
},
{
"name": "tabs",
"feature_type": "offset_mounts",
"count": 2,
"attributes": {"tab_offset": 18}
},
{
"name": "ribs",
"feature_type": "triangular_gusset",
"count": 3,
"attributes": {"rib_depth": 10}
}
]
},
"dimensions": {
"overall_height": 120,
"overall_width": 60,
"overall_depth": 45
},
"constraints": [
{
"kind": "min",
"target": "wall_thickness",
"value": 6
}
],
"style": {
"keywords": ["industrial", "structural", "heavy-duty"],
"symmetry": "asymmetric",
"manufacturing_bias": "machined"
},
"dedupe": {
"canonical_signature": null,
"similar_to_job_id": null,
"is_likely_duplicate": false
},
"notes": [
"Treat as a concept-grade structural support rather than a fabrication-verified design."
]
}
Interpretation notes
intent
A concise restatement of what the prompt is trying to produce.
semantic_part
Describes what the object is and how it is composed, without prematurely locking it into a rigid generator family.
family_hint
Optional. This should be treated as a backend hint, not as the main creative frame.
reuse: known generator likely fitsextend: known generator likely fits with variationnew: likely needs a new generator path or a looser execution strategy
geometry
Captures operations and features. This is closer to executable structure than pure natural language, while still leaving room for novelty.
dimensions
Stores named scale-driving values. These should stay loose in concept-grade mode, then become more constrained in later phases.
constraints
Carries guardrails and relationships, but should not yet be treated as full fabrication-grade tolerance logic.
dedupe
Supports later duplicate detection and lineage without dominating the first-pass generation stage.
Current recommendation
Use this spec as the next target for:
- backend model output
- prompt logging
- evaluation
- future prompt-to-build123d translation
Current repo status:
POST /v1/generate-specnow emits this general semantic shape through a stub translator- the Gradio app temporarily adapts the semantic spec back into the older generator families for execution
- this keeps the contract moving forward without breaking the current build123d demo path
Do not over-tighten it yet. NaturalCAD still needs room for new and unexpected objects.