Add Chromium-only Blender WebEngine parity work

This commit is contained in:
mes123456
2026-08-12 04:47:48 -04:00
commit 9fd26010f6
18225 changed files with 11622124 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/files/web/empty.blend Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,154 @@
{
"schemaVersion": 1,
"blenderVersion": "5.2.0",
"fixtures": [
{
"id": "empty",
"path": "empty.blend",
"objects": 0,
"meshes": 0,
"materials": 1,
"frameRange": [1, 250]
},
{
"id": "basic_scene",
"path": "basic_scene.blend",
"objects": 3,
"meshes": 1,
"materials": 1,
"objectNames": ["BasicArea", "BasicCamera", "BasicCube"],
"frameRange": [1, 24]
},
{
"id": "attribute_scene",
"path": "attribute_scene.blend",
"objects": 2,
"meshes": 1,
"materials": 2,
"objectNames": ["AttributeMeshObject"],
"frameRange": [1, 24]
},
{
"id": "animation_scene",
"path": "animation_scene.blend",
"objects": 1,
"meshes": 1,
"materials": 1,
"objectNames": ["AnimatedObject"],
"frameRange": [1, 10],
"animationTargets": ["object:AnimatedObject"]
},
{
"id": "rigged_shape_scene",
"path": "rigged_shape_scene.blend",
"objects": 2,
"meshes": 1,
"materials": 0,
"objectNames": ["RiggedArmatureObject", "RiggedShapeObject"],
"features": ["modifier-stack", "vertex-weights", "shape-keys"]
},
{
"id": "pose_constraint_scene",
"path": "pose_constraint_scene.blend",
"objects": 3,
"meshes": 1,
"materials": 0,
"frameRange": [1, 10],
"objectNames": ["PoseConstraintArmatureObject", "PoseConstraintMeshObject", "PoseConstraintTarget"],
"features": ["pose-animation", "pose-constraint", "multi-frame-depsgraph"]
},
{
"id": "packed_image_scene",
"path": "packed_image_scene.blend",
"objects": 1,
"meshes": 1,
"materials": 1,
"objectNames": ["PackedImageObject"],
"features": ["packed-image"]
},
{
"id": "image_resource_matrix",
"path": "image_resource_matrix.blend",
"objects": 4,
"meshes": 4,
"materials": 4,
"objectNames": ["GeneratedImageObject", "UDIMImageObject", "MissingImageObject", "LinkedImageObject"],
"features": ["udim", "generated-image", "linked-library", "missing-external-image"]
},
{
"id": "corrupt_packed_image",
"path": "corrupt_packed_image.blend",
"objects": 1,
"meshes": 1,
"materials": 1,
"objectNames": ["CorruptPackedImageObject"],
"features": ["packed-image", "corrupt-resource", "structured-block"]
},
{
"id": "topology_scene",
"path": "topology_scene.blend",
"objects": 3,
"meshes": 3,
"materials": 0,
"objectNames": ["NonManifoldObject", "OpenNgonObject", "OpenQuadObject"],
"features": ["open-boundary-collapse", "open-ngon-collapse", "non-manifold-collapse"]
},
{
"id": "modifier_generate_scene",
"path": "modifier_generate_scene.blend",
"objects": 9,
"meshes": 9,
"features": ["generate-modifiers", "structured-unsupported"]
},
{
"id": "modifier_deform_scene",
"path": "modifier_deform_scene.blend",
"objects": 11,
"meshes": 9,
"features": ["lattice-golden", "deform-targets", "structured-unsupported"]
},
{
"id": "modifier_deform_curve_scene",
"path": "modifier_deform_curve_scene.blend",
"objects": 2,
"meshes": 1,
"features": ["curve-target", "wasm32-abi-capability-block"]
},
{
"id": "modifier_physics_scene",
"path": "modifier_physics_scene.blend",
"objects": 5,
"meshes": 5,
"frameRange": [1, 12],
"features": ["time-modifiers", "disabled-physics", "structured-unsupported"]
},
{
"id": "modifier_geometry_nodes_scene",
"path": "modifier_geometry_nodes_scene.blend",
"objects": 1,
"meshes": 1,
"features": ["geometry-nodes", "self-contained-node-group", "runtime-capability-block"]
},
{
"id": "modifier_grease_pencil_scene",
"path": "modifier_grease_pencil_scene.blend",
"objects": 1,
"meshes": 0,
"features": ["grease-pencil", "all-5.2-gp-modifier-types", "disabled-modifiers"]
},
{
"id": "modifier_dependency_cycle",
"path": "modifier_dependency_cycle.blend",
"objects": 4,
"meshes": 4,
"features": ["modifier-cycle", "missing-target", "mode-switches", "structured-block"]
},
{
"id": "modifier_extended_native",
"path": "modifier_extended_native.blend",
"objects": 2,
"meshes": 2,
"features": ["edge-split", "screw", "desktop-golden", "disabled-modifier"]
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,20 @@
{
"blenderVersion": "5.2.0 LTS",
"cycleObjects": [
"CycleA",
"CycleB"
],
"fixture": "modifier_dependency_cycle.blend",
"missingTarget": {
"modifier": "Missing Lattice Target",
"object": "MissingTarget"
},
"orderedStack": {
"modifiers": [
"Ordered Mirror",
"Ordered Bevel"
],
"object": "OrderedStack"
},
"taskId": "N-002"
}

View File

@@ -0,0 +1,314 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "modifier_extended_native.blend",
"frame": 1,
"meshes": [
{
"indices": [
4,
5,
2,
0,
3,
1
],
"object": "ExtendedEdgeSplit",
"positions": [
0.0,
0.0,
0.0,
2.0,
0.0,
0.0,
0.0,
2.0,
0.0,
0.0,
0.0,
2.0,
0.0,
0.0,
0.0,
2.0,
0.0,
0.0
],
"triangleCount": 2,
"vertexCount": 6
},
{
"indices": [
0,
1,
3,
0,
3,
2,
2,
3,
5,
2,
5,
4,
4,
5,
7,
4,
7,
6,
6,
7,
9,
6,
9,
8,
8,
9,
11,
8,
11,
10,
10,
11,
13,
10,
13,
12,
12,
13,
15,
12,
15,
14,
14,
15,
1,
14,
1,
0
],
"object": "ExtendedScrew",
"positions": [
1.0,
0.0,
-1.0,
1.0,
0.0,
1.0,
0.7071067690849304,
0.7071067690849304,
-1.0,
0.7071067690849304,
0.7071067690849304,
1.0,
-4.371138828673793e-08,
1.0,
-1.0,
-4.371138828673793e-08,
1.0,
1.0,
-0.7071067690849304,
0.7071067690849304,
-1.0,
-0.7071067690849304,
0.7071067690849304,
1.0,
-1.0,
-8.742277657347586e-08,
-1.0,
-1.0,
-8.742277657347586e-08,
1.0,
-0.7071066498756409,
-0.70710688829422,
-1.0,
-0.7071066498756409,
-0.70710688829422,
1.0,
1.1924880638503055e-08,
-1.0,
-1.0,
1.1924880638503055e-08,
-1.0,
1.0,
0.7071070075035095,
-0.7071065306663513,
-1.0,
0.7071070075035095,
-0.7071065306663513,
1.0
],
"triangleCount": 16,
"vertexCount": 16
},
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
7,
6,
4,
6,
5,
0,
4,
5,
0,
5,
1,
1,
5,
6,
1,
6,
2,
2,
6,
7,
2,
7,
3,
4,
0,
3,
4,
3,
7
],
"object": "ExtendedDisplace",
"positions": [
-1.0,
-1.0,
-0.4375,
1.0,
-1.0,
-0.4375,
1.0,
1.0,
-0.4375,
-1.0,
1.0,
-0.4375,
-1.0,
-1.0,
1.5625,
1.0,
-1.0,
1.5625,
1.0,
1.0,
1.5625,
-1.0,
1.0,
1.5625
],
"triangleCount": 12,
"vertexCount": 8
},
{
"indices": [
0,
1,
2,
0,
2,
3
],
"object": "ExtendedDisplaceBlocked",
"positions": [
-1.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
1.0,
1.0,
0.0,
-1.0,
1.0,
0.0
],
"triangleCount": 2,
"vertexCount": 4
}
],
"objects": [
{
"modifiers": [
{
"name": "Native Edge Split",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "EDGE_SPLIT",
"typeCode": 13
}
],
"name": "ExtendedEdgeSplit"
},
{
"modifiers": [
{
"name": "Native Screw",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "SCREW",
"typeCode": 34
},
{
"name": "Disabled Edge Split",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "EDGE_SPLIT",
"typeCode": 13
}
],
"name": "ExtendedScrew"
},
{
"modifiers": [
{
"name": "Native Constant Displace",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "DISPLACE",
"typeCode": 14
}
],
"name": "ExtendedDisplace"
},
{
"modifiers": [
{
"name": "Blocked RGB Displace",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "DISPLACE",
"typeCode": 14
}
],
"name": "ExtendedDisplaceBlocked"
}
],
"schemaVersion": 1,
"taskId": "N-002",
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06
}
}

