AEROSIM-TS-36
Implement reproducible glTF and GLB optimization
Supported source assets are converted or optimized to deterministic runtime glTF/GLB artifacts with measured budget metadata.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-48
- Component
- Web Application / R3F flight scene — Shared asset pipeline — glTF/GLB optimizer
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Run a pinned glTF-Transform pipeline for registered .gltf and .glb sources, applying dedup, prune, quantize, and texture resize settings, write a canonical GLB path, calculate SHA-256/byte/triangle/vertex/texture metrics, and update only generated manifest fields. Primary files: packages/assets/src/optimize-gltf.ts, packages/assets/gltf-transform.config.mjs, packages/assets/scripts/optimize-assets.mjs, packages/assets/tests/optimize-gltf.test.ts.
Implementation contract
Implementation artifacts
- packages/assets/src/optimize-gltf.ts
- packages/assets/gltf-transform.config.mjs
- packages/assets/scripts/optimize-assets.mjs
- packages/assets/tests/optimize-gltf.test.ts
Inputs
- Manifest sourcePath/sourceSha256 and immutable source .gltf or .glb bytes
- Pinned glTF-Transform version and optimization options from gltf-transform.config.mjs
Outputs
- assets/runtime/<assetId>.glb and its SHA-256 digest
- Generated optimization and measured metric fields in the asset manifest
Failure boundaries
- Abort without replacing the prior runtime artifact when source hash mismatches, parsing fails, external resources are missing, or optimizer exits non-zero.
- Reject source extensions other than .gltf and .glb and any output containing unresolved external buffers or textures.
Excluded scope
- FBX/OBJ conversion, manual mesh repair, animation retargeting, and lossy changes outside the pinned profile are excluded.
Verification steps
- pnpm --filter @aerosim/assets optimize -- representative-aircraft
- Run optimization twice from the same source; compare runtime SHA-256 and generated manifest fields byte-for-byte.
Traceability
Dependencies
- AEROSIM-TS-35Canonical ID: TASK-0035
UI/UX applicability
non_visual
This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.
Acceptance evidence
Verified delivery: application PR #45 reviewed head 9dde201f4bf353fe07c76de1d15a6a0f8f6e862a, exact-head validation task 1906 succeeded, merged as 85ffbab3c00f0b5c5896e3ffec0e6d6c4f61aed1; Wave 8 integrated application head a3e4429a9970241b278a4f64aa7c6541c74e63a8 passed publish task 1916 and validate task 1917. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.
Current evidence boundary
No current implementation, acceptance, release, or deployment evidence is claimed for this planned Task. Any prior implementation may be used only as prototype and discovery evidence.