Use case

Cup study

Profiles: 3d

Input

Visual Spec document

3d.json

3d.jsonJSON
{  "$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"  }}