docs(simulation): record collision publication contract
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user