You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(spatial): mesh/file canonical + Model3DWidget + live model-viewer
The first spatial primitive — one canonical asset, format-discriminated
rendering. Same multi-target pipeline (HTML / Markdown / Text / A2UI /
MCP Apps) Email and Document already use; the format hint picks the
viewer (model-viewer for glb/gltf/usdz today; Mol*, urdf-loader,
three-stl-loader to follow).
- New Model3DWidget {uri, format, name?, bounds?, vertexCount?, posterUri?,
cameraOrbit?, autoRotate?} added to the WidgetData union; every
renderer extended with a model_3d case.
- Mesh canonical type at "mesh/file" — schema + view + mockState that
ships KhronosGroup's Damaged Helmet glTF (CC-BY-4.0). Domain
extensions (protein/structure, robot/arm, printable/object) will
declare extends: ["mesh/file"].
- Gallery loads <model-viewer> once at page level; MCP Apps bundle
conditionally injects the script when the rendered HTML contains a
<model-viewer> element so the same bundle renders 3D inside Claude /
ChatGPT / VS Code / Goose / Cursor sandboxes too.
- Markdown summary stays compact for LLM context: "GLB · 14,556 verts ·
1.70m × 1.70m × 1.70m" — agents reason about 3D state in the same
token-cheap projection they already use for everything else.
This is the seam the spatial coordinate-system thesis hangs on. Same
agent runtime, same approval gates, same OTel trace — now also for 3D
files. Protein structures, URDF robots, STL printables all stack on
top via extends.
0 commit comments