# W-LIBCARDS: 30 creature cards

**Blocked on you:** nothing for this handoff. Merge and publication remain yours.

**Changed:** registered the 30 catalog creatures, with real-thumbnail descriptions, vectors, rights, measured bounds and reusable game metadata, on branch `task/1792334112-12893c`.

Work began 18 October 2026 at 16:35 CET. Final checks recorded before the 18:40 CET hard stop.

[Contact sheet](W-LIBCARDS-contact-sheet.jpg) | [Search proof](W-LIBCARDS-evidence/search-proof.txt) | [Blob handoff](W-LIBCARDS-blob-manifest.json)

## Delivered

| Kind | Realistic catalog lane | Toon | Total |
|---|---:|---:|---:|
| Animal | 7 | 10 | 17 |
| Monster | 0 | 13 | 13 |
| Total | 7 | 23 | 30 |

- Exactly one approved v1 card per `gen: true` catalog entry. Library total: 454 to 484 active assets.
- Original licence and credit text preserved: 29 CC0 entries and one Forge-owned generated scorpion. Authors, source links and copied source reports accompany the cards.
- Scorpion is procedural, six-legged and only semi-realistic. Its catalog style is retained as `realistic`; this is not a claim of anatomical photorealism.
- Skeleton joint names, six exact clip-role mappings, speeds in metres per second, catalog IDs, provenance lanes and OMG/OMU reuse flags are recorded.
- Numeric geometry, rig and render data are marked measured. Catalog scorpion tuning values are marked authored because independent speed-measurement evidence was not found. Box colliders are guesses, not tested combat shapes.
- New taxonomy groups/classes and creature aliases retain all existing classes. `deer` covers both deer and stag; an empty elephant class provides an explicit GAP.
- Thirty unchanged source GLBs, SHA256-addressed, total **22,343,508 bytes**, remain in this worktree's ignored `store/blobs/`. They are not in the commit. Use the blob manifest when publishing; merging Git alone does not move the files.
- All 569 pre-existing description records were preserved exactly. No pre-existing cards, vectors or safety records were changed.

## Measurements and pictures

Final GPU pass: NVIDIA RTX 4000 SFF Ada, Three.js 0.180.0, **30 measured, zero model errors, zero page errors, zero console errors**.

The target was the disposable folder `gex44:/tmp/wlibc-1792334112/gpu`, served only on loopback port 8973. No real-domain app was used.

Sizes are exact skinned bind-pose bounds, not a whole-animation collision envelope. The final contact sheet uses the actual card thumbnail files, including the corrected wolf image, and was opened for inspection.

Evidence: [GPU report](W-LIBCARDS-evidence/gpu-report.json), [bounds](W-LIBCARDS-evidence/measured.json), [dependency record](W-LIBCARDS-evidence/dependencies.json).

## Required search proof

These are actual hybrid/vector calls through `lib/search.py`, not mocked results.

| Request | Observed result |
|---|---|
| realistic grey wolf | Realistic wolf first, toon wolf second |
| deer | Both deer and both stag variants |
| orc | The orc |
| a horned bull | Realistic bull first, toon bull second |
| like the realistic fox | Toon fox first; other top results are deer, stag and wolves |
| image: realistic fox thumbnail | That realistic fox first |
| elephant | GAP `animal.wildlife.elephant`, no lookalike |

All eight saved assertions pass. Saved search-result release hashes match the final cards.

## Models and cost

| Calls | Gemini 4 vision | Joint embedding 2 | Description embedding 001 | jev safety |
|---|---:|---:|---:|---:|
| Enrichment | 5 | 33 | 33 | 32 |
| Search proof | 0 | 5 | 4 | 0 |
| Total | 5 | 38 | 37 | 32 |

**112 successful model requests total.** Every enrichment request was for these new creature IDs. The three extra vector pairs came from correcting the wolf thumbnail, the scorpion description and its numeric-source tag.

Joint vectors use `gemini-embedding-2-preview:embedContent`, 768 dimensions; description vectors use `gemini-embedding-001`. All 30 final vector files contain finite, normalized 768-dimensional vectors. All 30 final jev records permit reuse.

**Actual dollar cost is unverified.** Existing helpers do not expose billing. Gemini used the operator's grant; Vertex and jev bills were not queried. This is not a zero-cost claim. The recorded Gemini usage totals are 102,975 prompt tokens, 5,508 completion tokens and 96,400 cache-read tokens, counted once per batch.

[Call and usage record](W-LIBCARDS-evidence/model-calls.json)

A subsequent unscoped rebuild selected all 484 active assets and made **zero vision, embedding or safety calls**. [No-change proof](W-LIBCARDS-evidence/enrichment-no-change.txt)

## Tests

All run with `/tmp/fa-venv/bin/python`, using disposable test data, never live apps.

- `test/run_factory_library_tests.py`: **56 passed**.
- Pytest over `test/test_photo_library.py`, `test/test_lighter.py`, `integrations/test_asset_search.py`, `tools/realistic/test_*.py`, and the new `test/test_creature_library.py`: **34 passed, 16 subtests passed**.
- Direct `test/test_lighter.py`: **12 checks passed**.
- New tests cover all 30 cards, licences, source hashes, taxonomy, measured bounds, safety, vectors, saved search releases, import replay, refused repinning and the zero-call rebuild boundary.
- Import replay preserved every release hash and all descriptions. The factory-test launcher now uses its own disposable directory, so parallel worktrees do not erase each other's test data.

[Final tests](W-LIBCARDS-evidence/tests-final.txt) | [Factory tests](W-LIBCARDS-evidence/tests-factory-final.txt) | [Lighter checks](W-LIBCARDS-evidence/tests-lighter.txt)

## Failures corrected and limits

- Initial staging hard links crossed filesystems and failed. Plain copies fixed the disposable staging folder.
- An old Three.js 0.160.1 viewer showed only the realistic wolf's shadow. Repeating with the current 0.180 dependency rendered the surface correctly without modifying the GLB. The corrected thumbnail was re-described and re-embedded. [Old viewer image](W-LIBCARDS-evidence/wolf-old-viewer.jpg)
- The first scorpion description invented eight legs. Gemini was rerun with a stricter visible-anatomy instruction; its final description avoids an unsupported leg count. No description was hand-written.
- No full animation playback, slope, combat collision or game-performance test was repeated here. Existing source reports carry the earlier animation evidence.
- No Factory, Engine, live game, service configuration, forge-assets main or `/srv/forge-assets` publication was changed. No live URL was opened.

**If wrong:** consumers could select the wrong creature, scale or collider; an old viewer could hide the wolf. Before publication, discard this branch. After publication, restore the prior cards/index, but retain any blobs already pinned by games.

**Not done:** publication, main merge, live-game testing and confirmation of billed dollar cost.
