Blacksite/docs/editor/evaluations/fbx-external-texture-dependencies
Rbanh 931f561e7f
Some checks failed
CI / Format, lint, test, build (push) Has been cancelled
Document FBX dependency acceptance
2026-07-13 14:08:25 -04:00
..
README.md Document FBX dependency acceptance 2026-07-13 14:08:25 -04:00

FBX External Texture Dependency Evaluation

Date: 2026-07-13

Issue: Gitea #58

Implementation commit: 3e30c61c71fc942c33635aae3d922b70401fe7c7

Release-candidate commit: Not nominated

Source validation: Pass

Native acceptance: Pass

This record covers path-safe FBX texture discovery, transactional bundle import, labeled runtime images, static-mesh dependency publication, read-only project validation, and stable Asset Browser states. The permanent contract is owned by ADR 0044.

Automated Verification

Command or suite Result Evidence
cargo fmt --all -- --check Pass Formatting completed without changes.
git diff --check Pass No whitespace errors.
cargo clippy --workspace --all-targets -- -D warnings Pass Every workspace target completed with warnings denied.
cargo test --workspace --all-targets Pass All workspace targets passed. Editor reported 309 passing tests; scene reported 103 passing tests and one ignored manual migration test.
FBX dependency/import regressions Pass Six focused tests cover the committed chair, sibling textures/, .fbm/, missing bundles, parent traversal, and destination symlink containment. Thumbnail regressions cover terminal missing-texture state and first-render pipeline warmup.
cargo validate-levels --project . Pass 84 dependencies, six known nonblocking findings, zero blocking errors. The chair contributes one informational Authoring Override finding.
cargo validate-samples --project . Pass Five samples, 89 dependencies, the same six nonblocking findings, zero blocking errors.
Controlled Source Materials validation Pass Changing only the chair registry and static-manifest policies on top of 3e30c61 produced one import.external_texture_missing blocker for all three paths, then restoration returned to zero blockers.
Packaged acceptance Deferred Explicitly deferred by project-owner direction; no packaged result is claimed.

Native Acceptance

The exact debug binary built from 3e30c61 was launched as target/debug/editor --project . under native Hyprland Wayland.

Workflow Result Evidence
First model-folder visit Pass The painted-chair model rendered on the first visit without manual thumbnail regeneration; the first offscreen PBR capture remained active through render-pipeline warmup.
Deliberately normalized chair Pass Selecting the committed Authoring Override chair showed one 3 missing | override dependency state and all three paths. Its mesh preview rendered neutrally, while source-material and missing-texture subassets settled to terminal warning icons instead of indefinite spinners.
Runtime log Pass The exact committed run emitted no stdout/stderr output, including no bevy_asset, bevy_ufbx, or path-not-found errors, and exited with code 0.
Checkout stability Pass Native startup, model browsing, thumbnail generation, and exit left git status --short empty.
Controlled broken fixture Pass On top of 3e30c61, only the two chair material_policy fields were changed to SourceMaterials. The editor showed Source Materials, one red 3 missing state, and terminal warning subassets. No asset/FBX/path error appeared; only two unrelated egui multi-pass layout warnings occurred at startup.
Fixture restoration Pass The two policy fields were restored to Authoring Override, git status --short returned empty, and validate-levels returned to zero blockers.

Native Evidence

Authoring Override chair with a first-pass mesh thumbnail, terminal subasset warnings, and one visible dependency state

  • Gitea attachment asset 43: blacksite-issue58-chair-normalized-3e30c61.png, 1426x3384 RGB PNG, 1,802,863 bytes.
  • SHA-256: e492082f7eb3314bed6c97d424bc2281b125849552997f12931013a8e50630f2.

Controlled Source Materials fixture with three missing dependencies and terminal warning subassets

  • Gitea attachment asset 44: blacksite-issue58-chair-broken-source-materials-3e30c61.png, 1426x3384 RGB PNG, 2,042,528 bytes.
  • SHA-256: 759297276287a05bf678ea72e26159d5cb4613d917db447a1cbc1efa562fc831.

Both images are ordinary Gitea issue attachments. This record does not use repository raw or Git LFS pointer URLs. A direct header check returned HTTP 200, Content-Type: image/png, inline content disposition, and the recorded byte length for each attachment.

Release Use

The #58 source and native feature-level acceptance record is complete. A future production candidate must rerun representative sibling-folder and .fbm imports, the deliberate override case, and the broken Source Materials case from the exact nominated commit. This record does not nominate a candidate or establish production readiness.