View File

@@ -0,0 +1,116 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "nonmesh_scene.blend",
"geometries": [
{
"boundsMax": [
2.0,
0.7,
0.5
],
"boundsMin": [
-2.0,
-1.8,
0.0
],
"centroid": [
-0.0095238,
-1.1490379,
0.2556487
],
"edgeCount": 19,
"edgeIndexMoment": 10790,
"indexMoment": 0,
"object": "WebCurveObject",
"positionMoment": -491.5961875,
"sourceType": "CURVE",
"surfaceArea": 0.0,
"triangleCount": 0,
"vertexCount": 21
},
{
"boundsMax": [
1.9064503,
0.4774,
0.0
],
"boundsMin": [
-1.9057502,
-0.0063,
0.0
],
"centroid": [
0.3246301,
0.1918656,
0.0
],
"edgeCount": 1411,
"edgeIndexMoment": 1880830609,
"indexMoment": 1053814304,
"object": "WebFontObject",
"positionMoment": -22828.9803417,
"sourceType": "FONT",
"surfaceArea": 0.5758171,
"triangleCount": 704,
"vertexCount": 710
},
{
"boundsMax": [
0.9333432,
0.4170701,
0.8170701
],
"boundsMin": [
-1.0577097,
-0.4170701,
-0.01707
],
"centroid": [
-0.29,
0.0,
0.4
],
"edgeCount": 264,
"edgeIndexMoment": 10746507,
"indexMoment": 18130066,
"object": "WebMetaballObject",
"positionMoment": -4214.8233888,
"sourceType": "METABALL",
"surfaceArea": 3.3359928,
"triangleCount": 232,
"vertexCount": 120
},
{
"boundsMax": [
1.0000001,
1.0000001,
0.1951289
],
"boundsMin": [
-1.0000001,
0.0,
0.0
],
"centroid": [
0.0,
0.5,
0.0762222
],
"edgeCount": 480,
"edgeIndexMoment": 78301530,
"indexMoment": 153618975,
"object": "WebSurfaceObject",
"positionMoment": 92642.2223156,
"sourceType": "SURFACE",
"surfaceArea": 2.1298955,
"triangleCount": 450,
"vertexCount": 256
}
],
"schemaVersion": 1,
"tolerance": {
"coordinate": 1e-05,
"positionMoment": 0.001,
"surfaceArea": 0.0001
}
}

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-003",
"source": "tests/files/web/manifest.json",
"fixtures": ["empty", "basic_scene"],
"validatedWith": "build_blender_5.2.0/bin/blender 5.2.0",
"sceneIrStatus": "pending-W-031"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-010",
"viewport": {"width": 1440, "height": 900},
"screenshot": "desktop-1440x900.png",
"browser": "Google Chrome headless",
"checks": ["Blender Web", "Layout", "Outliner", "Properties", "Timeline"]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-011",
"viewport": {"width": 1440, "height": 900},
"screenshot": "layout-1440x900.png",
"browser": "Google Chrome headless",
"checks": ["Topbar", "Workspace tabs", "3D Viewport", "Outliner", "Properties", "Timeline", "StatusBar"]
}

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-012",
"viewport": {"width": 1440, "height": 900},
"screenshot": "mock-worker-1440x900.png",
"workerStatus": "Mock Engine: r0",
"sceneId": "mock-scene"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-013",
"viewport": {"width": 1440, "height": 900},
"screenshot": "three-viewport-1440x900.png",
"browser": "Google Chrome headless with SwiftShader",
"checks": ["Three.js WebGL2 适配器", "Perspective camera", "OrbitControls", "grid", "lit cube"]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-014",
"viewport": {"width": 1440, "height": 900},
"screenshot": "storage-viewport-1440x900.png",
"browser": "Google Chrome headless",
"checks": ["IndexedDB worker", "write/read smoke record", "OPFS capability report"]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"workspaces": ["Layout", "Modeling", "Animation"],
"areas": ["3D Viewport", "Outliner", "Properties", "Timeline"],
"context": {
"workspaceId": "Layout",
"activeAreaId": "viewport",
"activeEditor": "3D Viewport",
"mode": "Object",
"activeObjectId": "BasicCube",
"revision": 0
}
}

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-019",
"viewport": {"width": 1440, "height": 900},
"screenshot": "ui-layout-1440x900.png",
"browser": "Google Chrome headless with SwiftShader",
"checks": ["Workspace tabs", "Object/Edit mode", "F3 Operator Search", "Outliner", "Properties", "Timeline", "StatusBar"]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@@ -0,0 +1,6 @@
{
"taskId": "W-020",
"emscripten": "3.1.69",
"outputs": ["smoke.wasm", "smoke-pthread.wasm"],
"checks": ["C compile", "C++ toolchain available", "pthread build", "ES module flags", "WASMFS filesystem flag"]
}

