feat(simulation): add Gaussian UGV runtime pipeline
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# Simulation Worlds — product-surface brief
|
||||
|
||||
Status: accepted for the first working vertical slice on 2026-08-26.
|
||||
Status: accepted for the first working vertical slice on 2026-08-26; visual/physical stage boundary
|
||||
revised on 2026-08-27.
|
||||
|
||||
## Job story
|
||||
|
||||
@@ -57,8 +58,12 @@ Mission Core backend
|
||||
DC Gaussian Pipeline
|
||||
├─ TUS bundle or archive admission
|
||||
├─ secure ZIP/RAR/7z normalization
|
||||
├─ native Vulkan SplatTransform build on Worker 006
|
||||
└─ bounded collision simplification + mandatory Draco publication
|
||||
└─ native Vulkan SplatTransform visual build on Worker 006
|
||||
|
||||
Optional physical-mesh pipeline (separate job; experimental)
|
||||
├─ source-mesh discovery or explicit mesh generation
|
||||
├─ physics-oriented cleanup and geometry budget
|
||||
└─ compressed, digest-bound publication
|
||||
```
|
||||
|
||||
The browser never receives the Worker token. Mission Core does not embed archive-format behavior
|
||||
@@ -76,13 +81,18 @@ SplatTransform GPU command through a confined filesystem spool to the pinned nat
|
||||
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.
|
||||
Project processing is split at a durable product boundary. The mandatory first job builds only the
|
||||
preview and streamed Gaussian assets required for visual inspection. It never generates collision
|
||||
geometry, so a location can reach `ready` without paying the time, GPU-memory and storage cost of a
|
||||
physical mesh.
|
||||
|
||||
Physical geometry is an optional second job started only after the visual world is ready. Its first
|
||||
candidate source is a mesh already present in the uploaded export (for example a PLY in
|
||||
`Mesh_Files`); generation from the Gaussian cloud is a fallback experiment, not the default path.
|
||||
The second-stage contract, cleanup method and acceptance gates are intentionally separate from the
|
||||
visual build. When that stage publishes a GLB, simplification still controls decoded physics cost
|
||||
and Draco controls transfer/storage bytes; compression is not treated as a replacement for a
|
||||
physics mesh budget.
|
||||
|
||||
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
|
||||
@@ -105,7 +115,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;
|
||||
- the mandatory build requests preview and streamed Gaussian outputs with collision disabled;
|
||||
- a visual project reaches ready state without a collision artifact;
|
||||
- physical mesh preparation is a separate explicit job and never blocks visual inspection;
|
||||
- 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;
|
||||
|
||||
Reference in New Issue
Block a user