Skip to content
GENOPOOL

Document GP-DOC-05: Genetics

Terrain × Morphology

A stat is only worth what the track pays for it. Each of ten engine biomes modifies a segment's cruise speed and energy cost, and applies penalties or hazards keyed to specific stats. This is the systematized version of "ice rewards tripods": there is no global optimum, only optima conditional on the circuit, and circuits rotate every hour. *_n denotes a stat normalized to [0,1] across the population (see Stats & Morphology).

The gate form

Speed on a segment is the flat-ground cruise speed multiplied by a terrain gate:

v_flat    = SPEED_SCALE * SPD * (0.8 + 0.2*EFF_n)
cost_flat = COST_SCALE * (1/EFF) * (0.7 + 0.3*mass)

v = v_flat * gate(stats)^BITE [* BASE_MULT]      // gate = Π (FLOOR + GAIN * stat_n)

The gate is a product of (FLOOR + GAIN·stat_n) factors. The BITE exponent (≥ 1) is renormalized to preserve the top and collapse the bottom: a specialist at stat_n ≈ 1 loses nothing, while a low key stat drops speed toward a crawl. BITE=1 is the plain, unexponentiated path. On MUD and INCLINE a COST_BITE hardens the energy cost as 1 / gate^k, so builds without the key stat both slow down and burn out.

The ten biomes (v0.3.0 constants)

Values below are the committed BALANCE.TERRAIN set (BALANCE_VERSION = v0.3.0), tuned by the harness (see Balancing):

TerrainDriven byKey constantsPunishes most
FLATSPD, EFFreference (no speed gate)nobody (pure speed)
ICETRC (STB residual)TRC 0.55+0.50·n · STB 0.70+0.05·n · BITE 3biped sprinters
MUDptw, TRCptw 0.50+0.50·n · TRC 0.80+0.20·n · BITE 1 · COST 1.5/ptw², COST_BITE 2light without power
SANDTRC, massTRC 0.55+0.45·n · MASS_PENALTY 0.25 · BITE 5 · COST 1.3the heavy
INCLINE ↑ptwptw 0.40+0.70·n · BASE 0.85 · BITE 1 · COST 1.4/ptw, COST_BITE 1heavy + fast fiber
DECLINE ↓STB, AGISTB 0.60+0.40·n · AGI 0.80+0.20·n · BASE 1.05 · BITE 5 · COST 0.9 · fallspeed demons
TURNSAGIAGI 0.50+0.50·n · BITE 5 · +TURN_PENALTY 0.25·(1-AGI_n)long torso + heavy
GAPJMPdifficulty 0.5 · FALL_PENALTY 2.0 · clear-time 0.15builds with no jump
ROUGHSTB (TRC residual)STB 0.50+0.50·n · TRC 0.70+0.05·n · BITE 5 · COST 1.2fragile (supple JNT, high STA)
WATERweb, massweb 0.40+0.50·b · no-web 0.4 · MASS_PENALTY 0.30 · BITE 1 · COST 1.3heavy + multi-legged

Note the deliberate orthogonality: ICE keys on traction, ROUGH on stability, TURNS on agility, DECLINE on both stability and agility, WATER on the webbed foot. Spreading each biome across a different stat vector is what makes the meta rotate instead of collapsing onto one build. FLAT and GAP carry no speed gate: FLAT is the reference, GAP is a pure jump obstacle.

Physical constants

Some biomes are physical, not analytical: the Rapier sim resolves them through real foot/ground contact:

TERRAIN_FRICTION   ICE 0.12   SAND 0.80   WATER 0.55   MUD 1.25   (others 1.0)
FOOT_GRIP_LEGS     2 → 1.00   3 → 0.55    4 → 0.45     6 → 0.38
COURSE             GRADE 0.12   GAP_WIDTH 0.7 + difficulty·1.0   PIT_DEPTH 1.4
                   START_PAD 30   TAIL_PAD 30                    (meters)

Ice slips through the physics: the per-archetype foot-friction factor drops the whole contact below the propulsion threshold, so even a quadruped can no longer accelerate on ice the way a naive multiplier would allow. The slope is real geometry: steep enough that INCLINE bites, shallow enough that the gait does not stall mid-hill. Non-friction effects (mud draining stamina, hills costing energy) route through the cost model above, keeping one source of truth.

Energy and piloting

Stamina is a budget spent per segment, not a decoration. On each segment the pilot chooses an effort e (throttle); pushing harder costs super-linearly:

v = v0 * sqrt(e)            energy = e0 * e^1.5        budget S = STM
exceed S → winded: speed * 0.5 for the rest of the race

The optimal effort has a closed form, e_i ∝ 1 / sqrt(v0_i * cost_i) scaled to saturate the budget, so an efficient pilot pushes where it pays and conserves elsewhere. This makes circuit length a meta lever: on a long map a stamina build runs flat out while a sprinter must ration and loses; on a short map, the reverse.

Skill is then applied deterministically, with no RNG in the outcome:

pilot_time = optimal_time * (1 + (1 - skill) * K_EXEC) + missed_obstacle_penalties * (1 - skill)

Two identical specimens: the better pilot posts the better time, every time. K_EXEC is calibrated so that skill matters without the draw ever deciding a race (see Balancing).

Circuit and meta rotation

A circuit is an ordered list of (terrain, length) segments generated from the hourly on-chain seed (Switchboard). The map is revealed before entry, so choosing which specimen from your stable to run is itself a layer of skill (roster strategy). Because each biome favors a different build, the "freaks" (a tripod on ice, a webbed amphibian on water) have real value for the one hour a day their biome comes up. There is niche demand on the market rather than a single dominant meta.


Next: how these outcomes are scored and rated, in IGC and Race Format. To breed toward a target biome, see Breeding.