LDraw-Nova Lets AI Agents Generate Buildable LEGO CAD Models in LDraw
LDraw-Nova is an open-source toolset that gives AI coding agents the primitives, prompts, and docs they need to generate .ldr and .mpd source files — the low-level assembly language that describes LEGO models one placement instruction at a time. Those files render as interactive CAD models in tools like LDView, LeoCAD, and Studio.
The author iterated for roughly a year through several prior attempts — ldbuilder-ai, py2bricks, and py4bricks — before arriving at two working conclusions:
- There's a minimum resistance path to geometry math. Agents are far better at generating Python code that produces the math than at emitting rotations and positions themselves. So the tooling sidesteps direct LDraw geometry by having agents write Python that emits it.
- Agents learn better from Python code that produces models than from the models themselves.
What you get at the end of a build
- LDraw source for the model
- 3D viewer, 3D player, and VR interactive output (Meta Quest 3)
- Blender-editable glTF (
.glb) with metainfo stored as Blender Custom Properties - Full chat history and the agent's thinking process
Setup
You'll need Git and Docker. The web app lives in a sibling repo, so clone both side by side at the same tag:
git clone --branch v0.6.0 https://github.com/anteloc/ldraw-nova.git git clone --branch v0.6.0 https://github.com/anteloc/ldraw-nova-docker.git
Then build and start:
cd ldraw-nova-docker docker compose build docker compose up -d
First build takes a while and needs around 5 GB of disk space. The app exposes two ports:
https://localhost:8443— required for VR on Quest 3. Self-signed certificate, so expect a browser warning the first time.http://localhost:8765— plain HTTP, no cert warning. VR won't work here.
Other devices on the same network reach it via your machine's IP, e.g. https://192.168.1.20:8443. There's no login — only run it on networks you trust. Stop with docker compose down.
Search and reranking
Agents use jev-rerank (also by the same author) for semantic search with re-ranking, backed by TypeSafe's Jev System One. If you set TYPESAFE_API_KEY in the app's Settings section, reranking works. Without it, agents fall back to full-text search, which the README warns may yield worse models.
Providers and models
The web app supports OpenAI, Claude, and OpenRouter as agent backends. The author credits GPT-6 Astra and Opus 5.5 for getting the pipeline working. Sample outputs are published at anteloc.github.io/index-samples.html. If you want to see what the agent was thinking while building a given model, open the .mpd file in a text editor and read the first line under the 0 FILE header.
Repo is at 157 stars, 32 commits, MIT-style licensing shown as CC-BY-SA-4.0 in the file tree. Worth a look if you're interested in getting agents to produce physically buildable output rather than text or images.
📖 Read the full source: HN AI Agents
👀 See Also

Building a $6.4k Local LLM Server: TCO Breakdown vs API Costs
A developer shares a detailed total cost of ownership for a 4x MI100 local server running llama.cpp, compared to API equivalents including OpenAI and Z.AI coding plans.

Reverse-engineered Claude Design System Prompt for slop-free AI UI agents
Open-source system prompt that replaces generic SaaS trope output with a disciplined design philosophy: WCAG, real CSS Grid, token-based systems, and 14 procedural skills.

Team Memory MCP: Open Source Shared Memory for Claude Code with Bayesian Confidence Scoring
Team Memory MCP is an open source tool that provides shared team memory for Claude Code with Bayesian confidence scoring. It uses a Beta-Bernoulli model to rank patterns, includes temporal decay with 90-day half-life, and can be added to Claude Code with a single command.

Skillware adds prompt_rewriter for deterministic token compression in Claude API agent loops
Skillware has merged a new prompt_rewriter skill that compresses prompts by 50-80% before sending to Claude API, reducing costs in agentic loops while maintaining stable behavior through deterministic compression.