# Web Blender Modeler V1 Known Limitations These limits apply to `0.1.0-rc.1`. A successful bounded gate does not imply complete Blender 5.2 parity or support beyond the declared operation, fixture, resource budget and browser configuration. See [V1_SCOPE.md](V1_SCOPE.md) and [parity-ledger.json](parity-ledger.json) for the authoritative capability boundary. ## Browser and deployment - Chromium is the only V1 browser baseline. Firefox, WebKit, mobile browsers, touch, pen, IME and non-Chromium accessibility compatibility are not release claims. - Production requires HTTPS. `http://127.0.0.1` is allowed for local verification; public plain HTTP and `file://` are unsupported. All app, Worker and engine assets must remain same-origin. - The base viewport uses WebGL2. OffscreenCanvas is a second tested production path. WebGPU is used only for the declared bounded NanoVDB path and is subject to adapter availability and limits. ## Single-thread and pthread selection - `AUTO` selects pthread only when `crossOriginIsolated`, `SharedArrayBuffer` and Worker capability gates are all ready. Otherwise it selects the single-thread variant and reports the pthread gate. - A pthread initialization failure under `AUTO` is cleaned up before one single-thread attempt. A resource request failure outside this path remains an error. - A JS, WASM or pthread Worker SHA-256 mismatch is fatal (`ENGINE_VARIANT_INTEGRITY_FAILED`): there is no integrity fallback and no project is opened. - `PTHREAD_REQUIRED` blocks when its platform gate is not ready. `SINGLE_REQUIRED` never attempts pthread. A mixed app/manifest `releaseId` returns `REFRESH_REQUIRED` before engine initialization or project open; a full reload is required. - Both variants declare 256 initial WebAssembly pages (16 MiB) and a 32,768-page ceiling (2 GiB). This is a manifest ceiling, not a memory reservation or availability guarantee; Chromium, the OS or the device can reject growth earlier. ## Project storage - OPFS and IndexedDB are bound to the exact scheme, host and port. Moving between origins does not migrate projects. Clearing site data or a browser profile deletes locally stored projects and caches. - Chromium and the operating system control quota. V1 reserves no minimum capacity and cannot infer that `navigator.storage.estimate()` free space will remain available through a save. - Atomic save preserves the last committed revision on quota failure, but the new revision is not durable until save succeeds. Export critical projects before upgrades and before deleting caches. - IndexedDB schema migration is forward-only. OPFS project manifest schema has no general reverse migration. An older app is blocked when it cannot read the current schema. ## CPU, WASM and GPU budgets - The RC gates cover 100k, 1M and 10M geometry fixtures; they are not an unlimited scene-size claim. Imports and operations can block earlier when their own vertex, element, transfer, time or memory budgets are exceeded. - A texture asset is limited by protocol to 64 MiB, 16,384 pixels per dimension and 256 requested assets per scene. The actual WebGL `MAX_TEXTURE_SIZE`, address space and GPU memory may be lower. The release gate exercised 4K and 8K textures, not every format or 16K residency combination. - VDB input is bounded to 512 MiB, a NanoVDB bundle to 1 GiB, each chunk to 16 MiB and declared GPU residency to at most 512 MiB. Actual `maxStorageBufferBindingSize` and `maxBufferSize` may be lower. - NanoVDB pages are explicit and LRU-bounded. Automatic viewport page-fault feedback, depth-composed production demand paging and an unbounded multi-grid material system are not included in V1. - GPU device loss or budget failure releases and recreates viewport resources where supported; it does not modify Blender Main or OPFS project bytes. A reduced scene or budget may still be required. ## Blender feature scope Complete PBVH sculpt/paint, arbitrary Geometry Nodes and Shader evaluation, full physics solvers, Cycles, final video encoding, Python/Text autorun, add-ons and native GPU backends are either bounded, server-only or excluded. The exact family slices and stable blockers are in [parity-ledger.json](parity-ledger.json); unsupported data must be preserved or explicitly blocked, not reported as executed. Use [DEPLOYMENT.md](DEPLOYMENT.md) for installation and rollback requirements, and [operations-diagnostics.json](operations-diagnostics.json) for stable failure signals and data-safe recovery boundaries.