Use case
Cup study
Profiles: 3d
Input
Visual Spec document
3d.json
{ "$schema": "https://visualspec.dev/schema/1.0/schema.json", "visualSpec": "1.0", "metadata": { "title": "Cup study", "language": "en", "status": "approved" }, "profiles": [ "3d" ], "world": { "id": "world.studio", "name": "Studio", "environment": { "kind": "environment.interior", "timeOfDay": "afternoon" } }, "entities": [ { "id": "entity.cup", "kind": "object.product", "name": "Ceramic cup", "lifecycle": "persistent" } ], "materials": [ { "id": "material.ceramic", "model": "pbr-metallic-roughness", "baseColor": "#f4f1ea", "roughness": 0.45, "metalness": 0 } ], "assets": [ { "id": "asset.cup", "type": "model", "uri": "https://example.com/models/cup.glb", "mediaType": "model/gltf-binary" } ], "cameras": [ { "id": "camera.orbit", "type": "perspective", "fieldOfView": 35, "framing": "close-up" } ], "lights": [ { "id": "light.key", "type": "directional", "role": "key", "color": "#fff4e5", "intensity": 1 } ], "threeD": { "sceneRefs": [ "scene.product" ], "assetRefs": [ "asset.cup" ], "skeletons": [ { "id": "skeleton.cup", "rootRef": "joint.root", "joints": [ { "id": "joint.root", "name": "root" }, { "id": "joint.handle", "name": "handle", "parentRef": "joint.root" } ] } ], "rigs": [ { "id": "rig.cup", "skeletonRef": "skeleton.cup" } ], "meshes": [ { "id": "mesh.cup", "assetRef": "asset.cup", "geometry": { "type": "cylinder" }, "materialRefs": [ "material.ceramic" ], "skeletonRef": "skeleton.cup", "lod": [ { "distance": 0, "assetRef": "asset.cup", "screenCoverage": 0.6 }, { "distance": 4, "screenCoverage": 0.15 } ] } ] }, "scenes": [ { "id": "scene.product", "kind": "3d", "cameraRef": "camera.orbit", "lightRefs": [ "light.key" ], "nodes": [ { "id": "node.cup", "kind": "mesh", "entityRef": "entity.cup", "materialRef": "material.ceramic" } ] } ], "rendering": { "targets": [ { "id": "target.web", "platform": "web", "capabilities": [ { "name": "scene.3d", "level": "required" }, { "name": "mesh.pbr", "level": "required", "fallback": { "strategy": "omit", "description": "This preview draws the solid and its material color, not a path-traced mesh." } } ] } ], "fallbackPolicy": "report-and-approximate" }}