Aura3D Agent Quickstart: prompt to browser 3D with TypeScript, scene kits, typed GLB/glTF assets, Vite templates, diagnostics, screenshots, and static deploy checks.
Use this quickstart to build AI-generated browser 3D scenes, GLB product viewers, and Vite 3D apps with Codex, Claude Code, Cursor, Copilot-style agents, or any coding agent that writes TypeScript.
Aura3D is a scaffolded path from a 3D product prompt to an app a team can keep.
Read llms.txt first. Then read docs/agents/claims-and-boundaries.md for the
hard rules that prevent primitive slop, raw asset IDs, Three.js loader code, CSS
scene effects, and overclaimed root createAuraApp capabilities.
The workflow is intentionally simple:
- Describe the 3D experience.
- Resolve or add the real GLB/glTF asset.
- Generate typed asset refs.
- Compose the scene with the public Aura3D API.
- Capture evidence and deploy.
-
Scaffold with
npx create-aura3d@latest my-scene --template product-viewer. -
Search/resolve a catalog asset or add a user-approved local asset:
npx @aura3d/cli@latest assets search "studio robot" npx @aura3d/cli@latest assets resolve "studio robot" --name robot npx @aura3d/cli@latest assets add ./assets/robot.glb --name robot
-
Import
assetsfromsrc/aura-assets.ts. -
Compose a scene with
scene(),model(assets.robot),camera,lights,material,effects,timeline, andinteractions. -
Run
npm run build,npm run test, screenshot evidence, route-health or equivalent diagnostics, andnpx @aura3d/cli@latest check-deploy.
Do not start an object-focused app with boxes and cylinders. For a named product, character, vehicle, weapon, creature, or world, the primary subject must be a typed GLB/glTF asset. Primitives can support the scene as set dressing, debug markers, collision guides, HUD anchors, or explicitly abstract visualization.
Use this when the user gives a product prompt rather than a hand-written scene plan.
import {
createAuraApp,
definePromptPlan,
promptPlanToScene
} from "@aura3d/engine";
import { assets } from "./aura-assets";
const plan = definePromptPlan({
sceneType: "product-viewer",
subject: { asset: assets.robot },
camera: { preset: "product-orbit" },
lighting: { preset: "studio-softbox" },
interaction: "orbit",
acceptanceCriteria: ["asset is centered", "lighting and shadows are visible"]
} as const);
createAuraApp("#app", {
scene: promptPlanToScene(plan),
diagnostics: { overlay: true }
});Full workflow details live in docs/agents/prompt-to-3d-workflow.md.
Before presenting the result as public or release-ready:
- no
model("id"), raw.glbor.gltfURLs, orunsafeModelUrl(...); - no
three,three/examples/..., orGLTFLoaderimports; - no CSS/DOM particles, fake 3D labels, fake effects, or fake renderer proof;
- no primitive-only primary subject unless the route is explicitly abstract;
- all primary assets are in
aura.assets.jsonandsrc/aura-assets.ts; - screenshots show the primary subject readable at first load;
- game examples prove keyboard input, objective, reset, and scoring/fail or progression;
- claims are labeled as root safe API, production-runtime, rendering internals, CLI pipeline, template scaffold, prototype, or roadmap.
Do not make the scene feel generated. Use authored assets, typed refs, scene kits, readable controls, and screenshot evidence. Aura3D is there to help an agent ship browser 3D that feels intentional, not improvised. If the public root API cannot prove the requested feature yet, say so and keep the route labeled as prototype or blocked rather than compensating with fake visuals.