1.8 KiB
1.8 KiB
N-018 Physics 与 Simulation
状态:BLOCKED(family capability、settings/dependency/cache manifest 与错误帧门已落地;
cache playback、WASM solver 和 bake job 未实现)
已验证切片
- N-018-A:Rigid Body、Soft Body、Cloth、Fluid、Dynamic Paint、Particle、Hair
使用固定枚举能力清单;metadata/cache manifest 为
LOCAL_BOUNDED,cache playback、 local solver、server job 均保持BLOCKED。 - N-018-B(部分):
PhysicsSimulationManifestIR绑定 owner Object、settings SHA-256、 有界设置摘要、依赖 stable ID 和 desktop bake cache;系统依赖环、重复依赖和超预算拒绝。 - N-018-C(门):cache 绑定 source blend/settings/input/cache SHA-256、帧范围和实际已缓存帧;
COMPLETE必须逐帧连续,frame seek 只返回精确命中帧,禁止复用相邻错误帧。 - Simulation cache 在 Worker restart 后重新验证整包;帧级读取在 OPFS 使用目标 range、
IndexedDB 使用有界 slice,并再次校验该帧 SHA-256,越界帧返回
SIMULATION_CACHE_MISSING。 - 单 manifest 上限 4096 systems、每系统 1024 dependencies、256 settings/64 KiB、 100k frames;单帧 512 MiB、整包 16 GiB,分配和 range 计算前检查安全整数及预算。
仍然阻断
- N-018-A/B:从真实 Main 提取完整 family settings、collection/effector/collision 依赖。
- N-018-C:desktop bake payload 的 family decoder、depsgraph frame playback 和 100 帧 golden。
- N-018-D:逐 family WASM solver 初始化、线程、内存和确定性验证。
- N-018-E:bake start/cancel/commit、服务端 job、故障恢复、进度与 UI。
验收
WEB_TEST_PORT=5204 npm --prefix web run test:e2e -- --grep "N-018 physics"
npm --prefix web run test:simulation-cache