← The Arsenal
NorthStar Prime · local fabrication

Describe a part. Leave with a proven mesh.

The Invention Engine turns plain English into a bounded CSG recipe with a private local model, deterministically compiles OpenSCAD, renders a real STL, and refuses to call it done until the mesh passes topology, winding, through-hole genus, dimensions, volume, and hash checks.

● Pipeline ready Ollama 0.31.1 qwen2.5:1.5b OpenSCAD 2021.01 No key · no CAD credits
Plain-English brief
→
Local Ollama
→
Bounded CSG recipe
→
OpenSCAD
→
Validated STL + receipt

Run it from the project root

tools\nsp_python.cmd tools\tool_drivers\invention_engine.py doctor
tools\nsp_python.cmd tools\tool_drivers\invention_engine.py make "cylindrical spacer, 20 mm diameter, 8 mm tall, 5 mm center through-hole" --name spacer --expect-size 20,20,8 --expect-through-holes 1
tools\nsp_python.cmd tools\convergence_forge\kit_pipeline.py "hex EDC wallet spine 90x20x4mm" --mechanical

What a successful run leaves behind

Editable source

The final .plan.json and .scad plus every model response and repair attempt. Dimensions remain visible and changeable.

Printable mesh

A compact binary .stl whose triangles, finite bounds, enclosed volume, edge manifoldness, winding, genus, and requested geometry contracts were checked locally.

Visual proof

An OpenSCAD-rendered PNG when preview generation is enabled, made from the exact source that produced the mesh.

Durable evidence

manifest.json, SHA-256 hashes, model/runtime versions, assumptions, validation results, and OPEN_FIRST.txt.

Guardrails built into the engine

Actually local

The model endpoint must resolve to loopback. A cloud URL is rejected instead of silently receiving the invention brief.

The model cannot write code

Only finite numeric primitives, transforms, booleans, and an acyclic node graph cross the trust boundary. The local compiler alone writes OpenSCAD.

Bounded work

Inference, source length, repair count, render time, file size, triangle count, and physical dimensions all have hard ceilings.

No public mutation endpoint

This page is a discoverable operator card, not an internet-exposed CAD job runner. The actual generation command stays on the workstation.

Prototype, then engineer. A watertight STL is not proof of load capacity, clearances, material choice, print orientation, slicer settings, food/medical safety, or regulatory compliance. Review those before fabrication.

Outputs land under output\inventions\<timestamp>_<name>\. Zoo Text-to-CAD remains an explicit optional paid path when an editable STEP/BRep is required; it is no longer the default invention lane.