# W-CREATURES: rigged creature library

**Blocked on you:** nothing for this asset delivery. Connecting it to games is a separate, unperformed task.

**What changed:** prepared 24 catalog-ready creatures, including a realistic wolf, plus five separately held-back flyers, without changing any live game or service.

**Status at 17 Oct 2026 20:03 CET:** files and runtime-loading checks complete; this is an asset handoff, not a deployed game update.

## Delivered

[Whole library](contact_sheet.png) | [Matched wolf comparison](wolf-comparison.png) | [Wolf head close-ups](wolf-head.png)

- Canonical folder: `gex44:/opt/creature-lib-20261017/`.
- `catalog_entries.json`: 24 exact-shape entries, 23 toon and one realistic; every entry has idle, walk, run, attack, hit and die.
- `glb/`: 29 final GLBs. Main catalog entries name 24 of them. Five flyers are excluded from the main catalog rather than given invented speeds.
- `held_back_flyers.json`: explicit incomplete candidates, not a catalog to import unchanged.
- `renders/`: one three-quarter hero and five-row clip strip per final model, all made by reloading the final GLB in Three.js.
- `contact_sheet.png`: all 29 models, including the five marked held-back in this report.
- Wolf proof: `renders/wolf-comparison-side-by-side.png`, `renders/wolf-head-side-by-side.png`, `renders/enemy-wolf-realistic-walk.png`, and moving-ground walk videos for both wolves.
- Scripts: committed under `tools/creatures/` in the worker worktree. The README gives the reproduction order.

## Evidence and limits

| Check | Actual result |
|---|---|
| Independent Node GLTFLoader + AnimationMixer | 29 files, 169 clips, 61 poses per clip, zero errors; embedded images decoded too |
| Browser Three.js load and rendering | 29 files, all clips, zero errors; software WebGL, not a GPU performance test |
| Independent GLB geometry audit | 29 files, zero findings, no external image links, one skin each, no duplicate primitives |
| File budget | Largest 1.222 MB, below 1.5 MB |
| Triangle budget | 3,200 to 15,912 triangles |
| Skin weights | At most four per vertex, normalized |
| Frame and scale | glTF Y-up, metres, forward +Z; idle ground bounds checked; final height measured |
| Gait speeds | Measured from final foot-contact travel and stance time, not guessed from height |
| Contact correction | Authored clips retained; stance positions corrected, leg joints solved and baked |
| Contact marker line-fit error | At most 0.000000 m across measured full-contact markers |
| Remaining sampled toe/skin ground crossing | Worst 1.63 cm; not a claim of mathematically perfect every-vertex foot lock |
| Visual review | Every final hero and all eight final clip sheets opened and judged; both wolf heads and side walk also inspected full size |

Use each speed at animation playback speed 1. If the game moves faster, scale animation playback by `actual_speed / catalog_speed`. Uniform model scaling must scale movement speeds too. Flat-ground contact correction does not replace slope-aware foot placement in a game.

Some Quaternius animal meshes started below 3,000 triangles. SIMPLE subdivision brought them inside the requested range without changing their silhouette. This adds triangles, not new sculpted detail. Unused clubs, carrot and hammer geometry were removed. The stag's rigid antlers were preserved and verified in motion.

## Creature table

Speeds are walk / run in metres per second. GOOD means it looked coherent in the inspected renders for its stated style, not that it is suitable for every art direction. OK means a stated quality or completeness limit remains.

| ID | Source / author | Licence | Style | Clip roles present | Height m | Speeds m/s | Visual verdict |
|---|---|---|---|---|---:|---|---|
| enemy-alien | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.000 | 1.320 / 3.400 | **GOOD** |
| enemy-alpaca | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.700 | 0.705 / 2.990 | **GOOD** |
| enemy-bird-brute | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.300 | 0.927 / 2.376 | **GOOD** |
| enemy-blue-demon | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.400 | 2.008 / 5.172 | **GOOD** |
| enemy-bull | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.700 | 1.018 / 3.828 | **GOOD** |
| enemy-cactus-monster | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.800 | 1.065 / 2.729 | **GOOD** |
| enemy-cow | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.600 | 0.958 / 3.603 | **GOOD** |
| enemy-deer | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.400 | 0.913 / 3.920 | **GOOD** |
| enemy-dinosaur | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.600 | 1.900 / 4.894 | **GOOD** |
| enemy-dog | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 0.850 | 0.727 / 1.847 | **GOOD** |
| enemy-donkey | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.650 | 1.164 / 4.995 | **GOOD** |
| enemy-dragon | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit | 3.000 | not measured / not measured | **OK** |
| enemy-fish-raider | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.500 | 0.940 / 2.407 | **GOOD** |
| enemy-flying-bird | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit | 0.350 | not measured / not measured | **OK** |
| enemy-flying-goblin | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit | 2.200 | not measured / not measured | **OK** |
| enemy-fox | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 0.650 | 0.666 / 1.930 | **GOOD** |
| enemy-frog-brute | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.300 | 1.150 / 2.961 | **GOOD** |
| enemy-giant-bee | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit | 1.000 | not measured / not measured | **OK** |
| enemy-horse | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.000 | 1.139 / 4.282 | **GOOD** |
| enemy-monkroose | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.700 | 1.349 / 3.476 | **GOOD** |
| enemy-mushroom-king | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.200 | 1.428 / 3.678 | **GOOD** |
| enemy-orc | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.000 | 1.468 / 3.783 | **GOOD** |
| enemy-rabbit-brute | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.400 | 0.906 / 2.323 | **GOOD** |
| enemy-stag | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.100 | 1.089 / 4.673 | **GOOD** |
| enemy-tribal-monster | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 1.800 | 1.072 / 2.748 | **GOOD** |
| enemy-winged-imp | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit | 1.800 | not measured / not measured | **OK** |
| enemy-wolf | Quaternius Animals | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 0.950 | 0.967 / 2.813 | **GOOD** |
| enemy-wolf-realistic | Forge generated mesh + Quaternius wolf rig | CC0-1.0 | realistic | idle, run, attack, die, hit, walk | 0.950 | 0.967 / 2.813 | **OK** |
| enemy-yeti | Quaternius Monsters | CC0-1.0 | toon | idle, run, attack, die, hit, walk | 2.500 | 2.099 / 5.406 | **GOOD** |

