{ "schemaVersion": 1, "updatedAt": "2026-08-12", "source": "docs/BLENDER_5_2_WEB_FEATURE_PARITY.md", "statusEnum": ["LOCAL_EXACT", "LOCAL_BOUNDED", "SERVER", "BLOCKED"], "families": [ { "id": "N-015", "name": "Non-mesh geometry", "status": "LOCAL_BOUNDED", "roadmapStatus": "in_progress", "completedSlices": ["A1", "A2-malformed-binary-partial", "A2-integer-overflow-fixtures", "A2-multichunk-attribute-completeness", "B2", "B3-metadata", "C1-topology-partial", "C1-handle-points-partial", "C1-handle-preview-raycast-partial", "C1-handle-identity-gizmo-main-roundtrip", "C1-multi-handle-selection-highlight-bounded-commit", "C1-rename-partial", "C1-create-delete-poly-partial", "C1-poly-bezier-nurbs-1d-conversion", "C1-multispline-create-delete-bulk-handle-cyclic-transaction", "C1-surface-2d-topology-transaction", "C2-font-geometry-partial", "C2-font-layout-partial", "C2-font-character-style-textbox-roundtrip", "C2-existing-packed-vfont-style-links", "C2-builtin-font-evaluation-exact", "C3-roundtrip", "D1-raycast-partial", "D1-offscreen-vert-edge-partial", "D1-selection-history-partial", "D1-cross-object-history-range-patch", "D1-handle-identity-axis-gizmo", "D2-partial", "E1-partial", "E1-desktop-geometry-golden", "E1-true-2d-surface-desktop-golden", "E1-glb-evaluated-nonmesh-roundtrip-partial", "E1-glb-curve-line-surface-mesh-evaluated", "E1-usda-four-object-desktop-roundtrip", "E1-pointcloud-curves-hair-glb-usd-loss-fixture", "E2-1M-chromium", "E2-chromium-worker-recovery", "E2-opfs-quota-chromium"], "blockedSlices": ["B3-vdb-renderer", "C1-continuous-handle-gizmo-preview", "C2-new-external-font-import", "E1-volume-loss-fixture"], "acceptance": ["web:test:nonmesh-roundtrip", "web:test:nonmesh-desktop-golden", "web:test:nonmesh-glb-blender-roundtrip", "web:test:nonmesh-usd-serialization", "web:test:nonmesh-usd-blender-roundtrip", "web:test:nonmesh-binary", "web:test:vdb", "web:test:selection-history", "web:e2e:N-015|non-mesh", "web:e2e:real OPFS quota"], "dependencies": [] }, { "id": "N-016", "name": "Grease Pencil", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-schema-budget", "A-main-reader", "B-layer-frame-stroke-transaction-partial", "C-point-radius-opacity-color-cyclic-material-partial", "C-bounded-previous-next-onion-preview", "D-current-frame-stroke-preview-main-offscreen-chromium"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:test:grease-pencil", "web:e2e:N-016 Grease Pencil"], "dependencies": ["N-015"] }, { "id": "N-017", "name": "Paint and weights", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-stroke-hit-weight-schema-budget-partial", "A-three-raycast-source-face-barycentric-uv", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:test:paint-roundtrip", "web:e2e:N-017 paint"], "dependencies": ["N-016"] }, { "id": "N-018", "name": "Physics and simulation", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-family-capability-inventory", "B-settings-dependency-cache-manifest-partial", "C-exact-frame-selection-gate", "C-content-addressed-frame-range-read-hash-gate"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:e2e:N-018 physics", "web:test:simulation-cache"], "dependencies": ["N-017"] }, { "id": "N-019", "name": "Lighting and render", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-camera-light-world-scene-reader-partial", "A-main-camera-dof-properties-partial", "A-main-light-world-properties-partial", "B-three-exposure-shadow-mapping-partial", "A-white-balance-integrity-gate"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:test:lighting-roundtrip", "web:e2e:N-019 Scene exposure"], "dependencies": ["N-018"] }, { "id": "N-020", "name": "Compositor", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-graph-resource-cycle-schema", "A-main-graph-structure-reader-partial", "B-bounded-cpu-executor-partial", "C-image-operation-budget-cancel-partial", "D-unsupported-node-preservation-gate"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:test:compositor-main-reader", "web:e2e:N-020 CPU compositor"], "dependencies": ["N-019"] }, { "id": "N-021", "name": "Sequencer and audio", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-strip-resource-schema", "A-main-strip-timeline-reader-partial", "B-deterministic-move-trim-split-partial", "B-source-frame-seek", "C-runtime-codec-probe-gate"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:test:sequencer-main-reader", "web:e2e:N-021 sequencer"], "dependencies": ["N-020"] }, { "id": "N-022", "name": "Tracking and masks", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-clip-track-plane-mask-schema", "A-main-mask-layer-spline-point-reader", "B-revision-marker-mask-edit-partial", "B-source-hash-binding-validation", "C-browser-probe-solve-gate"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:test:mask-main-reader", "web:e2e:N-022 tracking"], "dependencies": ["N-021"] }, { "id": "N-023", "name": "Assets, libraries and IO", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-catalog-asset-license-source-schema", "A-content-addressed-opfs-capability", "B-library-dependency-order-partial", "C-glb-export-usd-analysis-gates", "E-archive-path-ratio-budget"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:e2e:N-023 asset"], "dependencies": ["N-022"] }, { "id": "N-024", "name": "Editors and workflow", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-unified-area-region-context", "B-read-only-editor-manifest-partial", "C-selection-sync-revision-partial", "D-keymap-layout-budget-gates"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:e2e:N-024 editor"], "dependencies": ["N-023"] }, { "id": "N-025", "name": "Scripting and platform", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-default-deny-script-policy", "B-signed-manifest-permission-budget", "C-server-source-hash-job-gate", "D-platform-capability-report"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:e2e:N-025 script"], "dependencies": ["N-024"] }, { "id": "N-026", "name": "Release gate", "status": "BLOCKED", "roadmapStatus": "planned", "completedSlices": ["A-machine-readable-parity-manifest", "A-dependency-status-validation", "B-chromium-runtime-evidence-gate", "B-chromium-smoke-partial", "C-performance-fault-provenance-gate", "C-performance-1M-malicious-input-partial", "C-release-package-notices-partial", "D-deterministic-manifest-serialization", "D-offline-reproducible-source-archive-partial"], "blockedSlices": ["A", "B", "C", "D", "E"], "acceptance": ["web:e2e:N-026 release", "web:test:browser-smoke", "web:test:release-package", "web:release:offline", "web:test:release-performance", "web:test:malicious-blends"], "dependencies": ["N-015", "N-016", "N-017", "N-018", "N-019", "N-020", "N-021", "N-022", "N-023", "N-024", "N-025"] } ] }