View File

@@ -0,0 +1,14 @@
{
"taskId": "W-021",
"buildDir": "build_web",
"generator": "Ninja",
"platform": "Emscripten",
"cacheChecks": {
"WITH_WEB": "ON",
"WITH_HEADLESS": "ON",
"WITH_PYTHON": "OFF",
"WITH_GHOST": "OFF",
"WITH_CYCLES": "OFF"
},
"output": "build_web/web_engine.js + web_engine.wasm"
}

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-022",
"target": "web_engine",
"exports": ["web_engine_create", "web_engine_destroy", "web_engine_get_live_handles", "web_engine_get_allocated_bytes"],
"singleWasm": "build_web-single/web_engine.wasm",
"pthreadWasm": "build_web-pthread/web_engine.wasm"
}

View File

@@ -0,0 +1,7 @@
{
"taskId": "W-023",
"profiles": {
"single": {"threads": false, "environment": "web,worker", "modularize": true, "exportEs6": true},
"pthread": {"threads": true, "poolSize": 1, "requiresCrossOriginIsolation": true}
}
}

View File

@@ -0,0 +1,6 @@
{
"taskId": "W-024",
"api": "web_engine_get_memory_stats",
"smoke": {"liveHandlesAfterCreate": 1, "allocatedBytes": 0, "liveHandlesAfterDestroy": 0},
"policy": "future Blender allocations must be reported through the same ABI"
}

View File

@@ -0,0 +1,6 @@
{
"taskId": "W-025",
"functions": ["web_engine_create", "web_engine_open_blend", "web_engine_apply_command", "web_engine_get_scene_snapshot", "web_engine_save_blend", "web_engine_free_buffer", "web_engine_destroy"],
"abiRule": "POD pointers and lengths only",
"smoke": {"emptyOpen": 0, "unlinkedCommand": -3}
}

View File

@@ -0,0 +1,5 @@
{
"taskId": "W-026",
"codes": {"OK": 0, "INVALID_HANDLE": -1, "INVALID_ARGUMENT": -2, "NOT_IMPLEMENTED": -3},
"functions": ["web_engine_last_error_code", "web_engine_last_error_message"]
}

View File

@@ -0,0 +1,8 @@
{
"taskId": "W-027",
"worker": "web/app/src/workers/web-engine.worker.ts",
"js": "/vendor/blender/web_engine.js",
"wasm": "/vendor/blender/web_engine.wasm",
"wasmSha256": "921acbc11ad18c77638f8316e960f951453c59ac170ab6cf70e55e73646804ca",
"ready": {"ready": true, "liveHandles": 1, "allocatedBytes": 0}
}

View File

@@ -0,0 +1,5 @@
{
"taskId": "W-028",
"native": {"handle": 1, "open": -2, "command": -2, "liveBeforeDestroy": 1, "liveAfterDestroy": 0},
"wasm": {"handle": 1, "sceneNodes": 3, "meshVertices": 8, "authoritySavedBytes": 239737, "decimateCommand": 0, "snapshotOnlySave": -3}
}

View File

@@ -0,0 +1,6 @@
{
"taskId": "W-029",
"gate": "dual-engine-ok",
"sceneLibraries": "BLO/DNA reader linked by canonical Blender Web target; full SceneIR remains D-stage scope",
"webArtifacts": ["web_engine.js", "web_engine.wasm", "web-engine.worker.js"]
}

View File

@@ -0,0 +1,35 @@
{
"taskId": "W-030",
"fixtures": [
{
"file": "tests/files/web/empty.blend",
"bytes": 93691,
"sha256": "9b1ecbcc3d7f8079ee5469de64193ffcaa0a7b01e0f2ac340bbb18aa88734a63",
"compression": "zstd",
"objects": 0
},
{
"file": "tests/files/web/basic_scene.blend",
"bytes": 95608,
"sha256": "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73",
"compression": "zstd",
"objects": 3
},
{
"file": "tests/files/web/attribute_scene.blend",
"bytes": 90108,
"sha256": "12fa75bb79f8c38e660d3d2a8fc9cc16dd3df4fc9208b0e2ad94fb1f8aa68f71",
"compression": "zstd",
"objects": 1
},
{
"file": "tests/files/web/animation_scene.blend",
"bytes": 86768,
"sha256": "8bc730eb5df55d91246f0eade4f416cae6670dde1191b3dc340f283532a04f3d",
"compression": "zstd",
"objects": 1
}
],
"input": "ArrayBuffer transferred to Worker and copied into WASM memory",
"posixPathInput": false
}

View File

@@ -0,0 +1,29 @@
{
"taskId": "W-031",
"schemaVersion": 1,
"requiredArrays": [
"nodes",
"collections",
"meshes",
"materials",
"images",
"cameras",
"lights",
"worlds",
"animations",
"scenes"
],
"coordinateSystem": {
"upAxis": "Z",
"forwardAxis": "-Y",
"handedness": "RIGHT"
},
"stableIdExamples": [
"scene:Scene",
"object:BasicCube",
"mesh:Cube.001",
"camera:Camera.001",
"light:Area"
],
"containsWasmPointers": false
}

View File

@@ -0,0 +1,28 @@
{
"taskId": "W-032",
"scene": {
"id": "scene:Scene",
"rootCollectionId": "collection:Scene Collection",
"cameraObjectId": "object:BasicCamera",
"activeObjectId": "object:BasicCube",
"frame": { "current": 1, "start": 1, "end": 24 }
},
"collections": [
{
"id": "collection:Scene Collection",
"objectIds": [],
"childCollectionIds": ["collection:Collection"]
},
{
"id": "collection:Collection",
"objectIds": ["object:BasicCube", "object:BasicCamera", "object:BasicArea"],
"childCollectionIds": []
}
],
"objects": [
{ "id": "object:BasicArea", "type": "LIGHT", "dataId": "light:Area" },
{ "id": "object:BasicCamera", "type": "CAMERA", "dataId": "camera:Camera.001" },
{ "id": "object:BasicCube", "type": "MESH", "dataId": "mesh:Cube.001" }
],
"nodeContract": ["parentId", "visible", "selectable", "localMatrix", "worldMatrix"]
}