The five flying rows have idle/flying, fast-flying, attack, hit and die. Their `run` mapping points to `Fast_Flying`, not a fabricated running clip. **Walk is missing and movement speed is unmeasured, so they are not among the 24 main catalog entries.**

## Realistic wolf verdict: OK, usable at game distance

- It reads as a grey wolf rather than a procedural monster or cartoon dog.
- Eyes are part of the textured head and sit in the sockets. No separate floating eye spheres were added.
- The generated mesh was aligned by its body axis, then fitted to the proven wolf skeleton using measured paw positions. The initial unfitted bind was rejected.
- Cleaned four-weight skinning, isolated tail influence from hind-leg influence, and corrected ground contacts. Final walk and gallop were inspected from the side.
- 15,912 triangles, one armature, below 1.5 MB. Six real source clips are preserved.
- **Remaining limits:** soft detail around the far eye, a small forehead blemish, and a coarse tail tip at close range. The jaw is not independently articulated. Attack is a closed-mouth head-first lunge, not an open-jaw bite. This is not a polished close-up hero wolf.
- The stylised wolf remains the cleaner choice for low-poly games. Matched-camera comparisons show the two at the same 0.95 m height.

## Per-model visual notes

- **alien:** Distinct antennae and purple body; limbs remain attached through punch and collapse.
- **alpaca:** Long neck and hooves read clearly; gallop stays compact, with no stretching in the strip.
- **bird-brute:** Clearly a fantasy upright bird, not a natural flying bird; wing punch and fall read cleanly.
- **blue-demon:** Club removed cleanly; hands remain complete and the punch now matches the unarmed model.
- **bull:** Heavy black bovine silhouette, horns and headbutt are clear.
- **cactus-monster:** Green spiny creature and broad hat remain coherent during the gait and fall.
- **cow:** Brown and white cattle, not the initially assumed black-and-white coat; readable headbutt and collapse.
- **deer:** Slender legs and deer silhouette; clean headbutt and folded collapse.
- **dinosaur:** Red and yellow cartoon dinosaur, not a natural quadruped dinosaur; upright punch is intentional.
- **dog:** Reads as a husky; ears, muzzle, paws and curled tail stay attached.
- **donkey:** Long ears and narrow muzzle distinguish it from the horse; legs are angular but coherent.
- **dragon:** Clear orange winged dragon; flight and drop look coherent, but no walk or measured flight speed.
- **fish-raider:** Turquoise fish-person with fins and legs; deliberately cartoon, with clean punch and collapse.
- **flying-bird:** Purple round fantasy bird, not a realistic pigeon or eagle; wingbeats and drop are readable.
- **flying-goblin:** Green crowned goblin head with bat wings. Not a stone golem despite the source filename.
- **fox:** Orange coat, pale underside, pointed muzzle and bushy tail read as a fox.
- **frog-brute:** Yellow and black poison-frog look; upright limbs and attacks are deliberately stylised.
- **giant-bee:** Striped bee body and wings read clearly; oversized cute eyes suit cartoon games only.
- **horse:** Horse proportions, mane and hooves are clear; gallop and head strike remain coherent.
- **monkroose:** Beaked, round-eared green chimera, not a real monkey; clear hands and upright movement.
- **mushroom-king:** Blue cap and pale body read cleanly. Handheld mushroom hammer removed without hand holes.
- **orc:** Green tusked orc with readable punch and fall; no loose weapon remains.
- **rabbit-brute:** White ears and pink chest read as a rabbit creature; carrot removed cleanly, hands intact.
- **stag:** Antlers restored and move with the head through walking, headbutt and collapse.
- **tribal-monster:** Red masked forest creature with a feather crest; mask stays attached through every clip.
- **winged-imp:** Pink horned imp with bat wings, not a squid despite the source name; coherent flying attack and drop.
- **wolf:** Clear wolf muzzle, ears and tail, far better animal silhouette than the rejected procedural creature; deliberately faceted.
- **wolf-realistic:** Reads as a real grey wolf at game distance; eyes are in the head and limbs no longer stretch. Close-up has a small forehead blemish and a soft far eye. Tail tip remains coarse. Jaw is closed: attack is a head-first lunge, not an articulated bite.
- **yeti:** Broad white-furred body and blue face read as a cartoon yeti; hands and feet stay attached through running and collapse.

