Skip to main content

AEROSIM-TS-36

Project task

Implement reproducible glTF and GLB optimization

Supported source assets are converted or optimized to deterministic runtime glTF/GLB artifacts with measured budget metadata.

AEROSIM-TS-36Canonical ID TASK-0036
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
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

Requirements

Dependencies

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.