A 3D factory and workbench for agents.
A local MCP server that gives Claude Code, Codex, or any MCP-capable agent a toolset for 3D. Ask for a small thing — a mug, a cabin — and what comes back is kept as a recipe: a small file that remakes it exactly. It sits upstream of the tools you already use — Blender, an engine, a slicer — and feeds them standard files; it replaces none of them. The rest of what the factory does, it tells you about when you reach for it.
the reelhover or tap a tile for how it was made
out of the box
Solids in real centimetres — lathes, sweeps and part graphs, asked for in a sentence.
Levels grown from a seed — the same seed regrows the same place, anywhere.
What it makes can leave — as one self-contained HTML page, a glTF, or print files: STL / 3MF at true scale. Nothing to install to open them.
Each thing is kept as a recipe — a small file an agent can reopen, edit and regrow later.
one line, everywherethe same recipe in the browser, blender and unreal
Everything mojulo makes is kept as a recipe: a few readable lines that regrow the same thing every time they're opened. Change a line and every copy changes with it, wherever it went. This lounge is a twelve-line recipe. Adding one line gave it nine ceiling lights — in the browser, in Blender's render, and as nine light actors in Unreal. Nobody opened a modelling tool.
{
"title": "One-room house plan — living",
"kind": "floorplan",
"width": 24, "height": 28,
"rooms": [{ "x": 2, "y": 2, "w": 20, "h": 24, "glyph": "L" }],
"doors": [{ "x": 12, "y": 26, "room": 0, "edge": "S" }],
"furnish": true,
"view": "cutaway",
"seed": 7,
"potLights": true
}
that is the whole recipe. the render you see is made from it on every open and can be thrown away; the recipe is the thing you keep. what this room went through on its way into three tools, including the bug it found, is on the record.
where it goesa web page · blender · a game engine · a printer
What you make can leave, as files the tools you already use open on their own. None of these tools is required: the web page and the print files need no other software at all.
a web page
One self-contained HTML file with the 3D inside it. Send it, host it, open it on a phone. Nothing to install, no account for whoever opens it.
blender
The model opens as a standard glTF. If Blender is on the machine, mojulo can have it bake real light into the model without opening a window, or hand an artist a .blend to finish by hand and take the finished surface back.
a game engine
Godot: open the exported folder as a project and press play. Unity and Unreal: a numbered guide walks you through the import. Both need their own editor and an account, which are theirs to ask for, not mojulo's.
a 3D printer
STL or 3MF files at true millimetres. Open one in any slicer. If PrusaSlicer or Bambu Studio is installed, mojulo slices it in the background first and notes the layer count, print time and filament beside the file.
what each tool asks you to install, what comes out the other side, and which of these has actually been run on the record: the fine print lists it per tool and says where no run exists.
to a printerone hook, on the record
A headphone hook for a desk edge, asked for in a sentence. It came back at 19 mm across the jaw; asking again widened it to 25 mm, on the same recipe. Written out as a 3MF, it opened in two slicers on this machine, and both agreed on its size and that it slices cleanly.
runs local
The server, the recipes, and the renders live on your machine. Mojulo ships no language model and no chat window — it's a server your existing agent calls over MCP, spending your tokens at your rate. Apache-2.0, installed from npm, self-hosted by default because there is nothing to host anywhere else.
STEMhover a tile for the live world · click for its study
The same grid, put to work as a teacher. Ask your agent for the concept in a sentence — "show me a black hole with its accretion disk", "a reactor core, then leave the control rods out", "carbon's orbitals" — and it mints a live, orbitable 3D world from a recipe a few lines long. Change a number and mint it again; ask for it edge-on; export the page and hand it to a class.
get started
One line, then talk to your agent.
npx mojulo init