feat(simulation): auto-build source mesh collision
This commit is contained in:
@@ -58,12 +58,10 @@ Mission Core backend
|
||||
DC Gaussian Pipeline
|
||||
├─ TUS bundle or archive admission
|
||||
├─ secure ZIP/RAR/7z normalization
|
||||
└─ 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
|
||||
├─ native Vulkan SplatTransform visual build on Worker 006
|
||||
└─ optional Mesh_Files/*.ply source-collision path
|
||||
├─ conservative small-hole repair and topology audit
|
||||
└─ mandatory Draco, digest-bound publication
|
||||
```
|
||||
|
||||
The browser never receives the Worker token. Mission Core does not embed archive-format behavior
|
||||
@@ -81,18 +79,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.
|
||||
|
||||
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.
|
||||
Project processing never generates collision geometry from Gaussian data by default. When the
|
||||
normalized source contains exactly one PLY below `Mesh_Files`, the same queued build automatically
|
||||
selects the provider's `source` collision profile. The original indexed mesh is retained; only
|
||||
strictly admitted small internal boundary loops on approximately planar Z-up surfaces receive new
|
||||
triangles. Vertices and existing faces are never moved, welded, smoothed, simplified or remeshed.
|
||||
The derived GLB then passes the mandatory Draco publication gate and carries a separate repair
|
||||
report. A source with no admitted PLY remains visual-only and still reaches `ready` normally.
|
||||
|
||||
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.
|
||||
The conservative repair rejects outer borders, branched boundaries, large or non-planar loops,
|
||||
vertical openings, mixed orientation and failed/self-intersecting triangulations. Ambiguous holes
|
||||
remain open and are counted in the report instead of being silently capped. Explicit mesh
|
||||
generation from Gaussian data remains a later experiment, not a fallback in this ingestion path.
|
||||
|
||||
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
|
||||
@@ -115,9 +113,10 @@ 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;
|
||||
- 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;
|
||||
- the build always requests preview and streamed Gaussian outputs;
|
||||
- exactly one `Mesh_Files/*.ply` automatically selects repaired source-mesh collision plus Draco;
|
||||
- archives without that mesh remain visual-only and reach ready without a collision artifact;
|
||||
- generated Gaussian/voxel collision is never used as an implicit fallback;
|
||||
- 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