docs(simulation): record collision publication contract

This commit is contained in:
DCCONSTRUCTIONS
2026-08-26 15:21:22 +03:00
parent a65ae9c285
commit 4bcc35c1a0
+21 -7
View File
@@ -57,7 +57,8 @@ Mission Core backend
DC Gaussian Pipeline
├─ TUS bundle or archive admission
├─ secure ZIP/RAR/7z normalization
└─ SplatTransform build on Worker 006
├─ native Vulkan SplatTransform build on Worker 006
└─ bounded collision simplification + mandatory Draco publication
```
The browser never receives the Worker token. Mission Core does not embed archive-format behavior
@@ -70,10 +71,22 @@ Mission Core pins the direct `playcanvas` package. `PlayCanvasRuntime` owns one
camera controls, GSplat asset lifecycle and later physical/debug entities. React owns no per-frame
entity state. A new world is data and does not require a new frontend build.
The first Worker 006 provider is CPU-only and therefore does not advertise collision outputs. The
UI disables collision/combined modes and states this explicitly; it does not synthesize a proxy.
The manifest already keeps visual and collision URLs and their independent world transforms so the
GPU collision build can be admitted without changing the project surface.
Worker 006 runs the portable API in its own read-only Docker composition and delegates only the
SplatTransform GPU command through a confined filesystem spool to the pinned native Vulkan runtime
on the RTX 4090. It does not install into or share the Python, CUDA, Triton or computer-vision
environments on the host.
Collision publication is deliberately two-stage. SplatTransform generates smooth collision and
SVO query data at a scene-type voxel size (`0.2 m` outdoors, `0.1 m` indoors/objects). The isolated
pipeline container then bounds the debug/physics mesh to a default 250,000-triangle target and
always writes `KHR_draco_mesh_compression` before the artifact digest is sealed. Simplification
controls decoded geometry cost; Draco controls transfer and stored bytes and is never treated as a
replacement for a physics mesh budget. The browser loads the result through a pinned local Draco
WASM decoder with no external decoder request.
Visual and collision layers retain independent X/Y/Z correction settings, while PlayCanvas world,
camera, navigation and future physics stay in the canonical Y-up coordinate system. Quality, both
layer transforms and camera-axis inversion are persisted atomically in each project's metadata.
Primary implementation references:
@@ -92,8 +105,9 @@ Primary implementation references:
- encrypted, linked, traversing, duplicate and over-limit archive entries fail closed;
- project status is durable and reflects provider state without fabricated percentages;
- ready artifacts are imported digest-bound and served from Mission Core same-origin URLs;
- every published collision GLB is simplified to the configured budget and requires Draco;
- edit changes project metadata; delete removes both the Mission Core project and terminal provider
job;
- a ready project mounts direct PlayCanvas Engine and loads Streamed SOG with preview fallback;
- visual, collision and combined remain distinct runtime modes even when collision is not yet
available on the CPU provider.
- visual, collision and combined remain distinct runtime modes, and collision is loaded lazily;
- viewer quality, layer-axis correction and camera inversion survive navigation and reload.