Menu
BKZ lab log

Roster sheet · Detail tier

Four mobs, one table

Every mob in the detail tier is a row. Posture, corruption, head asymmetry, gait, hair and beard each name a row of another table, and a new mob is a line of numbers rather than a branch. This is what the four currently resolve to.

· brooklyn-dead @ af708d5 · gate 207/221 · budget 40,000 tris / 8 MB

A night street in the mob lab, a group of zombies lit by a wall lamp
Where they end up. A street in the mob lab at night — the detail tier drawn at playing distance, under the lab’s own solar clock. Mob vision scales with darkness and the flashlight beam is what gives you away, so this is the range every figure below is ultimately for.

On the bench

Same four bodies, lit flat and shot from the same camera. Every dial below is anchored on something the geometry already states — never a number somebody picked — which is what keeps the table honest when a fifth mob is added.

Four mob heads in three-quarter view, each with different hair and facial hair
The four heads, same camera, same light. Facial hair costs 0.21–0.38% of the tri budget and displaces zero growth triangles — the corruption cap was never binding. cheek_mange earned a style rather than a dial value: its footprint is one no dial reaches.
BasicZ1roamer
beard
matted · full_beard
chest depth
115.05 mm
neck escape
11.2 mm
growth tris
4,960
hair tris
1,642

11,734 tris29.3% of 40k · 40.5% of 8 MB

Crierscreamer
beard
cheek_mange
chest depth
86.28 mm
neck escape
27.0 mm
growth tris
4,860
hair tris
1,137

11,057 tris27.6% of 40k · 39.4% of 8 MB

Fusedbrute
beard
jaw_mat
chest depth
163.29 mm
neck escape
16.1 mm
growth tris
11,336
hair tris
1,954

18,426 tris46.1% of 40k · 52.1% of 8 MB

Breakerboss
beard
tusked · moustache
chest depth
151.62 mm
neck escape
12.8 mm
growth tris
11,860
hair tris
1,696

18,604 tris46.5% of 40k · 52.0% of 8 MB

body + headcorruption growthshair + beardbar is share of the 40,000-triangle category budget

They move differently too

Until this round all four played Walk_Loop — the hero’s own clip — so four distinct silhouettes shared one gait, and gait is most of what reads as character in motion. Each now carries its own, baked into all 53 clips and shipped in the GLB.

The Breaker’s walk cycle, shoulders forwardBreaker · lumbers, shoulders forward
The Crier’s walk cycle, neck craned low and arms wideCrier · cranes low, arms wide and loose
Two of the four gaits. The closest pair separates at 124× the measured instrument floor; before this they agreed to the floor, because four rigs playing one action have one basis track. Arm-into-body contact is zero on all four.

The Breaker is not on this clip set

It comes out of the SDF generator rather than the Blender scripts — a signed distance field polygonised and auto-skinned to its own 21-bone rig, sharing nothing with the 65-bone mob skeleton. Nothing in the mob code changed to accept it, because kits already treat clip names as data.

It is off by default, capped at one, and will not spawn below a population of ten. 420 health at 260 poise cannot be staggered by a rifle — interesting at one, an unwinnable wall at four. What keeps it fair is speed: 2.2 m/s against the player’s 6.5, so you can always walk away.

The Breaker seen close up in daylight, burning in the sun
Caught in daylight. Exposure is a physics ray toward the sun against building collision — roofs and walls shelter, render shadows are not gameplay state. The same wax-paper melt takes corpses about seven seconds slower, because they have stopped struggling.

The world they are measured in

One building specification generates the facade, the interior lining, the collision, the shelter geometry and the navigation source together. A layout that drifts between those is forbidden rather than discouraged — every mob figure on this page depends on the street being the same street the navmesh thinks it is.

Street level · interior · aerial

A facade corner at street level in the block cityThe interior of a walk-in ground floor
An aerial view of the block city
The block city. Wide streets, through-alleys, corners, 0.15 m sidewalks and forty walk-in ground floors, each with one 1.2 × 2.6 m entry. Windows are visually open and collision-solid, matching the audited production minimum.

What every row shares

A dial is only ever anchored on something the geometry already states — never a number somebody picked. That rule is what keeps the table honest when a new mob is added:

dial1.0 meansanchored on
arm_out22.1°the binding row’s own contact crossing
arm_curl21.9°measured at 21.92, unchanged by the ribcage
lossfull removalthe moustache’s own 0.40 half-span
mattfully mattedthe stubble shell’s own 3.5 / 1.2 mm
clumpweldedtwo locks joined at conserved width and tris
hemshalloweststubble_block’s own bottom row

Two rows still fail their gate — the Fused and Breaker at the axilla, needing a shoulder trade that costs 23.5% of the band. Refused on measurement.

Frozen throughout — SK_Hero.glb 4833793441261a55…, byte-identical across all eleven merges of this round.

Back to the pipeline