Complete V1 performance and OOM release gates
This commit is contained in:
68
docs/WEB_BLENDER_MODELER_V1_SCOPE.md
Normal file
68
docs/WEB_BLENDER_MODELER_V1_SCOPE.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Web Blender Modeler V1 发布范围
|
||||
|
||||
更新时间:2026-08-14
|
||||
|
||||
## 1. 产品定义
|
||||
|
||||
V1 是复用 Blender 5.2 Main、文件格式和有界编辑能力的浏览器建模器,不是桌面
|
||||
Blender 的窗口、渲染器、Python 和插件体系的逐项移植。发布名称固定为
|
||||
`Web Blender Modeler V1`。
|
||||
|
||||
浏览器基线仅为 Chromium。主线程 WebGL 和 OffscreenCanvas Worker 是两个必须通过的
|
||||
生产视口路径;Firefox 和 WebKit 属于发布后的兼容性工作,不进入 V1 发布门。
|
||||
|
||||
## 2. V1 必须闭环的用户工作流
|
||||
|
||||
以下能力必须同时满足 Main 权威写回、undo/redo、原子保存、Worker 重启、重新打开和
|
||||
GLB 导出检查:
|
||||
|
||||
1. 导入和保存 `.blend`。
|
||||
2. Scene、Object、Collection、Parent 和 Transform。
|
||||
3. 有界 Mesh Object/Edit Mode 操作。
|
||||
4. 材质槽、UV、Principled PBR 和受支持的贴图节点。
|
||||
5. TRS 关键帧、Timeline、受支持的 Action/NLA 子集。
|
||||
6. Armature/Pose/Constraint/Shape Key 的已声明读取和求值子集。
|
||||
7. OPFS 项目、快照、资产和崩溃恢复。
|
||||
8. GLB 的网格、PBR、贴图、morph、skin 和动画已声明子集。
|
||||
|
||||
## 3. 发布能力分类
|
||||
|
||||
| 分类 | 发布含义 | V1 规则 |
|
||||
| --- | --- | --- |
|
||||
| `LOCAL_EXACT` | 当前 fixture 与 Blender 5.2 语义一致 | 必须有 desktop/WASM golden |
|
||||
| `LOCAL_BOUNDED` | 浏览器本地只支持白名单和显式预算 | 非白名单必须返回稳定错误码 |
|
||||
| `SERVER` | 浏览器只提供校验、提交和结果绑定协议 | 服务端未配置时必须明确阻断 |
|
||||
| `EXCLUDED` | V1 不提供且不计入本地实现承诺 | UI 不得伪造成功或静默丢数据 |
|
||||
|
||||
一个 family 可以整体为 `LOCAL_BOUNDED`,同时包含明确的 `SERVER` 或 `EXCLUDED`
|
||||
切片。发布门检查已声明的 V1 正例和阻断行为,不把桌面 Blender 全量能力误记为完成。
|
||||
|
||||
## 4. 高级能力边界
|
||||
|
||||
| 功能域 | V1 分类 | V1 提供 | V1 不承诺 |
|
||||
| --- | --- | --- | --- |
|
||||
| Non-mesh/VDB | `LOCAL_BOUNDED` | Curve/Surface/Font/Metaball、PointCloud/Curves、受限 NanoVDB WebGPU | 任意 VDB 材质、无限 GPU 驻留 |
|
||||
| Sculpt | `LOCAL_BOUNDED` | Mask/Face Set、四种有界 Main stroke | 完整 PBVH 和桌面全部笔刷 |
|
||||
| Geometry Nodes/Simulation Zone | `LOCAL_BOUNDED` | 图、资源和确定性 cache 安全层 | 任意 lazy-function/field 本地求值 |
|
||||
| Shader Nodes | `LOCAL_BOUNDED` | 已声明节点白名单和 PBR 映射 | 任意 Shader 图和通用 Web 编译器 |
|
||||
| Grease Pencil/Paint | `LOCAL_BOUNDED` | 当前 Main writer、选择、预览和保存子集 | 完整 2D 编辑器、PBVH texture paint |
|
||||
| Physics/Compositor/Sequencer | `LOCAL_BOUNDED` | reader、编辑、cache playback、有限 CPU executor | 完整 solver、节点全集和本地最终编码 |
|
||||
| Tracking/Asset/Editors | `LOCAL_BOUNDED` | 当前 schema、Main reader/writer 和安全门 | Blender 全量 editor/operator/format |
|
||||
| Cycles/复杂物理烘焙/最终视频编码 | `SERVER` | source hash、能力和结果绑定边界 | 浏览器本地等价执行 |
|
||||
| Python/Text autorun/Add-ons | `EXCLUDED` | 清单读取、默认拒绝和审计 | 执行任意代码或自动安装插件 |
|
||||
| 原生窗口/CUDA/Metal/HIP/OptiX | `EXCLUDED` | capability report | 浏览器平台等价 |
|
||||
|
||||
## 5. V1 发布门
|
||||
|
||||
发布候选必须具备以下自动证据:
|
||||
|
||||
1. P0 `import -> edit -> undo -> redo -> save -> StorageWorker/WebEngineWorker restart -> reopen -> GLB export`。
|
||||
2. Chromium 主线程和 OffscreenCanvas 视口非空像素。
|
||||
3. 100k、1M 和 10M geometry 的有界性能/内存结果。
|
||||
4. 4K/8K texture、长时间线/媒体能力门和 simulation cache。
|
||||
5. OOM 注入、device loss、network interruption、quota、malformed input 和 zip bomb 恢复。
|
||||
6. 离线资源、确定性二进制/源码包、许可证、SBOM 和 source offer。
|
||||
7. `docs/status/parity-ledger.json`、release evidence 和状态文档完全一致。
|
||||
|
||||
任何测试只能证明其命名的有界切片;不得用协议测试代替真实 Blender Main、GPU、OPFS 或
|
||||
desktop golden。
|
||||
Reference in New Issue
Block a user