## Licences and exact sources

- Quaternius, Ultimate Animated Animals: https://quaternius.com/packs/ultimateanimatedanimals.html . The author page and pack licence declare CC0.
- Quaternius, Ultimate Monsters: https://quaternius.com/packs/ultimatemonsters.html . The author page declares CC0; the archived pack licence and download records were retained.
- **Every imported model's exact download URL, author, licence and input hash are in `evidence/sources.json`; each catalog entry also carries its exact source URL in `credit`.** Animal files came from a pinned-commit public mirror after the author's Drive files returned quota errors. They remain Quaternius assets, not original work by the mirror owner.
- The realistic mesh and reference were generated for Forge for this library, with the generated asset offered under CC0 here. The underlying skeleton and motion clips remain Quaternius CC0. Model weights/software are not bundled. `sources/generated-wolf/provenance.json`, the reference request and `evidence/wolf-image-job-final.json` identify the generation route and exact resulting mesh URL.
- No non-commercial, editorial, unclear or share-alike-only animal model was included. No Mixamo file was redistributed.

## Failures, rejected work and omissions

- Google Drive returned quota HTML instead of animal files. Recovered through a public, licence-preserving mirror with pinned URLs and hashes.
- Both text-to-3D wolf jobs failed with GPU out-of-memory errors. Stopped that route. A separate image-upload job succeeded through the service's existing lower-memory C++ fallback. No service configuration was changed or process restarted.
- The downloaded NewDLC CC0 wolf was rejected for the realistic lane: it looked like a cartoon dog. It is not a delivered catalog entry.
- The first generated-mesh bind had poor paw alignment and tail/leg cross-weights. It was replaced, not called good.
- A browser executable path and a missing Node image decoder caused initial test setup failures. Both were fixed inside the disposable work folder; final consumer checks passed.
- The initial contact-sheet summary hit stale experiment filenames after renaming assets. It was fixed to enumerate only final GLBs.
- The initial stag import dropped rigid antlers. The final import retains and animates them.
- Initial source gaits had foot sinking. Baked contact correction reduced it substantially; the remaining sampled maximum is reported above rather than hidden.
- No claim that every requested priority animal was found. Bear, boar, big cat, crocodile/lizard, snake, crab, raven/eagle, troll/ogre, ghoul and a true stone golem are **not delivered as ready entries**. Boar and crab sources were inspected but lacked the needed motion set; no clips were fabricated.
- The 19-motion Mixamo route was checked in memory. It used an operator-authorised authenticated browser. It was unnecessary for these already-rigged sources and was not used.
- Existing rat, spider, bat, ghost, slime, skeleton, robot, zombie, demon boss, shark and the liked procedural scorpion were not edited or removed.
- No Factory/Engine catalog edit, game integration, deployment, live-app test, collision tuning, attack damage-window authoring, slope handling or GPU frame-rate benchmark was performed.
- No independent model reviewer or nested agent was started. The visual verdicts are the author's direct inspection, as requested.

## If this is wrong, and how to undo it

A consumer that ignores scale or playback speeds can reintroduce sliding. A wrong clip mapping could make an enemy attack or die incorrectly. Keep the existing catalog unchanged until the asset handoff is accepted; remove the new entry or restore its previous GLB to undo an import. Nothing live needs rolling back now.

## Files that prove the checks

- `evidence/node-validation.json`: exact final hashes, every played clip, sampled skinned vertices and errors.
- `evidence/independent-glb-audit.json`: geometry, packed textures, skin count and file sizes.
- `evidence/delivery-checks.json`: final contract counts and measured limits.
- `evidence/enemy-*-runtime.json`: browser clip playback, measured heights, speeds and contact data.
- `evidence/enemy-*-footplant-method.json`: source-measured speed, exact stance frames and correction method.
- `evidence/enemy-*-normalization.json`: source, scale, removed objects and missing clips.
- `MANIFEST.json`: final delivery file hashes.

Local disk was below the operator's 15 GB reserve: about 7.7 GB free during the final checks. Task-owned temporary local review copies were removed; delivered files remain.
