Agent tooling for generative LEGO models building, built with Astra and Opus 5.5, powered by Jev
Python
39
32 commits
updated Oct 2, 2026
Give an AI agent a model idea. Guide it, let it build it, and get an LDraw LEGO© model.
What you get when the building process finishes:
.glb format, metainfo as Blender's Custom Properties.Take a look at the video:
[!IMPORTANT] Tools used by agents in order to find suitable parts and example models take advantage of jev-rerank (I'm also the author). This is a semantic search tool with re-ranking backed by TypeSafe's Jev System One AI model.
- If you have a TypeSafe API key (
TYPESAFE_API_KEY), set its value on the web app's Settings section.- If you don't, reranking search will not work, and agents will resort to a FTS (Full Text Search) strategy as a fallback, which could (maybe) yield worse models.
Run ldraw-nova as a web app, with Docker. You need Git and Docker.
This web app will run dockerized, and to build the Docker image, two sibling repos are required:
ldraw-nova: this one, of course 😉ldraw-nova-docker: provides both Docker configuration and the web app.1. Clone both repos side by side, at the same tag, so they work together:
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
2. Build the Docker image. The first build takes a while and needs about 5 GB of disk space:
cd ldraw-nova-docker
docker compose build
3. Start the app:
docker compose up -d
4. Open it in your browser:
Other devices on your network can reach the app by your computer's IP instead of localhost, e.g. https://192.168.1.20:8443 from a Quest 3. The app has no login, so only run it on networks you trust.
To stop it:
docker compose down
Well, to summarize: I did this in order to get agentic LLMs capable of designing buildable, physical things!
Finding LDraw, an assembly language (pun intended! 😜) that would be at the same time simple, low level, and executable in order to produce 3D CAD models, gave me the idea of experimenting with both ChatGPT and Claude in order to try and make them code in LDraw, same as they do with other programming languages.
To my surprise, even though this language is heavily focused on math (parts rotations, positioning...), which LLMs are usually bad at, agents did pretty well instead on initial tests, and subsequent projects also yielded good results, but never enough in order to consider generated models to be correct:
These three attempts, and quite some other experimentation, led me to the following conclusions:
💡 Conclusion 1: there is a minimum resistance path to geometry math for agents, i.e.:
💡 Conclusion 2:
Then, the only thing left 🤔 was to create a python-based tooling with the required primitives, verbs, constructive vocabulary... so agents would learn by example and do similar things on their own.
Which proved to be really hard to get right, even if vibe coding it... until GPT-6 Astra and Claude Opus 5.5 arrived... and vibe-coded it right! 🚀🚀🚀
ldraw-nova provides the tools, examples and instructions an agent needs to design models with real LDraw parts.
The process is as follows:
Provided tooling helps the agent in:
The agent doesn't actually start with placing parts, except for things like e.g. prototyping and learning by altering pre-existing example models.
The way it produces models is more like:
To summarize, this is like:
A compiler of sorts, so to say 🤓
flowchart TD
agent([agent]) -- produces --> plan[plan.json]
plan -- interpretation --> gen[generator.py]
gen -- execution --> model[model.mpd]
These are some of the guides and references given to the agent in order to make it a builder:
| I want to… | Read… |
|---|---|
| Ask an agent to generate a model | Agent instructions |
| Improve shape, colour and detail | Visual design guide |
| Build vehicles | Vehicle workflow and examples |
| Build advanced spaceships | Spaceship workflow and atlas |
| Learn a submodel and grow an atlas | Build-manual workflow |
| Build Technic structures | Structural workflow and examples |
| Build with mechanisms | Mechanism workflow and build manuals |
| Find parts and reusable constructions | Reference discovery and reference atlas |
| Organize a large model | Module workflow and Copper Lane example |
| Understand connections and checks | Geometry, snapping and validation |
| Look up a command or file-format rule | Tool reference and LDraw rules |
Being this a first release, there are quite some things that still require some work:
COMING SOON
I'd like to thank the following:
... and thanks to all of the many other LDraw creators!
NOTE: For this work, I've used many LDraw models, libraries, tools, docs... from many sources.
There is a lot amazing people that generously contributed to this, even for decades, by generously donating their finest work to the public domain and open source community.
If you think you should be included on this section, please drop me an email!
LEGO(R) is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this software.
Python
99.9%
Agent tooling for generative LEGO models building, built with Astra and Opus 5.5, powered by Jev
Python
39
32 commits
updated Oct 2, 2026
Give an AI agent a model idea. Guide it, let it build it, and get an LDraw LEGO© model.
What you get when the building process finishes:
.glb format, metainfo as Blender's Custom Properties.Take a look at the video:
[!IMPORTANT] Tools used by agents in order to find suitable parts and example models take advantage of jev-rerank (I'm also the author). This is a semantic search tool with re-ranking backed by TypeSafe's Jev System One AI model.
- If you have a TypeSafe API key (
TYPESAFE_API_KEY), set its value on the web app's Settings section.- If you don't, reranking search will not work, and agents will resort to a FTS (Full Text Search) strategy as a fallback, which could (maybe) yield worse models.
Run ldraw-nova as a web app, with Docker. You need Git and Docker.
This web app will run dockerized, and to build the Docker image, two sibling repos are required:
ldraw-nova: this one, of course 😉ldraw-nova-docker: provides both Docker configuration and the web app.1. Clone both repos side by side, at the same tag, so they work together:
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
2. Build the Docker image. The first build takes a while and needs about 5 GB of disk space:
cd ldraw-nova-docker
docker compose build
3. Start the app:
docker compose up -d
4. Open it in your browser:
Other devices on your network can reach the app by your computer's IP instead of localhost, e.g. https://192.168.1.20:8443 from a Quest 3. The app has no login, so only run it on networks you trust.
To stop it:
docker compose down
Well, to summarize: I did this in order to get agentic LLMs capable of designing buildable, physical things!
Finding LDraw, an assembly language (pun intended! 😜) that would be at the same time simple, low level, and executable in order to produce 3D CAD models, gave me the idea of experimenting with both ChatGPT and Claude in order to try and make them code in LDraw, same as they do with other programming languages.
To my surprise, even though this language is heavily focused on math (parts rotations, positioning...), which LLMs are usually bad at, agents did pretty well instead on initial tests, and subsequent projects also yielded good results, but never enough in order to consider generated models to be correct:
These three attempts, and quite some other experimentation, led me to the following conclusions:
💡 Conclusion 1: there is a minimum resistance path to geometry math for agents, i.e.:
💡 Conclusion 2:
Then, the only thing left 🤔 was to create a python-based tooling with the required primitives, verbs, constructive vocabulary... so agents would learn by example and do similar things on their own.
Which proved to be really hard to get right, even if vibe coding it... until GPT-6 Astra and Claude Opus 5.5 arrived... and vibe-coded it right! 🚀🚀🚀
ldraw-nova provides the tools, examples and instructions an agent needs to design models with real LDraw parts.
The process is as follows:
Provided tooling helps the agent in:
The agent doesn't actually start with placing parts, except for things like e.g. prototyping and learning by altering pre-existing example models.
The way it produces models is more like:
To summarize, this is like:
A compiler of sorts, so to say 🤓
flowchart TD
agent([agent]) -- produces --> plan[plan.json]
plan -- interpretation --> gen[generator.py]
gen -- execution --> model[model.mpd]
These are some of the guides and references given to the agent in order to make it a builder:
| I want to… | Read… |
|---|---|
| Ask an agent to generate a model | Agent instructions |
| Improve shape, colour and detail | Visual design guide |
| Build vehicles | Vehicle workflow and examples |
| Build advanced spaceships | Spaceship workflow and atlas |
| Learn a submodel and grow an atlas | Build-manual workflow |
| Build Technic structures | Structural workflow and examples |
| Build with mechanisms | Mechanism workflow and build manuals |
| Find parts and reusable constructions | Reference discovery and reference atlas |
| Organize a large model | Module workflow and Copper Lane example |
| Understand connections and checks | Geometry, snapping and validation |
| Look up a command or file-format rule | Tool reference and LDraw rules |
Being this a first release, there are quite some things that still require some work:
COMING SOON
I'd like to thank the following:
... and thanks to all of the many other LDraw creators!
NOTE: For this work, I've used many LDraw models, libraries, tools, docs... from many sources.
There is a lot amazing people that generously contributed to this, even for decades, by generously donating their finest work to the public domain and open source community.
If you think you should be included on this section, please drop me an email!
LEGO(R) is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this software.
Python
99.9%