AbstractPrefer the subclass's create().
Camera the tiles follow.
The frame groups live in (the world itself on flat worlds).
ProtectedinputInput so far (merged by set).
ReadonlyobjectRoot object (placed in the current frame).
Protected Abstract ReadonlysaltSeparates this kind's spawns from other kinds with the same seed.
Resolved settings. Change them with set() / reset().
ReadonlystatsLive counters, refreshed by update().
Seconds simulated.
Protected ReadonlyviewsPer-species meshes.
The world.
Protected AbstractanimateAdvances member i's animation (motion, 4 floats) and returns its roll (bank) angle.
Protected AbstractapplyPushes a species' look (and the layer's states) into its material.
Protected AbstractboidProtected AbstractcreateCreates the geometry for a species (called when geometryKey changes).
Protected AbstractcreateCreates the material for a species.
Protected AbstractdefaultsDefault settings of this kind.
Removes the layer from the scene and frees its GPU resources.
Protected AbstractgeometryEvery group currently spawned.
Protected AbstracthabitatProtected AbstractinitProtectedlayoutExtra placement-relevant settings of a subclass (JSON-compared).
Protected AbstractmaxProtected AbstractplacementReplaces all settings: anything not in input goes back to the defaults.
Changes settings, merging into earlier ones (nested objects merge, arrays replace). Looks apply at once; placement changes respawn groups.
Moves the floating origin. Same as set({ origin }).
Protected AbstractspeciesThe species table.
Streams tiles around the camera, spawns within the time budget, steps the flocks at a fixed rate
and writes the instances. Called automatically when a scene was given; otherwise once per frame.
Seconds since the last frame; measured if omitted.
Milliseconds for spawning this frame. Defaults to settings.buildBudget.
Base class of a streamed animal layer (FishSchools, BirdFlocks; land herds later): deterministic per-tile spawning around the camera, one Flock per group, fixed-step simulation near the camera, and one instanced mesh per species. Subclasses supply the species table, the habitat rules, the mesh and material, and the per-member look and animation.
Coordinates are the world's local frame (re-centred on the camera on planets); instance matrices are relative to an anchor near the camera, so GPU data stays small at any distance from the origin.