Appearance: implement baking, texture pipeline, and initial outfit #66

Closed
opened 2026-08-08 08:20:48 +00:00 by hugo · 1 comment
Owner

Objective

Implement baking inputs/layers, cached bakes, server/local baking decisions, texture compositing/upload, appearance packets, rebake, initial outfit copy/setup, and progress.

Deliverables

  • Preserve visual parameters, wearable assets, texture indices, bake hashes, channel composition, cache checks, upload sequencing, and cancellation.
  • Use imaging codecs behind the abstraction and bounded concurrency.
  • Keep generated visual/skeleton data as the source of truth.

Validation

  • Baker/AppearanceManager/initial-outfit tests pass with original pixels/hashes/events.
  • Failure/cancellation leaves a recoverable outfit state.
  • No live grid is required for parity tests.

Prerequisite

Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.

Project constraints

  • New native Rust behavior only; no bridge or C# fallback.
  • Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them.
  • Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
## Objective Implement baking inputs/layers, cached bakes, server/local baking decisions, texture compositing/upload, appearance packets, rebake, initial outfit copy/setup, and progress. ## Deliverables - Preserve visual parameters, wearable assets, texture indices, bake hashes, channel composition, cache checks, upload sequencing, and cancellation. - Use imaging codecs behind the abstraction and bounded concurrency. - Keep generated visual/skeleton data as the source of truth. ## Validation - Baker/AppearanceManager/initial-outfit tests pass with original pixels/hashes/events. - Failure/cancellation leaves a recoverable outfit state. - No live grid is required for parity tests. ## Prerequisite Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed. ## Project constraints - New native Rust behavior only; no bridge or C# fallback. - Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them. - Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
hugo added this to the 09 - World vertical slices milestone 2026-08-08 08:20:48 +00:00
hugo added the enhancement label 2026-08-08 08:20:48 +00:00
Author
Owner

Implemented in b1f60db. Added the native 11-target Baker and decoded texture provider, wearable parameter/texture parsing, exact bake hashes and texture-entry/visual-parameter packet construction, cached/local/server baking with bounded download/upload concurrency, rebake and legacy wearable packet handling, cancellation and rollback, plus transactional initial-outfit copy/application with progress and compensation. Wired the native public API mappings, docs, coverage audit, parity metadata, and Ubuntu Gitea checks. Verified: cargo check --workspace --locked; cargo check -p libremetaverse --no-default-features --locked; 18 focused appearance tests; 4 initial-outfit tests; 34 appearance compatibility tests; 4 generated-catalog tests; API compile fixture; generator/check/API coverage gates; test parity with 0 pending/drifted/unreviewed; and strict clippy for the library and appearance compatibility target.

Implemented in b1f60db. Added the native 11-target Baker and decoded texture provider, wearable parameter/texture parsing, exact bake hashes and texture-entry/visual-parameter packet construction, cached/local/server baking with bounded download/upload concurrency, rebake and legacy wearable packet handling, cancellation and rollback, plus transactional initial-outfit copy/application with progress and compensation. Wired the native public API mappings, docs, coverage audit, parity metadata, and Ubuntu Gitea checks. Verified: cargo check --workspace --locked; cargo check -p libremetaverse --no-default-features --locked; 18 focused appearance tests; 4 initial-outfit tests; 34 appearance compatibility tests; 4 generated-catalog tests; API compile fixture; generator/check/API coverage gates; test parity with 0 pending/drifted/unreviewed; and strict clippy for the library and appearance compatibility target.
hugo closed this issue 2026-08-10 10:34:18 +00:00
Sign in to join this conversation.