Concepts
The mental model: the office, model routing, and the workspace boundary.
Most of dev3d's behaviour follows from four ideas. Read these first and the guides, the reference and the internals pages will make sense on the first pass; skip them and you will keep meeting decisions that look arbitrary because the reason lives one level down.
What the four ideas are
dev3d is not a chat application with agents attached. It is an organisation that happens to be drawn as a building, running pipelines that happen to be measured in dollars, inside directories that happen to be the only place it may write. Those four nouns — organisation, pipeline, turn, directory — are where the design decisions actually live, and each of the four pages in this section explains one of them.
They are load-bearing rather than illustrative. The floor plan is not a theme over a dashboard: the seat a role occupies is a field on the role, and the anchor name in the 3D asset is a contract a Blender script asserts at build time. The model a turn runs on is not a setting on a role; it is recomputed per turn from the role's policy, the stage's task class, an estimated complexity, the installation's posture, and the budget left in the run. A run's directory is not the currently selected project; it is Run.workspacePath, frozen when the run was submitted. And the boundary that confines tool calls is not a sandbox: it is one path check that eight of the fifteen built-in tools actually call, with the shell and git gated by a human instead and extension tools not confined at all.
The pages assume only the ones before them. The office comes first because it is what you see; routing second because it is what the office is spending; projects and floors third because it is where the office is allowed to spend it.
In this section
| Page | The question it answers |
|---|---|
| The office | Why the interface is a floor plan rather than a dashboard, what the furniture encodes, and how a floor grows itself. |
| Model routing | How one model gets chosen for one turn, what the postures and tiers really do, and what a plugin's routing rule may and may not change. |
| Projects, organisations and floors | What a workspace boundary actually protects, and the three places where it stops being a boundary. |
If you want the mechanics before the model, How a run flows is the same territory from the other direction: it follows one brief from submission to report and names the objects as they appear. If you want to see it move first, Quick start gets a run going in a few minutes and the office is fully demonstrable with no provider keys at all.
The office is the application
The canvas is not one pane of a layout. There is exactly one WebGLRenderer, created in a mount effect, and every other surface — the info popout, the inspector, the brief dock, the full-page sheets — floats over it. Switching tabs mounts and unmounts panels; it never touches the renderer, the camera, the avatars or the socket. That single decision is why a run streaming for ten minutes does not churn WebGL contexts while you read the transcript, and it is why "go to the Projects page" does not mean "leave the office".
The consequence is peculiar for anyone used to reading documentation: the interface has to be described by what it encodes, not only by where the buttons are. A colour is a status. A floor is an organisation. A room module is a capacity decision. The office takes that seriously, including the parts that are aspirational rather than working.
A turn's model is chosen, not assigned
Every role declares a model policy, and the policy is not the answer — it is an input to a decision that runs again for every turn. Capability filtering happens first and is not tier-based. Then the posture and any escalation threshold resolve a target tier. Then a weighted score decides between the candidates, with weights explicit enough to compute the outcome by hand.
This is the page where the documentation had to be corrected most. The old version described a tier-band filter followed by a price sort, and that is not what the code does: the real formula is 0.45·fitness + 0.20·quality + 0.35·tierAffinity − costPressure·relativeCost − reliabilityPenalty + hintBonus, a better-fitting model can win from outside the requested tier, and a plugin rule that names a tier genuinely moves the walk. Model routing has the mechanism, a worked example with real rejection strings, and the caveats stated plainly.
A boundary, and the places it is not one
An organisation — the UI calls it a project, and it is a floor of the building — has a directory. Runs are stamped with it at submission, every tool call is resolved against it, and the record stays truthful after the project is renamed or forgotten. That protects one project from another. It does not protect the machine from the operator, does not confine run_shell beyond its working directory, and does not confine a plugin's own tools at all. Projects, organisations and floors draws that line precisely, with a table of what is and is not stopped.
The honest framing is worth stating here as well as there: dev3d is trusted-network software. It is designed for a machine you control, running projects you have chosen to point it at. Anything stronger would be a claim the code does not support.
The one idea underneath all of them
The office is the application, and the application is a company. Everything else in this documentation is a consequence of taking that seriously. The floor plan exists because the roster is real and a person needs a desk. Routing is cost-aware because a company with thirteen employees and a finite budget has to decide which work deserves the expensive model. The workspace boundary exists because a run that writes files has to know which project it is working on, and a run record has to stay truthful afterwards.
If a future page ever seems to describe dev3d as a generic agent framework with a novelty skin, one of these four ideas is being skipped. Come back here.
In this section
- The office
Why the UI is a floor plan, and what the furniture actually encodes.
- Model routing
How one model is chosen for one turn: capability filters, tiers, a weighted score.
- Projects, organisations and floors
How a run is bound to a directory, and the limits of that binding.
- Memory: what the office keeps
How the office writes facts down, who may write them, and why nothing is derived from a transcript.
- MCP servers, and who may call them
Point dev3d at MCP servers, and their tools become tools your employees can hold.
- Vendors: engaging another agent harness
Delegate work to Codex, DSH, Hermes, OpenClaw or any command you can name — and what that does not promise.
Where to go next
- GlossaryGlossary
Every dev3d term defined once, plus the words the project deliberately refuses to use.
- How a run flowsConcept
The real record hierarchy, twelve stage kinds, four stage modes, budgets and failure policy.
- IntroductionTutorial
What dev3d is: a 3D office where a hierarchy of LLM agents plans, builds, reviews and reports.
Linked from
Did this page answer your question?