# Runtime scene assets

These are derivatives of the project's existing attributed assets, generated by
`scripts/prepare-runtime-assets.py` and `scripts/pack-runtime-assets.mjs`.
Original files and notices remain in `assets/interior/curated`,
`assets/interior/surfaces` and `assets/pets`.

- Furniture textures are resized from 512 to at most 256 pixels and encoded as
  WebP, quality 85. Floor maps are limited to 512 pixels. These texture changes
  are lossy; the mesh geometry is not simplified or quantized.
- Unused cabinet animations and unused dog clips are removed. The dog retains
  Idle, Idle_2_HeadLow and Eating, with unchanged sampled animation values.
- Where smaller, lossless meshopt encoding reorders vertices and triangles.
  The packing script verifies every triangle's attributes (including winding)
  and every retained animation sampler after decoding. It retains ordinary GLB
  encoding when that transfers fewer gzip bytes.
- Gzip files are application-level compression; ordinary GLB counterparts are
  retained as transfer fallbacks. Meshopt decoding uses meshoptimizer 0.25.0,
  MIT, with the notice at `../../vendor/meshoptimizer-LICENSE.md`.
- `manifest.json` records source/runtime hashes, sizes and retained clips.
- `scene-desktop.webp` and `scene-mobile.webp` are stills of this same scene,
  captured at its opening pose. They appear while the interactive scene loads.

Source attribution: `../interior/curated/provenance.json`,
`../interior/curated/SOURCE.md`, and `../pets/SOURCE.md`. These derivatives do not change
the underlying licenses or authorship.
