extensions/splat-exact.md registers wai.splat.exact: carriage in glTF as EXT_gaussian_splatting_compression_wai under KHR_gaussian_splatting, the attribute layout and its dequantization, the renderer wai-splat-render:i1, the commitment, the view statement, provenance, verification, reasons and the measured quality cost. The draft JSON Schema of the extension object is extensions/gltf/. The corpus gains cases the second implementation's self-falsification showed were missing: an unrequired extension, a buffer view past the envelope, a set whose bytes or pin alone disagree, a commitment naming another object or set, and statements naming another object or renderer or another pose's frame. Co-Authored-By: Claude Opus 5.5 <[email protected]>
50 lines
2.5 KiB
JSON
50 lines
2.5 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "mesh.primitive.KHR_gaussian_splatting.EXT_gaussian_splatting_compression_wai.schema.json",
|
|
"title": "EXT_gaussian_splatting_compression_wai extension of KHR_gaussian_splatting",
|
|
"type": "object",
|
|
"description": "A Gaussian splat set carried as a WAI object (capability wai.splat.int_codec): a WAI1 envelope in a buffer view, its content hash, its parameter set and, optionally, the origin's commitment. Draft of extensions/splat-exact.md section 3.2; the rules that need the envelope, the set or the decode are that section's.",
|
|
"allOf": [ { "$ref": "glTFProperty.schema.json" } ],
|
|
"properties": {
|
|
"bufferView": {
|
|
"allOf": [ { "$ref": "glTFid.schema.json" } ],
|
|
"description": "The index of the buffer view that holds the object's WAI1 envelope, and nothing else."
|
|
},
|
|
"capability": {
|
|
"type": "string",
|
|
"description": "The envelope's capability.",
|
|
"anyOf": [
|
|
{ "const": "wai.splat.int_codec", "description": "The integer Gaussian-splat attribute codec (payload WIS1)." },
|
|
{ "type": "string" }
|
|
]
|
|
},
|
|
"object": {
|
|
"type": "string",
|
|
"pattern": "^[0-9a-f]{64}$",
|
|
"description": "The envelope's content hash: BLAKE3 over moq-jwp:object\\x01 and the envelope's bytes, as 64 lowercase hexadecimal digits."
|
|
},
|
|
"set": {
|
|
"type": "object",
|
|
"description": "The parameter set the envelope pins.",
|
|
"properties": {
|
|
"sha256": {
|
|
"type": "string",
|
|
"pattern": "^[0-9a-f]{64}$",
|
|
"description": "The SHA-256 of the set's one file, as the envelope's pin names it."
|
|
},
|
|
"bufferView": {
|
|
"allOf": [ { "$ref": "glTFid.schema.json" } ],
|
|
"description": "The index of the buffer view that holds the set's one file, where the asset carries it."
|
|
}
|
|
},
|
|
"required": [ "sha256" ]
|
|
},
|
|
"commitment": {
|
|
"allOf": [ { "$ref": "glTFid.schema.json" } ],
|
|
"description": "The index of the buffer view that holds the text of the origin's commitment (kind wai-splat-commitment)."
|
|
},
|
|
"extensions": { },
|
|
"extras": { }
|
|
},
|
|
"required": [ "bufferView", "capability", "object", "set" ]
|
|
}
|