View File

@@ -0,0 +1,29 @@
{
"taskId": "W-033",
"fixture": "tests/files/web/attribute_scene.blend",
"meshId": "mesh:AttributeMesh",
"geometryStatus": "available",
"vertexCount": 5,
"faceCount": 2,
"cornerCount": 7,
"triangleCount": 3,
"positionsLength": 15,
"normalsLength": 15,
"triangleCornerIndicesLength": 9,
"uvsLength": 14,
"colorsLength": 28,
"triangleMaterialIndices": [0, 0, 1],
"materialSlotIds": ["material:AttributeRed", "material:AttributeBlue"],
"bounds": {"min": [-1, -1, 0], "max": [1, 1, 1]},
"material": {
"id": "material:AttributeRed",
"baseColor": [0.8, 0.05, 0.02, 1],
"metallic": 0.25,
"roughness": 0.35,
"emissionColor": [0.02, 0.01, 0, 1],
"alpha": 0.8,
"ior": 1.33,
"imageIds": ["image:AttributeTexture"],
"warnings": ["linked_input_not_evaluated:Base Color"]
}
}

View File

@@ -0,0 +1,15 @@
{
"taskId": "W-033",
"meshId": "mesh:Cube.001",
"geometryStatus": "available",
"vertexCount": 8,
"edgeCount": 12,
"faceCount": 6,
"cornerCount": 24,
"triangleCount": 12,
"positionsLength": 24,
"indicesLength": 36,
"topology": "triangles",
"firstPosition": [-1, -1, -1],
"firstTriangles": [0, 1, 3, 0, 3, 2]
}

View File

@@ -0,0 +1,26 @@
{
"fixture": "tests/files/web/basic_scene.blend",
"camera": {
"id": "camera:Camera.001",
"projection": "PERSPECTIVE",
"lensMm": 50,
"sensorWidthMm": 36,
"sensorHeightMm": 24,
"near": 0.1,
"far": 1000,
"orthoScale": 6,
"shift": [0, 0]
},
"light": {
"id": "light:Area",
"lightType": 4,
"areaShape": 4,
"areaSize": 5,
"areaSizeY": 1
},
"world": {
"id": "world:World",
"color": [0.0508760884, 0.0508760884, 0.0508760884],
"sceneWorldId": "world:World"
}
}

View File

@@ -0,0 +1,15 @@
{
"taskId": "W-037",
"fixture": "tests/files/web/basic_scene.blend",
"schemaVersion": 1,
"revision": 1,
"nodes": 3,
"meshSummary": { "vertices": 8, "edges": 12, "faces": 6, "corners": 24, "triangles": 12 },
"geometryPayload": { "positions": 24, "indices": 36, "transport": "Worker transferable ArrayBuffer" },
"binaryBuffers": {
"schemaVersion": 1,
"elementTypes": ["float32", "uint32"],
"byteLength": "reported per mesh envelope",
"chunking": "todo for large evaluated meshes"
}
}

View File

@@ -0,0 +1,8 @@
{
"taskId": "W-038",
"schemaVersion": 1,
"operations": ["node.add", "node.update", "node.remove", "activeObject", "frame"],
"revisionRule": "snapshot.revision must equal delta.baseRevision",
"nativeGenerator": "todo",
"meshRangeUpdates": "todo"
}

View File

@@ -0,0 +1,118 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "modifier_deform_curve_scene.blend",
"frame": 1,
"greasePencils": [],
"meshes": [
{
"indices": [
0,
1,
4,
0,
4,
3,
1,
2,
5,
1,
5,
4,
3,
4,
7,
3,
7,
6,
4,
5,
8,
4,
8,
7
],
"object": "DeformCurve",
"positions": [
-2.863687038421631,
-1.9667444229125977,
0.027240782976150513,
-1.473314881324768,
-1.4044939279556274,
0.0,
-0.16121792793273926,
-0.7856674194335938,
-0.08452653884887695,
-3.3903722763061523,
-0.5622504949569702,
0.027240782976150513,
-2.0,
0.0,
0.0,
-0.6455945372581482,
0.6339731216430664,
-0.08404737710952759,
-3.917057514190674,
0.8422434329986572,
0.027240782976150513,
-2.5266852378845215,
1.4044939279556274,
0.0,
-1.1299711465835571,
2.0536136627197266,
-0.08356821537017822
],
"sourceMesh": "DeformCurveMesh",
"triangleCount": 8,
"vertexCount": 9,
"worldMatrix": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
}
],
"nodeGroups": [],
"objects": [
{
"modifiers": [
{
"name": "Curve",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"targetObjects": [
"DeformCurveTarget"
],
"type": "CURVE",
"typeCode": 3
}
],
"name": "DeformCurve",
"type": "MESH"
},
{
"modifiers": [],
"name": "DeformCurveTarget",
"type": "CURVE"
}
],
"schemaVersion": 1,
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
{
"reference": "Blender 5.2.0 LTS Subdivision Surface with OpenSubdiv 3.7.0 CPU",
"object": "GenerateSubsurf",
"vertexCount": 26,
"triangleCount": 48,
"positions": [-0.5000000596046448, -0.5000000596046448, -0.5000000596046448, 0.5000001192092896, -0.5000000596046448, -0.5000000596046448, 0.5, 0.5000000596046448, -0.5, -0.5, 0.5000000596046448, -0.5000000596046448, -0.5000000596046448, -0.5000000596046448, 0.5000000596046448, 0.5000000596046448, -0.5, 0.5000000596046448, 0.5000000596046448, 0.5000000596046448, 0.5, -0.5000000596046448, 0.5000001192092896, 0.5000000596046448, -0.6095678806304932, 1.862645149230957e-9, -0.6095678806304932, 2.7939677238464355e-9, -0.6095678806304932, -0.6095678806304932, 0.6095678806304932, 1.862645149230957e-9, -0.6095678806304932, -3.725290298461914e-9, 0.6095679402351379, -0.6095679402351379, 1.862645149230957e-9, -0.6095678806304932, 0.6095678806304932, -0.6095678806304932, 2.7939677238464355e-9, 0.6095678806304932, -6.51925802230835e-9, 0.6095678806304932, 0.6095678806304932, 0.6095679402351379, 2.7939677238464355e-9, 0.6095679402351379, -0.6095678806304932, -0.6095678806304932, -9.313225746154785e-10, 0.6095679402351379, -0.6095679402351379, -1.3969838619232178e-8, 0.6095679402351379, 0.6095678806304932, 1.210719347000122e-8, -0.6095679998397827, 0.6095679402351379, -1.4901161193847656e-8, 9.313225746154785e-9, -9.313225746154785e-9, -0.8395062685012817, -8.381903171539307e-9, 1.0244548320770264e-8, 0.8395062685012817, 5.587935447692871e-9, -0.8395062685012817, 2.2351741790771484e-8, 0.8395062685012817, -9.313225746154785e-9, 0, -6.51925802230835e-9, 0.8395062685012817, 9.313225746154785e-10, -0.8395062685012817, 5.587935447692871e-9, -1.862645149230957e-8],
"indices": [0, 9, 20, 0, 20, 8, 9, 1, 10, 9, 10, 20, 20, 10, 2, 20, 2, 11, 8, 20, 11, 8, 11, 3, 4, 13, 21, 4, 21, 12, 13, 7, 14, 13, 14, 21, 21, 14, 6, 21, 6, 15, 12, 21, 15, 12, 15, 5, 0, 16, 22, 0, 22, 9, 16, 4, 12, 16, 12, 22, 22, 12, 5, 22, 5, 17, 9, 22, 17, 9, 17, 1, 1, 17, 23, 1, 23, 10, 17, 5, 15, 17, 15, 23, 23, 15, 6, 23, 6, 18, 10, 23, 18, 10, 18, 2, 2, 18, 24, 2, 24, 11, 18, 6, 14, 18, 14, 24, 24, 14, 7, 24, 7, 19, 11, 24, 19, 11, 19, 3, 4, 16, 25, 4, 25, 13, 16, 0, 8, 16, 8, 25, 25, 8, 3, 25, 3, 19, 13, 25, 19, 13, 19, 7]
}

