# Realistic animals, round 2: wolf v3 and bull v2

Written 17 October 2026, 22:43 CET. Hard stop: 22:50 CET.

## Result

**Two new source releases. My verdict: OK at game distance, not GOOD close-up.**
I inspected rear, belly, side, clay and moving-tail captures. I see no remaining
sheet joining the wolf tail to a hind leg and no floating white belly shards on
the new bull. This is my review, not operator approval or a live-game claim.

On gex44, under `/opt/creature-lib-20261017/pipeline/releases/`:

| New file | Bytes | Triangles | Clips | Verdict |
| --- | ---: | ---: | ---: | --- |
| `enemy-wolf-realistic-v3.glb` | 798,032 | 6,646 | 6 | OK |
| `enemy-bull-realistic-v2.glb` | 1,142,064 | 13,965 | 6 | OK |

Also there: `catalog_entries_round2.json`, `manifest_round2.json`,
`release-wolf-*` and `release-bull-*` rear, belly, side, clay and motion captures,
and independent geometry audits. Full checked runs: `wolf-v3-delivery/` and
`bull-v2-delivery/`, alongside `releases/`. Earlier release files were not replaced.

## See the outputs

### Wolf v3

![Wolf v3 rear](W-REALISTIC-ROUND2-EVIDENCE/wolf-rear.png)

![Wolf v3 belly without texture](W-REALISTIC-ROUND2-EVIDENCE/wolf-belly-clay.png)

[Side](W-REALISTIC-ROUND2-EVIDENCE/wolf-side.png) ·
[Textured belly](W-REALISTIC-ROUND2-EVIDENCE/wolf-belly.png) ·
[Rear clay](W-REALISTIC-ROUND2-EVIDENCE/wolf-rear-clay.png) ·
[Close rear motion](W-REALISTIC-ROUND2-EVIDENCE/wolf-tail-close.png) ·
[Full side/rear motion](W-REALISTIC-ROUND2-EVIDENCE/wolf-tail-clips.png)

### Bull v2

![Bull v2 rear](W-REALISTIC-ROUND2-EVIDENCE/bull-rear.png)

![Bull v2 belly without texture](W-REALISTIC-ROUND2-EVIDENCE/bull-belly-clay.png)

[Side](W-REALISTIC-ROUND2-EVIDENCE/bull-side.png) ·
[Textured belly](W-REALISTIC-ROUND2-EVIDENCE/bull-belly.png) ·
[Close rear motion](W-REALISTIC-ROUND2-EVIDENCE/bull-tail-close.png) ·
[Full side/rear motion](W-REALISTIC-ROUND2-EVIDENCE/bull-tail-clips.png)

## What changed at the source

- The image request changes the pose: tail behind/up, background between tail and
  both hind legs, four separate lower legs. No pose-lock language.
- A white-background silhouette check runs before 3D submission. It measures
  tail/leg and leg/leg gaps, rejects touching or cropped poses, and caps generated
  references at three. Masks, annotated measurements and failures remain.
- Accepted 512-pixel measurements: wolf tail gap **50 px**, leg gaps
  **29 / 59.0 / 17.5 px**; bull tail gap **94.0 px**, leg gaps **21 / 113 / 43 px**.
- Fragment cleanup removes small disconnected pieces, small thin disconnected
  shards and enclosed duplicate shells. Large detached non-head pieces fail.
  Eyes/horns/antlers are exempt only near Head and near the body surface.
- The wolf contained an almost enclosed duplicate inner shell: **3,204 vertices,
  6,404 faces removed** before fitting. Enclosure tolerance is 0.05% of height;
  one almost coincident point was 0.15 mm outside the outer surface.
- Each lower-foot region now fits as a whole. Splitting at the centre plane had
  stretched paws and belly faces when the references staggered the legs.
- Fused-tail cutting/capping is disabled. The bull's raised tail is fitted onto
  the downward donor rest curve using a narrow-shaft selection, bounded
  cross-sections and local smoothing, not a tail/leg web cut. UVs are retained.
- Catalog entries say `CC0-1.0`, credit the Quaternius rig and animations, describe
  appearance/size/movement/attack/death in one sentence, list places in `good_for`,
  and use `tint: []`. Source catalog and source GLB hashes must match.
- Release requires the model hash and seven unchanged render hashes. The copier
  adds new files to an existing directory without overwrites.

## What was checked

- **19 policy tests plus 2 silhouette tests pass locally and on gex44.** Subcases
  cover corrupt inputs, no 3D spend after reference rejection, three-image retry
  limit, changed/missing renders, unknown rig rights and immutable releases.
- **Five Blender fragment fixtures pass:** loose speck, thin shard, near-head eye,
  rejected detached limb, and removed enclosed shell.
- Both actual files were loaded again directly from `releases/` in disposable
  Three.js previews: **12 clips**, **zero browser errors**, **zero tail/leg
  cross-weights**. Both independent geometry audits pass.
- Worst sampled floor crossing: wolf **5.0 mm**, bull **9.1 mm**, below the existing
  20 mm limit. Source skeletons and all clip names/durations are preserved.
- All **29 original library GLBs** and **3 prior pipeline release GLBs** still
  match their recorded hashes. No earlier GLB was overwritten.
- Committed detailed evidence: `W-REALISTIC-ROUND2-RESULTS.json` and
  `W-REALISTIC-ROUND2-TESTS.txt`.

## Failures and limits

1. The operator's round-1 wolf v2 and bull rejection stands. This report does not
   upgrade them. [Old wolf rear](W-REALISTIC-ROUND2-EVIDENCE/wolf-v2-rejected.png),
   [old bull shards](W-REALISTIC-ROUND2-EVIDENCE/bull-v1-rejected.png).
2. The old bull's white pieces were attached to the body. Island removal alone
   did not fix them. The release uses a **new reference and mesh**, not a claimed
   successful cleanup of that old mesh.
3. Early fits stretched the underside. An early bull tail selection grabbed rump
   faces and produced a sheet. That candidate is BAD and was not released.
   [Rejected tail fit](W-REALISTIC-ROUND2-EVIDENCE/bull-rejected-tail-fit.png).
4. The initial silhouette band was too high and counted touching upper thighs as
   merged feet. It was corrected to measure lower legs; existing images were
   rechecked. Exactly three images per animal were generated. Three paid 3D jobs
   ran: one wolf and two bull jobs.
5. Coarse game assets remain coarse: angular limb bends, soft faces, underbody
   creases and a thin bull tail tuft. Connected malformed surfaces can still pass
   numeric checks and require visual rejection. Clay images show these limits.
6. Horse was not attempted. No independent second-model critic, live-game, slope,
   combat, collision or performance tests. No Factory/Engine changes, catalog
   import, deployment, or change to the live fox.
7. One combined lease/write command was blocked by the coordination guard and
   did not run. The prescribed separate claim succeeded before writing resumed.

## Undo and operational state

Use the untouched earlier assets to avoid either new file. The converter is a
standalone command, not a service; code is under `tools/realistic/`.
Disposable preview processes have exited. Paid-job inputs and useful rejected
proof are retained; temporary local image copies are cleaned. Local free disk
space is about 6 GB, below the operator's 15 GB warning level.
