open-standards/wai/extensions/gltf/EXT_gaussian_splatting_compression_wai.schema.json
Transaction Science bd06796eec splat-exact: the extension text, the draft schema, and corpus cases that separate every check
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]>
2026-10-22 03:22:48 -04:00

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" ]
}