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.

npx mojulo init·node 22.12+·apache‑2.0·runs local

the reelhover or tap a tile for how it was made

A furnished lounge rendered in Blender Cycles: oak floor, sofa and two club chairs facing a media wall, nine recessed ceiling lights glowing
A six-pack of Ruby grapefruit soda rendered in Blender Cycles: a printed coral carton behind two labelled cans standing and one lying down, on a grey studio sweep
A desk-edge headphone hook in mojulo's shaded view: an orange C-shaped clamp with a swept arm curling up at the front
A yellow worker robot spider-tank in mojulo's shaded view: six wheeled legs bent at the knee, an upright rear tank, a white three-dot camera head
A generated city block in mojulo's shaded view: two crossing streets with cars and trees, a park with benches, and a five-story building on the corner lot
A six-storey Paris apartment building in mojulo's live world: a stone street level with paired doors, four floors of French windows, a set-back penthouse and a railed roof terrace
A hydroelectric dam's spillway in flood on a moonless night in mojulo's live world: twelve gates each shedding a white veil of water under warm crest lights, a ridge behind
A grey V8 engine blockout in mojulo's live world: two banks of heads and covers, headers, an intake manifold and throttle body on top
A humanoid g-frame mk II standing in mojulo's live world: a blue and red chest over a white frame, a crested head, panelled arms and legs, a forearm shield held at its side

out of the box

A looping reel of mojulo's four capabilities as point-cloud renders: a mug measured at 9 cm, a seeded city labelled seed 4021, the mug streaming into world.html, mug.stl and mug.gltf export files, and an 8-line JSON recipe regrowing the mug

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.

requirementsnode 22.12+ & npm·runs on cpu — no gpu·no account, no telemetry·bring your own mcp agent (claude code, codex)

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.

Cycles render of the lounge before pot lights: a plain ceiling
before — the lounge as first asked for, plain ceiling
Cycles render of the lounge after pot lights: nine glowing cans in the ceiling
after — one line added to the recipe. same room, same furniture, same camera
{
  "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: a C-shaped clamp with a swept arm, rendered in mojulo's workbench at real millimetres
the hook — 81 × 30 × 33 mm, as the slicer measured it

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
requires·node 22.12+·apache‑2.0·runs local·no account