Skip to content

Coordinate system

You will mostly never need to think about this. The agent handles all positioning. But if you want to say "shift it 10 cm to the left" or "raise the top shelf by 30 cm," it helps to know what those directions mean.

Units

Everything inside the model is in meters. The interface lets you switch between metric and imperial for display — that toggle changes what you see in the viewport's dimensions readout, the parameter sliders, and the ask-user forms — but under the hood the model is always meters.

When you say "30 cm," the agent translates to 0.30 m. When you read "0.45 m" in a plan, that is 45 cm.

Axes

Three axes, all with their zero at the bottom-back-left corner of the model:

  • X = left → right. Increases as you move right.
  • Y = bottom → top. Y = 0 is the floor. Increases as you move up.
  • Z = back → front. Increases as you move toward you (the camera).

This is the "interior architecture" convention: an object sits with Y = 0 on the floor and grows upward. It is not the SketchUp convention (Z-up) and not the AutoCAD convention; it matches the way 3D web viewers and most game engines handle it. For mechanical parts where there is no obvious "floor," treat Y = 0 as the bottom of the part's bounding box.

Exports convert as needed:

  • STEP, DXF — millimeters, Z-up. The exporter remaps Y → Z so CAD tools display the model right-side up.
  • OBJ, GLB, DAE, STL, PNG — meters, Y-up (no remap). Renderers, SketchUp, and web 3D viewers treat the model with the same orientation as the viewport.

Primitive position is the center

Every primitive is positioned by its center point, not by a corner.

A 0.04 m × 1.8 m × 0.30 m vertical panel at position (0.4, 0.9, 0.0) extends:

  • X: 0.38 → 0.42
  • Y: 0.0 → 1.8
  • Z: −0.15 → +0.15

So a panel "sitting on the floor with its midpoint 1.6 m up" lives at y = 0.9 if it is 1.8 m tall. The agent rarely makes you reason about this — it has anchoring helpers that handle the math — but it explains why an offhand "move it up by 30 cm" always means "increase Y by 0.30."

When you'd actually say a direction

Most of the time you describe the change in human terms:

  • "Make the left door wider" — the agent knows which side is left.
  • "Shift the top shelf down by 5 cm" — the agent knows what "down" means.
  • "Move the handle to the other side" — relative, no coords needed.

You only have to think in axes when you want a precise nudge:

  • "Move the bottom drawer 8 cm forward." (+ Z)
  • "Lower the desk surface by 2 cm." (−Y)
  • "Shift the legs 4 cm inward." (toward 0 on X and Z, depending on which leg)

Either kind of prompt works. Pick whichever lets you say what you mean.

That's the vocabulary. Next: Writing prompts — practical prompt patterns drawn from real sessions.

Docs for Prompt2CAD — derived from the source code at the commit that built them.