Files
effectcraft/crates/model/tests/fixtures/quad.gltf
T
Brandon ThomasandClaude Opus 5.5 83c7e14b94 M7.4: model import
New crate effectcraft-model (L2): glTF 2.0 (.gltf/.glb, data URIs, external buffers and
images, PBR metallic-roughness with base/MR/normal/occlusion/emissive textures, node
hierarchy, skins, step/linear/cubic animations) and OBJ/MTL import, parametric primitives,
extruded/bevelled outline meshes and polygon triangulation with holes.

Project: FootageKind::Model, LayerSource::Model/Primitive, Layer::environment, Geometry and
Material Options builders, Environment light Source. Media probes and loads models
(FootageSource::model). Engine: layer.newModel, layer.new3dPrimitive/newPrimitive,
comp.renderer, layer.environment, material.set/reset/duplicateAssign/revealSource (stubs
replaced); File > Import and layer.addItem pick up models. Hand-written fixtures with
attribution sidecars.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 21:04:47 -04:00

211 lines
2.9 KiB
JSON

{
"asset": {
"version": "2.0",
"generator": "EffectCraft fixture script (original work)"
},
"scene": 0,
"scenes": [
{
"nodes": [
0
]
}
],
"nodes": [
{
"name": "Root",
"translation": [
0.0,
1.0,
0.0
],
"children": [
1
]
},
{
"name": "Quad",
"mesh": 0,
"scale": [
2.0,
2.0,
2.0
]
}
],
"meshes": [
{
"name": "Quad",
"primitives": [
{
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"TEXCOORD_0": 2
},
"indices": 3,
"material": 0
}
]
}
],
"materials": [
{
"name": "Painted",
"pbrMetallicRoughness": {
"baseColorFactor": [
1.0,
0.5,
0.25,
1.0
],
"metallicFactor": 0.25,
"roughnessFactor": 0.75,
"baseColorTexture": {
"index": 0
}
},
"emissiveFactor": [
0.1,
0.2,
0.3
],
"doubleSided": true
}
],
"textures": [
{
"source": 0,
"sampler": 0
}
],
"samplers": [
{
"wrapS": 33071,
"wrapT": 10497
}
],
"images": [
{
"uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAEklEQVR4nGP4z8DwHwyBNBgAAEnICff5q7YNAAAAAElFTkSuQmCC"
}
],
"animations": [
{
"name": "Move",
"samplers": [
{
"input": 4,
"output": 5,
"interpolation": "LINEAR"
}
],
"channels": [
{
"sampler": 0,
"target": {
"node": 0,
"path": "translation"
}
}
]
}
],
"accessors": [
{
"bufferView": 0,
"componentType": 5126,
"count": 4,
"type": "VEC3",
"min": [
-0.5,
-0.5,
0.0
],
"max": [
0.5,
0.5,
0.0
]
},
{
"bufferView": 1,
"componentType": 5126,
"count": 4,
"type": "VEC3"
},
{
"bufferView": 2,
"componentType": 5126,
"count": 4,
"type": "VEC2"
},
{
"bufferView": 3,
"componentType": 5123,
"count": 6,
"type": "SCALAR"
},
{
"bufferView": 4,
"componentType": 5126,
"count": 2,
"type": "SCALAR",
"min": [
0.0
],
"max": [
1.0
]
},
{
"bufferView": 5,
"componentType": 5126,
"count": 2,
"type": "VEC3"
}
],
"bufferViews": [
{
"buffer": 0,
"byteOffset": 0,
"byteLength": 48,
"target": 34962
},
{
"buffer": 0,
"byteOffset": 48,
"byteLength": 48,
"target": 34962
},
{
"buffer": 0,
"byteOffset": 96,
"byteLength": 32,
"target": 34962
},
{
"buffer": 0,
"byteOffset": 128,
"byteLength": 12,
"target": 34963
},
{
"buffer": 0,
"byteOffset": 140,
"byteLength": 8
},
{
"buffer": 0,
"byteOffset": 148,
"byteLength": 24
}
],
"buffers": [
{
"byteLength": 172,
"uri": "data:application/octet-stream;base64,AAAAvwAAAL8AAAAAAAAAPwAAAL8AAAAAAAAAPwAAAD8AAAAAAAAAvwAAAD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAIA/AACAPwAAgD8AAAAAAAAAAAAAAAAAAAEAAgAAAAIAAwAAAAAAAACAPwAAAAAAAIA/AAAAAAAAAEAAAIA/AAAAAA=="
}
]
}