diff --git a/three.js/demos/04-skinned-fbx.html b/three.js/demos/04-skinned-fbx.html index 8353c015..8c186b97 100644 --- a/three.js/demos/04-skinned-fbx.html +++ b/three.js/demos/04-skinned-fbx.html @@ -572,9 +572,59 @@ const txt = document.querySelector('#loading .text'); if (txt) txt.textContent = `▸ Loading skinned subject · X Bot.fbx · ${pct} %`; }, (err) => { - console.error('FBX load failed', err); - const txt = document.querySelector('#loading .text'); - if (txt) txt.textContent = '⚠ Load failed — see console'; + // Graceful degradation: when the FBX 404s on gh-pages (Mixamo + // X Bot.fbx is gitignored — license boundary, not redistributed) + // we hide the spinner and show a friendly banner explaining how + // to run this demo locally with your own Mixamo download. + // Local development with assets/X Bot.fbx present hits the + // success branch above and never sees this UI. + console.warn('FBX load failed — showing fallback banner', err); + const loading = document.getElementById('loading'); + if (loading) { + loading.innerHTML = ` +
X Bot.fbx
+ from Mixamo, which is intentionally not redistributed here (license boundary).
+ The ADR-097 helpers scene (grid / axes / per-node CSI boxes) is rendering behind this card —
+ click outside to interact with it.
+ X Bot.fbx (FBX Binary · T-Pose · Without Skin)
+ from mixamo.com
+ into examples/three.js/assets/, then run
+ python examples/three.js/server/serve-demo.py.
+ X Bot.fbx,
+ which Mixamo licenses for direct download by end users and is intentionally not
+ redistributed here. The ADR-097 helpers scene is still rendering behind this card.
+ X Bot.fbx (FBX Binary · T-Pose · Without Skin)
+ from mixamo.com,
+ drop it in examples/three.js/assets/, then
+ python examples/three.js/server/serve-demo.py.
+