View File

@@ -0,0 +1,483 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "modifier_geometry_nodes_scene.blend",
"frame": 1,
"greasePencils": [],
"meshes": [
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
7,
6,
4,
6,
5,
0,
4,
5,
0,
5,
1,
1,
5,
6,
1,
6,
2,
2,
6,
7,
2,
7,
3,
4,
0,
3,
4,
3,
7
],
"object": "GeometryNodesObject",
"positions": [
-0.45710670948028564,
-0.7247449159622192,
0.0,
1.4747449159622192,
-0.20710670948028564,
0.0,
0.9571067094802856,
1.7247449159622192,
0.0,
-0.9747449159622192,
1.2071067094802856,
0.0,
-0.45710670948028564,
-0.7247449159622192,
2.0,
1.4747449159622192,
-0.20710670948028564,
2.0,
0.9571067094802856,
1.7247449159622192,
2.0,
-0.9747449159622192,
1.2071067094802856,
2.0
],
"sourceMesh": "GeometryNodesObjectMesh",
"triangleCount": 12,
"vertexCount": 8,
"worldMatrix": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
7,
6,
4,
6,
5,
0,
4,
5,
0,
5,
1,
1,
5,
6,
1,
6,
2,
2,
6,
7,
2,
7,
3,
4,
0,
3,
4,
3,
7
],
"object": "GeometryNodesSetPosition",
"positions": [
-1.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
1.0,
1.0,
0.0,
-1.0,
1.0,
0.0,
-1.0,
-1.0,
2.0,
1.0,
-1.0,
2.0,
1.0,
1.0,
2.0,
-1.0,
1.0,
2.0
],
"sourceMesh": "GeometryNodesSetPositionMesh",
"triangleCount": 12,
"vertexCount": 8,
"worldMatrix": [
1.0,
0.0,
0.0,
4.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
7,
6,
4,
6,
5,
0,
4,
5,
0,
5,
1,
1,
5,
6,
1,
6,
2,
2,
6,
7,
2,
7,
3,
4,
0,
3,
4,
3,
7
],
"object": "GeometryNodesSimulation",
"positions": [
-1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
1.0,
1.0,
1.0,
1.0,
-1.0,
1.0,
1.0
],
"sourceMesh": "GeometryNodesSimulationMesh",
"triangleCount": 12,
"vertexCount": 8,
"worldMatrix": [
1.0,
0.0,
0.0,
8.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
7,
6,
4,
6,
5,
0,
4,
5,
0,
5,
1,
1,
5,
6,
1,
6,
2,
2,
6,
7,
2,
7,
3,
4,
0,
3,
4,
3,
7
],
"object": "GeometryNodesSimulationBaseline",
"positions": [
-1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
1.0,
1.0,
1.0,
1.0,
-1.0,
1.0,
1.0
],
"sourceMesh": "GeometryNodesSimulationBaselineMesh",
"triangleCount": 12,
"vertexCount": 8,
"worldMatrix": [
1.0,
0.0,
0.0,
12.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
}
],
"nodeGroups": [
{
"links": 2,
"name": "WebGeometryNodes",
"nodes": [
{
"name": "Group Input",
"type": "NodeGroupInput"
},
{
"name": "Group Output",
"type": "NodeGroupOutput"
},
{
"name": "Transform Geometry",
"type": "GeometryNodeTransform"
}
],
"type": "GeometryNodeTree"
},
{
"links": 2,
"name": "WebGeometryNodesSetPosition",
"nodes": [
{
"name": "Group Input",
"type": "NodeGroupInput"
},
{
"name": "Group Output",
"type": "NodeGroupOutput"
},
{
"name": "Set Position",
"type": "GeometryNodeSetPosition"
}
],
"type": "GeometryNodeTree"
},
{
"links": 3,
"name": "WebGeometryNodesSimulation",
"nodes": [
{
"name": "Group Input",
"type": "NodeGroupInput"
},
{
"name": "Group Output",
"type": "NodeGroupOutput"
},
{
"name": "Simulation Input",
"type": "GeometryNodeSimulationInput"
},
{
"name": "Simulation Output",
"type": "GeometryNodeSimulationOutput"
}
],
"type": "GeometryNodeTree"
}
],
"objects": [
{
"modifiers": [
{
"name": "Geometry Nodes Transform",
"nodeGroup": "WebGeometryNodes",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "NODES",
"typeCode": 57
}
],
"name": "GeometryNodesObject",
"type": "MESH"
},
{
"modifiers": [
{
"name": "Geometry Nodes Set Position",
"nodeGroup": "WebGeometryNodesSetPosition",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "NODES",
"typeCode": 57
}
],
"name": "GeometryNodesSetPosition",
"type": "MESH"
},
{
"modifiers": [
{
"name": "Geometry Nodes Simulation",
"nodeGroup": "WebGeometryNodesSimulation",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "NODES",
"typeCode": 57
}
],
"name": "GeometryNodesSimulation",
"type": "MESH"
},
{
"modifiers": [],
"name": "GeometryNodesSimulationBaseline",
"type": "MESH"
}
],
"schemaVersion": 1,
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06
}
}

