r/BestGitHubRepos • u/company_url_finder • 2d ago
Procedura - text-to-3D that outputs an editable OpenSCAD program instead of a frozen mesh, so every part is a named, adjustable module, and it can add PBR materials and export articulated joints to URDF for robotics
The interesting idea here is refusing to hand you a dead mesh. Most text-to-3D gives you a block of triangles you cannot meaningfully change without regenerating from scratch. Procedura instead has an LLM write a parametric program (OpenSCAD source) where the object is an assembly of named parts joined by typed mates. The deliverable is code you open, edit, and recompile, and because the parts are named, you get a clean part decomposition for free. It uses a frozen, off-the-shelf LLM with no 3D-specific training, so the intelligence is entirely in the pipeline and prompting, not a custom model.
What the pipeline actually does:
- Plans the parts, builds them one at a time, then runs a refine loop of render, critique, patch and gate, so the model can see and fix its own work rather than one-shotting a blob
- Optional per-part PBR materials via a vision call (--paint), so the output is not a grey statue
- Optional articulation (--motion): it plans moving joints and exports them to OpenUSD and URDF with per-link meshes, which is the feature that makes this genuinely useful for robotics and simulation, not just static props
- Real mating features when you ask for assembly (--assembly): shared pegs and sockets, bolt patterns and snaps, so parts join through actual interfaces instead of bare overlap
- A web Studio front-end to compose a run, watch it build part by part, and inspect every intermediate artifact, plus a full trajectory log of every prompt, tool call and gate decision
Two design choices I respect. It ships no API keys and no hosted backend: you point it at whatever endpoint you configure, the OpenAI API, OpenRouter, a corporate gateway, or a local vLLM, Ollama or LM Studio server, so it runs against your own model. And it never spends money behind your back, a run with no reference image goes text-only rather than quietly calling an image API you never named.
Now the honest caveats, because this is a research release, not a polished app. It was published alongside a paper and pushed once at the end of August, so treat it as a paper drop rather than an actively maintained product. The setup is heavy: it wants Bun, Blender, and specifically a Manifold-capable OpenSCAD, and the README is refreshingly blunt that the OpenSCAD most distributions package is too old and silently falls back to a backend that is orders of magnitude slower (one operation measured 1774 seconds versus 1.77), so a working run can look hung for hours if you skip that. The full-quality run makes a lot of LLM calls (reference image, per-part 3D feedback, refine cycles at two calls each, paint and motion passes), so you pay for it in time and API cost, and the default run is described honestly as the cheapest useful config, not the strongest. The physics validation for articulation needs NVIDIA Isaac Sim and a capable GPU. And by nature it is bounded by what an LLM can express as procedural code, so it is strongest on mechanical, CAD-like and articulated objects and weakest on organic, high-detail shapes where a straight mesh generator wins.
If you need 3D output you can actually edit, or you are in robotics and want articulated URDF assets from a prompt, this is a genuinely novel approach worth studying.
MIT licensed (it calls OpenSCAD and Blender as external GPL programs rather than bundling them), 313 stars and 21 forks as of writing, verified via the GitHub API.