diff --git a/gpu-skinned-herds.html b/gpu-skinned-herds.html index a71d73d..c9ebabd 100644 --- a/gpu-skinned-herds.html +++ b/gpu-skinned-herds.html @@ -373,13 +373,13 @@ NORMAL = normalize((skin * vec4(NORMAL, 0.0)).xyz);

At runtime, AnimalHerdRenderer spawns one skinned_herd per animal type. The herd bakes the palette from the model's clips. Animation logic maps sim FSM states to clip keywords (attack → attack/bite, flee → run/gallop, wander → walk). The renderer lerps positions between sim ticks for smooth motion and writes per-instance custom data each frame. Zero per-frame CPU on the animation path.

Where we stand vs the industry

The bone-matrix palette technique is the same architecture used by Assassin's Creed Unity, Total War: Warhammer, and Hitman for their crowd systems. We're using the same core idea, in a Godot fork, with smaller VRAM — our low-poly animals keep textures tiny.

-

The platform supports three tiers by distance, all driven by the same (clip, count, speed, phase) packet:

+

Stock Godot has no answer for this. Skeleton3D per character caps at ~20. MultiMesh can't skin. There is no built-in crowd animation path.

+

The platform runs two tiers by distance, driven by the same (clip, count, speed, phase) packet:

-

One abstraction, three detail levels. The same code that drives 30 animals today will drive thousands of colonists at launch.

+

Same code drives 30 animals today. Same code will drive thousands of colonists at launch.

What's deliberately not here