View File

@@ -0,0 +1,286 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "modifier_grease_pencil_scene.blend",
"frame": 1,
"greasePencils": [
{
"data": "GreasePencilData",
"layers": [
{
"frames": [
{
"frame": 1,
"pointCount": 4,
"positions": [
-1.5,
0.0,
0.0,
-0.5,
0.5,
0.0,
0.5,
-0.25,
0.0,
1.5,
0.25,
0.0
],
"strokeCount": 1
}
],
"name": "Lines"
}
],
"object": "GreasePencilObject"
}
],
"meshes": [],
"nodeGroups": [],
"objects": [
{
"modifiers": [
{
"name": "Gp Armature",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_ARMATURE",
"typeCode": 79
},
{
"name": "Gp Array",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_ARRAY",
"typeCode": 75
},
{
"name": "Gp Build",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_BUILD",
"typeCode": 84
},
{
"name": "Gp Color",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_COLOR",
"typeCode": 63
},
{
"name": "Gp Dash",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_DASH",
"typeCode": 71
},
{
"name": "Gp Envelope",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_ENVELOPE",
"typeCode": 81
},
{
"name": "Gp Hook",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_HOOK",
"typeCode": 77
},
{
"name": "Gp Lattice",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_LATTICE",
"typeCode": 70
},
{
"name": "Gp Length",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_LENGTH",
"typeCode": 73
},
{
"name": "Gp Mirror",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_MIRROR",
"typeCode": 68
},
{
"name": "Gp Multiply",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_MULTIPLY",
"typeCode": 72
},
{
"name": "Gp Noise",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_NOISE",
"typeCode": 67
},
{
"name": "Gp Offset",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_OFFSET",
"typeCode": 66
},
{
"name": "Gp Opacity",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_OPACITY",
"typeCode": 61
},
{
"name": "Gp Outline",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_OUTLINE",
"typeCode": 82
},
{
"name": "Gp Shrinkwrap",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_SHRINKWRAP",
"typeCode": 83
},
{
"name": "Gp Simplify",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_SIMPLIFY",
"typeCode": 85
},
{
"name": "Gp Smooth",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_SMOOTH",
"typeCode": 65
},
{
"name": "Gp Subdiv",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_SUBDIV",
"typeCode": 62
},
{
"name": "Gp Texture",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_TEXTURE",
"typeCode": 86
},
{
"name": "Gp Thickness",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_THICKNESS",
"typeCode": 69
},
{
"name": "Gp Time",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_TIME",
"typeCode": 80
},
{
"name": "Gp Tint",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_TINT",
"typeCode": 64
},
{
"name": "Gp Vertex Weight Angle",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_VERTEX_WEIGHT_ANGLE",
"typeCode": 74
},
{
"name": "Gp Vertex Weight Proximity",
"showEditmode": true,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY",
"typeCode": 76
},
{
"name": "Lineart",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "LINEART",
"typeCode": 78
}
],
"name": "GreasePencilObject",
"type": "GREASEPENCIL"
}
],
"schemaVersion": 1,
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06
}
}

View File

@@ -0,0 +1,486 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "modifier_physics_scene.blend",
"frame": 6,
"greasePencils": [],
"meshes": [
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
5,
6,
4,
6,
7,
0,
4,
7,
0,
7,
1
],
"object": "PhysicsBuild",
"positions": [
-1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
-1.0,
1.0,
-1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
-1.0,
1.0
],
"sourceMesh": "PhysicsBuildMesh",
"triangleCount": 6,
"vertexCount": 8,
"worldMatrix": [
1.0,
0.0,
0.0,
-4.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
4,
0,
4,
3,
1,
2,
5,
1,
5,
4,
3,
4,
7,
3,
7,
6,
4,
5,
8,
4,
8,
7
],
"object": "PhysicsClothDisabled",
"positions": [
-1.0,
-1.0,
0.0,
0.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
-1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
-1.0,
1.0,
0.0,
0.0,
1.0,
0.0,
1.0,
1.0,
0.0
],
"sourceMesh": "PhysicsClothDisabledMesh",
"triangleCount": 8,
"vertexCount": 9,
"worldMatrix": [
1.0,
0.0,
0.0,
7.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
1.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
2,
0,
2,
3,
4,
7,
6,
4,
6,
5,
0,
4,
5,
0,
5,
1,
1,
5,
6,
1,
6,
2,
2,
6,
7,
2,
7,
3,
4,
0,
3,
4,
3,
7
],
"object": "PhysicsCollisionDisabled",
"positions": [
-1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
-1.0,
1.0,
-1.0,
-1.0,
-1.0,
1.0,
1.0,
-1.0,
1.0,
1.0,
1.0,
1.0,
-1.0,
1.0,
1.0
],
"sourceMesh": "PhysicsCollisionDisabledMesh",
"triangleCount": 12,
"vertexCount": 8,
"worldMatrix": [
1.0,
0.0,
0.0,
15.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
4,
0,
4,
3,
1,
2,
5,
1,
5,
4,
3,
4,
7,
3,
7,
6,
4,
5,
8,
4,
8,
7
],
"object": "PhysicsSoftBodyDisabled",
"positions": [
-1.0,
-1.0,
0.0,
0.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
-1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
-1.0,
1.0,
0.0,
0.0,
1.0,
0.0,
1.0,
1.0,
0.0
],
"sourceMesh": "PhysicsSoftBodyDisabledMesh",
"triangleCount": 8,
"vertexCount": 9,
"worldMatrix": [
1.0,
0.0,
0.0,
11.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
1.0,
0.0,
0.0,
0.0,
1.0
]
},
{
"indices": [
0,
1,
4,
0,
4,
3,
1,
2,
5,
1,
5,
4,
3,
4,
7,
3,
7,
6,
4,
5,
8,
4,
8,
7
],
"object": "PhysicsWave",
"positions": [
-2.0,
-2.0,
0.0,
0.0,
-2.0,
0.2122475653886795,
2.0,
-2.0,
0.0,
-2.0,
0.0,
0.2122475653886795,
0.0,
0.0,
0.0489828996360302,
2.0,
0.0,
0.2122475653886795,
-2.0,
2.0,
0.0,
0.0,
2.0,
0.2122475653886795,
2.0,
2.0,
0.0
],
"sourceMesh": "PhysicsWaveMesh",
"triangleCount": 8,
"vertexCount": 9,
"worldMatrix": [
1.0,
0.0,
0.0,
2.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
]
}
],
"nodeGroups": [],
"objects": [
{
"modifiers": [
{
"name": "Build",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "BUILD",
"typeCode": 4
}
],
"name": "PhysicsBuild",
"type": "MESH"
},
{
"modifiers": [
{
"name": "Cloth Disabled",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "CLOTH",
"typeCode": 22
}
],
"name": "PhysicsClothDisabled",
"type": "MESH"
},
{
"modifiers": [
{
"name": "Collision Disabled",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "COLLISION",
"typeCode": 23
}
],
"name": "PhysicsCollisionDisabled",
"type": "MESH"
},
{
"modifiers": [
{
"name": "Soft Body Disabled",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": false,
"type": "SOFT_BODY",
"typeCode": 10
}
],
"name": "PhysicsSoftBodyDisabled",
"type": "MESH"
},
{
"modifiers": [
{
"name": "Wave",
"showEditmode": false,
"showOnCage": false,
"showRender": true,
"showViewport": true,
"type": "WAVE",
"typeCode": 7
}
],
"name": "PhysicsWave",
"type": "MESH"
}
],
"schemaVersion": 1,
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06
}
}

