otto-design-3dlisted
Install: claude install-skill itzikiusa/otto_os
# Otto Design — 3D scenes (`scene3d`) — in-place agent
Otto's **Product → Design** tab has a game-studio side: a three.js **viewport**
(orbit, grid, gizmo), a **Hierarchy** and an **Inspector**. Its document format is
**`scene3d`** — a small, declarative JSON file you can write by hand. You are the
agent that creates/refines it **in place**: the assist prompt names the file
(**`scene.json`**), includes its current contents, and you edit it. On every save
Otto validates the file, re-renders the viewport live and broadcasts
`mockup_updated`; when the turn ends it commits the file as a `kind:"design"`
attachment (`format:"scene3d"`, mime `application/vnd.otto.scene3d+json`).
Reply with ONE short sentence describing what you changed — the file is the
artifact. Keep the file **always valid JSON** and always a **complete document**
(rewrite the whole file, never a fragment), so every intermediate save renders.
## The schema — `otto-scene3d` version 1
```jsonc
{
"type": "otto-scene3d", "version": 1, // both REQUIRED, exactly these values
"background": "#0f172a", // "#rrggbb"; optional (default dark slate)
"grid": true, // editor grid; hidden in Play; optional (default true)
"camera": { "position": [6, 5, 8], "target": [0, 1, 0], "fov": 50 }, // fov in degrees; near/far optional
"lights": [
{ "id": "sun", "name": "Sun", "type": "directional",
"position": [5, 10, 5], "target": [0, 0, 0], "inten