Example
Cup study
Profiles: 3d
{
"$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"
}
}