View File

@@ -0,0 +1,21 @@
{
"fixture": "tests/files/web/basic_scene.blend",
"source": {
"frame": [1, 24],
"objects": [
{ "name": "BasicArea", "type": "LIGHT", "vertices": 0, "polygons": 0, "materials": 0 },
{ "name": "BasicCamera", "type": "CAMERA", "vertices": 0, "polygons": 0, "materials": 0 },
{ "name": "BasicCube", "type": "MESH", "vertices": 8, "polygons": 6, "materials": 0 }
]
},
"collapse": {
"1": { "vertices": 8, "triangles": 12 },
"0.9": { "vertices": 7, "triangles": 10 },
"0.8": { "vertices": 6, "triangles": 8 },
"0.75": { "vertices": 6, "triangles": 8 },
"0.7": { "vertices": 6, "triangles": 8 },
"0.65": { "vertices": 5, "triangles": 6 },
"0.5": { "vertices": 5, "triangles": 6 },
"0.25": { "vertices": 3, "triangles": 2 }
}
}

View File

@@ -0,0 +1,41 @@
{
"schemaVersion": 1,
"fixture": "rigged_shape_scene.blend",
"evaluator": "Blender Depsgraph",
"blenderVersion": "5.2.0 LTS",
"frame": 1,
"object": "RiggedShapeObject",
"mesh": "RiggedShapeMesh",
"vertexCount": 4,
"polygonCount": 2,
"positions": [
-0.9609514474868774,
-1.062648892402649,
0.0,
0.9954512119293213,
-0.8810526132583618,
0.0,
0.25541985034942627,
1.3013997077941895,
0.30000001192092896,
-1.570190668106079,
0.5750148296356201,
0.15000000596046448
],
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06
},
"modifierStack": [
{
"name": "Armature Deform",
"type": "ARMATURE",
"showViewport": true
},
{
"name": "Preview Decimate",
"type": "DECIMATE",
"showViewport": false
}
]
}

View File

@@ -0,0 +1,111 @@
{
"schemaVersion": 1,
"fixture": "animation_scene.blend",
"evaluator": "Blender Depsgraph",
"blenderVersion": "5.2.0 LTS",
"object": "AnimatedObject",
"mesh": "AnimationMesh",
"frames": [
{
"frame": 1,
"worldMatrix": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"positions": [
-1.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
0.0,
1.0,
0.0
]
},
{
"frame": 5,
"worldMatrix": [
1.0,
0.0,
0.0,
0.8340191841125488,
0.0,
1.0,
0.0,
1.2510287761688232,
0.0,
0.0,
1.0,
1.6680383682250977,
0.0,
0.0,
0.0,
1.0
],
"positions": [
-1.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
0.0,
1.0,
0.0
]
},
{
"frame": 10,
"worldMatrix": [
1.0,
0.0,
0.0,
2.0,
0.0,
1.0,
0.0,
3.0,
0.0,
0.0,
1.0,
4.0,
0.0,
0.0,
0.0,
1.0
],
"positions": [
-1.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
0.0,
1.0,
0.0
]
}
],
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06,
"maxMatrixError": 1e-05
}
}

View File

