img2threejs / app /exemplar_spec.json
Mike0021's picture
Add persistent community gallery and v1.3 previews
37e3d5a verified
Raw
History Blame Contribute Delete
10.7 kB
{
"targetName": "Mug",
"targetId": "mug",
"schemaVersion": "2.1",
"suitability": "pass",
"sourceImage": "ref.png",
"coordinateFrame": {
"up": "+Y",
"forward": "+Z",
"units": "meters",
"origin": "ground-center"
},
"silhouette": {
"primaryAxis": "y",
"dominantCurves": [
"cylindrical body"
],
"negativeSpaces": [
"handle loop"
]
},
"scores": {
"object_isolation": 3,
"silhouette_readability": 3
},
"terminologyProfile": {
"geometryTerms": [
"cylinder",
"torus",
"bevel"
],
"materialTerms": [
"albedo",
"roughness",
"clearcoat"
],
"lightingTerms": [
"key light",
"fill light",
"rim light"
],
"descriptionRule": "measurable 3D terms only"
},
"preSpecAssessment": {
"objectClass": {
"primaryType": "vessel",
"primaryDomain": "object",
"formLanguage": [
"cylindrical",
"hard-surface"
],
"structureKind": [
"single-body-with-appendage"
],
"motionPotential": [
"static"
],
"materialFamilies": [
"glazed-ceramic"
]
},
"complexity": {
"tier": "simple",
"scores": {
"silhouetteComplexity": 1,
"componentCount": 1
},
"estimatedCounts": {
"macroComponents": 1,
"mesoComponents": 1,
"microFeatureGroups": 1,
"materialLayers": 1,
"repetitionSystems": 0
},
"reasoning": [
"single body plus handle"
]
},
"specDepthDecision": {
"requiredDepth": "simple",
"minimumComponentLevels": [
"macro"
],
"needsRepetitionSystems": false,
"needsMaterialLocalOverrides": true,
"needsMultipleReviewViews": true,
"needsActionReadyHierarchy": true
},
"unknownsToResolveBeforeImplementation": [],
"detailInventory": {
"scanMethod": "component-zones",
"targetMinDetails": 3,
"details": [
{
"id": "d1",
"kind": "gloss",
"zone": "body",
"mapsTo": {
"ref": "ceramic/glaze-gloss"
}
},
{
"id": "d2",
"kind": "bevel",
"zone": "rim",
"mapsTo": {
"ref": "body/rim-bevel"
}
},
{
"id": "d3",
"kind": "contour",
"zone": "handle",
"mapsTo": {
"ref": "handle"
}
}
]
}
},
"qualityContract": {
"qualityBar": "simple",
"definitionOfDone": [
"render matches silhouette, glaze gloss, handle attachment"
],
"minimumSpecDepth": {
"macroComponents": 1,
"mesoComponents": 0,
"microFeatureGroups": 0,
"materialLayers": 1,
"repetitionSystems": 0,
"reviewViewpoints": 2
},
"featureGroups": [
{
"id": "overall-silhouette",
"name": "Silhouette",
"required": true,
"qualityCriteria": [
"cylindrical body and handle loop read correctly"
]
},
{
"id": "primary-structure",
"name": "Structure",
"required": true,
"qualityCriteria": [
"body/handle hierarchy named"
]
},
{
"id": "surface-material-response",
"name": "Material",
"required": true,
"qualityCriteria": [
"glaze gloss and roughness variation specified"
]
}
],
"visualDeltaChecks": [
"silhouette delta"
],
"antiShallowSpecRules": [
"no single-root compound objects"
]
},
"qualityTargets": {
"targetFidelity": 0.7,
"mustMatch": [
"silhouette"
],
"niceToHave": [],
"reviewViewpoints": [
"front",
"three-quarter"
]
},
"actionReadiness": {
"contract": "runtime hierarchy with pivots and sockets",
"defaultRigType": "static-prop",
"rootMotionNode": "root",
"requiredComponentFields": [
"actionProfile"
],
"transformChannels": [
"translate",
"rotate"
],
"authoringRules": [
"no floating parts"
]
},
"selfCorrectLoop": {
"enabled": true,
"reviewAfterPasses": [
"blockout"
],
"allowedActions": [
"continue",
"refine-spec",
"refine-code",
"request-input",
"stop"
],
"visualAcceptance": {
"reviewer": "ai-vision",
"threshold": 0.7,
"comparisonArtifactRequired": true,
"layerScoresRequired": true,
"requiredLayerScores": [
"silhouetteProportion"
],
"featureReviewPolicy": {
"enabled": true,
"maxCriticalFeaturesPerPass": 5,
"maxImportantFeaturesPerPass": 3,
"criticalDefaultThreshold": 0.8,
"importantAverageThreshold": 0.65,
"adaptiveEscalation": true,
"singleImagePairOnly": true,
"reviewUnit": "semantic-subsystem",
"selectionRule": "most salient systems"
}
},
"screenshotPolicy": {
"requiredForPasses": [
"blockout"
],
"preferredCapture": "in-app"
}
},
"featureReviewTargets": [
{
"id": "overall-silhouette",
"name": "Body silhouette",
"tier": "critical",
"passIds": [
"blockout"
],
"minimumScore": 0.8,
"mustPass": true,
"componentRefs": [
"body"
],
"evidenceRefs": [
"full-object"
]
}
],
"buildPasses": [
{
"id": "blockout",
"goal": "macro silhouette",
"componentRefs": [
"body"
],
"acceptance": [
"silhouette reads"
]
},
{
"id": "structural-pass",
"goal": "add handle",
"componentRefs": [
"handle"
],
"acceptance": [
"handle attached"
]
},
{
"id": "material-pass",
"goal": "glaze",
"componentRefs": [
"body"
],
"acceptance": [
"glaze reads"
]
}
],
"sculptPipeline": {
"passGateMode": "locked-sequential",
"passOrder": [
"blockout",
"structural-pass",
"material-pass"
],
"currentPass": "blockout",
"completedPasses": [],
"nextRequiredEvidence": [
"render screenshot"
]
},
"lookDevTargets": {
"qualityPriority": "balanced"
},
"lightingFromPhoto": [
"key light upper left, soft directional",
"fill light from front, low intensity ambient",
"rim light from behind right for edge separation",
"exposure neutral with ACES tone mapping",
"contact shadow under base on ground plane"
],
"componentTree": [
{
"id": "body",
"name": "Mug body",
"level": "macro",
"role": "shell",
"primitive": "cylinder",
"topologyClass": "conforming-shell",
"topologyRationale": "The reference shows one continuous hollow ceramic wall with a circular rim.",
"colorMaterialRecipe": {
"dominantAlbedo": "rgba(63, 111, 159, 1.0)",
"secondaryAlbedo": "rgba(53, 97, 140, 1.0)",
"materialClass": "ceramic",
"materialClassConfidence": 0.9
},
"material": "ceramic",
"importance": 1.0,
"confidence": 0.9,
"dimensions": {
"width": 0.08,
"height": 0.1,
"depth": 0.08
},
"transform": {
"position": [
0,
0.05,
0
],
"rotation": [
0,
0,
0
],
"scale": [
1,
1,
1
]
},
"actionProfile": {
"animationRole": "static",
"pivot": {
"mode": "center",
"localPosition": [
0,
0,
0
],
"axis": [
0,
1,
0
]
},
"sockets": [
{
"id": "handle-socket",
"localPosition": [
0.045,
0.0,
0.0
]
}
]
},
"localFeatures": [
{
"id": "rim-bevel",
"kind": "bevel",
"note": "rounded lip"
}
],
"evidenceRefs": [
"full-object"
]
},
{
"id": "handle",
"name": "Handle",
"level": "meso",
"role": "handle",
"primitive": "torus",
"topologyClass": "assembled-solid",
"topologyRationale": "The visible handle is a discrete rounded loop joined to the side wall at two contacts.",
"colorMaterialRecipe": {
"dominantAlbedo": "rgba(63, 111, 159, 1.0)",
"secondaryAlbedo": "rgba(53, 97, 140, 1.0)",
"materialClass": "ceramic",
"materialClassConfidence": 0.85
},
"material": "ceramic",
"parent": "body",
"importance": 0.8,
"confidence": 0.85,
"dimensions": {
"width": 0.04,
"height": 0.06,
"depth": 0.015
},
"transform": {
"position": [
0.055,
0.0,
0
],
"rotation": [
0,
0,
0
],
"scale": [
1,
1,
1
]
},
"attachment": {
"parentId": "body",
"parentSocket": "handle-socket",
"localStart": [
0.04,
0.07,
0
],
"localEnd": [
0.04,
0.03,
0
],
"contactType": "embed",
"embedDepth": 0.004,
"gapTolerance": 0.001
},
"actionProfile": {
"animationRole": "static"
},
"evidenceRefs": [
"full-object"
]
}
],
"materials": [
{
"id": "ceramic",
"name": "Glazed ceramic",
"baseColor": "#3f6f9f",
"roughness": {
"base": 0.22,
"variation": 0.1
},
"metalness": {
"base": 0.0
},
"clearcoat": {
"base": 0.6
},
"colorVariation": {
"palette": [
"#3f6f9f",
"#35618c"
],
"amplitude": 0.08
},
"localOverrides": [
{
"id": "glaze-gloss",
"region": "upper body",
"roughness": 0.12
}
],
"ambientOcclusion": {
"cavityStrength": 0.3
}
}
],
"repetitionSystems": [],
"proceduralStrategy": [
"blockout cylinder",
"attach handle torus",
"apply glaze"
],
"reviewHistory": [],
"viewEvidence": [
{
"id": "full-object",
"imageRegion": {
"x": 0,
"y": 0,
"width": 1,
"height": 1
},
"confidence": 0.8
}
],
"risks": []
}