@@ -0,0 +1,463 @@
{
"schemaVersion": 1,
"fixture": "pose_constraint_scene.blend",
"evaluator": "Blender Depsgraph",
"blenderVersion": "5.2.0 LTS",
"armature": "PoseConstraintArmature",
"armatureObject": "PoseConstraintArmatureObject",
"mesh": "PoseConstraintMesh",
"meshObject": "PoseConstraintMeshObject",
"constraintMetadata": {
"Root": [],
"Mid": [],
"Tip": [
{
"name": "Animated Two Bone IK",
"typeCode": 3,
"influence": 0.8500000238418579,
"targetObject": "PoseIKTarget",
"poleTargetObject": "PoseIKPole"
}
],
"Auxiliary": [
{
"name": "Animated Copy Rotation",
"typeCode": 8,
"influence": 0.75,
"targetObject": "PoseConstraintTarget",
"poleTargetObject": null
}
]
},
"meshBindMatrix": [
1.1734702587127686,
0.10266533493995667,
0.22897081077098846,
0.0,
-0.08773710578680038,
0.7893940210342407,
0.09570421278476715,
0.0,
-0.19584889709949493,
-0.1517029106616974,
1.0717413425445557,
0.0,
0.3499999940395355,
-0.20000000298023224,
0.15000000596046448,
1.0
],
"armatureWorldMatrix": [
1.1724308729171753,
-0.0230442825704813,
-0.2137146294116974,
0.0,
-0.2262967824935913,
0.7929331064224243,
-0.060793690383434296,
0.0,
0.24675403535366058,
-0.01857733726501465,
1.1788033246994019,
0.0,
-0.44269758462905884,
0.40164804458618164,
0.05819297209382057,
1.0
],
"parentWorldMatrix": [
1.3350297212600708,
-0.1876261979341507,
-0.07065354287624359,
0.0,
0.09971452504396439,
0.6911433935165405,
0.04876260831952095,
0.0,
0.048290979117155075,
-0.08779516816139221,
1.145626425743103,
0.0,
-0.25,
0.30000001192092896,
0.10000000149011612,
1.0
],
"frames": [
1,
5,
10,
15
],
"samples": [
{
"frame": 1,
"bones": {
"Root": [
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
-1.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"Mid": [
0.6465966701507568,
0.12330856174230576,
-0.7527999877929688,
0.0,
-0.7334392070770264,
-0.17080646753311157,
-0.6579453349113464,
0.0,
-0.2097133994102478,
0.9775582551956177,
-0.02000356651842594,
1.0,
0.0,
0.0,
0.0,
1.0
],
"Tip": [
0.6465966105461121,
0.12330850213766098,
-0.752799928188324,
0.12330856174230576,
-0.7334391474723816,
-0.1708063930273056,
-0.6579452753067017,
-0.17080646753311157,
-0.20971333980560303,
0.9775581359863281,
-0.020003560930490494,
1.9775582551956177,
0.0,
0.0,
0.0,
1.0
],
"Auxiliary": [
1.0028157234191895,
-0.0030575841665267944,
-0.13902896642684937,
0.4999999403953552,
0.022057006135582924,
0.10253456979990005,
-1.037935733795166,
2.9802322387695312e-08,
0.002277374267578125,
1.0073148012161255,
-0.026813887059688568,
0.4999999403953552,
0.0,
0.0,
0.0,
1.0
]
},
"positions": [
-1.0115141868591309,
-1.0064418315887451,
0.0029150694608688354,
0.9901249408721924,
-1.00058114528656,
0.002200022339820862,
0.8614140748977661,
0.1457076072692871,
-0.048441365361213684,
-0.9701246023178101,
1.2946703433990479,
0.021428119391202927
]
},
{
"frame": 5,
"bones": {
"Root": [
0.9510565400123596,
0.0,
0.30901700258255005,
0.0,
0.30901700258255005,
0.0,
-0.9510565400123596,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"Mid": [
0.5904412269592285,
0.3897019028663635,
-0.7067613005638123,
0.0,
-0.7538734078407288,
-0.0463922843337059,
-0.6553797721862793,
0.0,
-0.2881910502910614,
0.9197717308998108,
0.2663939893245697,
1.0,
0.0,
0.0,
0.0,
1.0
],
"Tip": [
0.5904412269592285,
0.38970181345939636,
-0.7067614197731018,
0.3897019028663635,
-0.753873348236084,
-0.04639222472906113,
-0.6553797721862793,
-0.0463922843337059,
-0.288191020488739,
0.9197716116905212,
0.2663940489292145,
1.919771671295166,
0.0,
0.0,
0.0,
1.0
],
"Auxiliary": [
0.9209786653518677,
0.0038454681634902954,
0.28455498814582825,
0.47552821040153503,
0.6836031675338745,
0.14426854252815247,
-0.9680049419403076,
0.1545085906982422,
0.01542915403842926,
1.0089982748031616,
-0.005682461895048618,
0.4999999403953552,
0.0,
0.0,
0.0,
1.0
]
},
"positions": [
-0.42137521505355835,
-1.2344383001327515,
-0.2215910106897354,
1.3127726316452026,
-0.5777093172073364,
-0.2166823297739029,
0.5983622074127197,
0.26599109172821045,
-0.1429179459810257,
-1.1168657541275024,
1.2030558586120605,
0.15880076587200165
]
},
{
"frame": 10,
"bones": {
"Root": [
0.80901700258255,
0.0,
0.5877852439880371,
0.0,
0.5877852439880371,
0.0,
-0.80901700258255,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"Mid": [
0.44624945521354675,
0.5609570741653442,
-0.6972724795341492,
0.0,
-0.6224914789199829,
-0.365200400352478,
-0.6921945810317993,
0.0,
-0.6429356336593628,
0.7429373264312744,
0.18622039258480072,
1.0,
0.0,
0.0,
0.0,
1.0
],
"Tip": [
0.44624945521354675,
0.5609570145606995,
-0.6972724199295044,
0.5609570741653442,
-0.6224914193153381,
-0.36520031094551086,
-0.6921945214271545,
-0.365200400352478,
-0.6429355144500732,
0.7429372668266296,
0.18622039258480072,
1.7429373264312744,
0.0,
0.0,
0.0,
1.0
],
"Auxiliary": [
0.5994227528572083,
0.0053429752588272095,
0.7252438068389893,
0.40450841188430786,
1.024713158607483,
0.23126499354839325,
-0.5548027753829956,
0.29389259219169617,
-0.013448089361190796,
1.0099998712539673,
0.03861493244767189,
0.4999999701976776,
0.0,
0.0,
0.0,
1.0
]
},
"positions": [
0.1424763798713684,
-1.233801245689392,
-0.4700366258621216,
1.456402063369751,
-0.003810107707977295,
-0.3816627860069275,
0.1372920274734497,
0.6351007223129272,
-0.39300453662872314,
-1.127073884010315,
1.4290850162506104,
0.4072403311729431
]
},
{
"frame": 15,
"bones": {
"Root": [
0.6691305637359619,
0.0,
0.7431448698043823,
0.0,
0.7431448698043823,
0.0,
-0.6691305637359619,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"Mid": [
0.8269086480140686,
0.1463049352169037,
-0.5429702997207642,
0.0,
-0.33728310465812683,
-0.643563449382782,
-0.6870705485343933,
0.0,
-0.4499577581882477,
0.7512794733047485,
-0.4828220009803772,
1.0,
0.0,
0.0,
0.0,
1.0
],
"Tip": [
0.8269087076187134,
0.1463049054145813,
-0.5429702401161194,
0.1463049352169037,
-0.337283194065094,
-0.6435633897781372,
-0.6870704889297485,
-0.643563449382782,
-0.44995778799057007,
0.751279354095459,
-0.4828219413757324,
1.7512794733047485,
0.0,
0.0,
0.0,
1.0
],
"Auxiliary": [
0.3140745759010315,
-0.019401445984840393,
0.9545047283172607,
0.3345652222633362,
1.055894374847412,
0.2917781472206116,
-0.07877366989850998,
0.3715724050998688,
-0.046053022146224976,
1.0076818466186523,
0.07222378998994827,
0.4999999403953552,
0.0,
0.0,
0.0,
1.0
]
},
"positions": [
0.46974050998687744,
-1.1008014678955078,
-0.635999858379364,
1.442943811416626,
0.4380461573600769,
-0.4531611204147339,
0.5940024852752686,
1.0200916528701782,
-0.17190279066562653,
-0.9343839883804321,
1.502488374710083,
0.29514646530151367
]
}
],
"tolerance": {
"maxPositionError": 1e-05,
"rmsPositionError": 1e-06,
"maxMatrixError": 1e-05
}
}