j152 (default-off): geometry shapes the tile DRAW (TR_TFIL_GEO_MODE/TAU) + the offline sweep with the diversity cost
The owner: choose the tile pool not only from the heat point but from the geometric position too. Heat stays the hard filter; the draw over the survivors is re-weighted by turn and/or distance. Three weighting forms (soft softmax / top-K third / rejection band), one env name carrying both axes. Default = off = today's uniform draw, byte-for-byte (golden parity). WHAT DIFFERS FROM j9 (TR_TFIL_TURN_BIAS, a live null): that was a tiebreak weight among the non-empty safe set only. This runs on the WHOLE pool the draw already runs on, including the 2 promoted least-hot tiles the ~65% forced picks choose from. OFFLINE (8 fixtures x 3 seeds, no java): headline 'tile actually reached at tta' 4.5% -> 16.9% at TR_TFIL_GEO_MODE=both-soft TR_TFIL_GEO_TAU=45, with no diversity collapse (distinct tiles 220 -> 219, normalised entropy 0.87 -> 0.86, top-tile share 7.0% -> 8.6%). perpE — the perpendicular rate in the FORCED population — does not move in ANY arm: that pool is 2 tiles ranked by heat alone and the only lever is a coin flip. Also registers j150's TR_TFIL_DIAG / TR_TFIL_DANGER_THRESHOLD in env_report + knownEnvNames + .env.example (test_env_report was red) and documents DANGER_THRESHOLD as quantisation-limited: heat comes in 5s, so the effective steps are 10/15/20 and 10-14 admits zero extra tiles. No battle, no server, no A/B run.
This commit is contained in:
@@ -113,6 +113,11 @@ TR_TFIL_BULLET_AURA=5.0 # tfil only: lava for the bullet's aura ring tiles
|
||||
TR_TFIL_TILE_REPLAN=self # self | enemy | off: when a dodge commitment is cancelled
|
||||
TR_TFIL_COMMIT_TICKS=15 # ticks to commit to a dodge point before replanning
|
||||
TR_TFIL_ARRIVE_TICKS=0.0 # hard bound: never pick a tile farther than this (ticks at 8px/tick); 0 = off = today's draw
|
||||
TR_TFIL_HOLD_WHEN_TRAPPED=off # on = when NO safe tile exists, hold position one tick instead of taking the 2 least-hot blocked tiles; off = today's fallback
|
||||
TR_TFIL_DANGER_THRESHOLD=10.0 # hard heat filter on the path; lava is quantised to 5, so the effective steps are 10/15/20 and 10-14 admits exactly what 10 does
|
||||
TR_TFIL_DIAG=off # on = fill the per-pick picker loss histogram (TfilLoss*); observability only
|
||||
TR_TFIL_GEO_MODE=off # off | turn | dist | both, each with a `-soft` (default) / `-topk` / `-rej` suffix; shapes the DRAW over the heat-filtered pool
|
||||
TR_TFIL_GEO_TAU=0.0 # deg; the geometric cost scale. 0 = off = today's uniform draw
|
||||
TR_TFIL_NO_REV=off # on = never reverse direction inside a corridor
|
||||
TR_TFIL_COMMIT_LOG= # path for the per-commit log; empty = no log
|
||||
TR_TFIL_COMMIT_ARRIVAL=off # on = hold the dodge tile until we are ON it (not a fixed dwell)
|
||||
|
||||
@@ -315,6 +315,8 @@ proc printEffectiveValues(ctx: EnvReportContext) =
|
||||
sourceOf("TR_TFIL_CORRIDOR_TICKS"))
|
||||
emit("TR_TFIL_ARRIVE_TICKS", $the_floor_is_lava.TfilArriveTicks,
|
||||
sourceOf("TR_TFIL_ARRIVE_TICKS"))
|
||||
emit("TR_TFIL_HOLD_WHEN_TRAPPED", onOff(the_floor_is_lava.TfilHoldWhenTrapped),
|
||||
sourceOfPresence("TR_TFIL_HOLD_WHEN_TRAPPED"))
|
||||
emit("TR_TFIL_WALL_HOTNESS", $the_floor_is_lava_ring.WallHotness,
|
||||
sourceOf("TR_TFIL_WALL_HOTNESS"))
|
||||
emit("TR_TFIL_WALL_RADIANCE", $the_floor_is_lava.WallRadiance,
|
||||
@@ -333,6 +335,14 @@ proc printEffectiveValues(ctx: EnvReportContext) =
|
||||
emit("TR_TFIL_COMMIT_MARGIN", $TfilCommitMargin,
|
||||
sourceOf("TR_TFIL_COMMIT_MARGIN"))
|
||||
emit("TR_TFIL_NOREV_SPEED", $TfilNoRevSpeed, sourceOf("TR_TFIL_NOREV_SPEED"))
|
||||
emit("TR_TFIL_DANGER_THRESHOLD", $the_floor_is_lava.TfilDangerThreshold,
|
||||
sourceOf("TR_TFIL_DANGER_THRESHOLD"))
|
||||
emit("TR_TFIL_DIAG", onOff(the_floor_is_lava.TfilDiag),
|
||||
sourceOfPresence("TR_TFIL_DIAG"))
|
||||
emit("TR_TFIL_GEO_MODE", $the_floor_is_lava.TfilGeoMode,
|
||||
sourceOf("TR_TFIL_GEO_MODE"))
|
||||
emit("TR_TFIL_GEO_TAU", $the_floor_is_lava.TfilGeoTau,
|
||||
sourceOf("TR_TFIL_GEO_TAU"))
|
||||
emit("TR_TFIL_TURN_BIAS", $TfilTurnBias, sourceOf("TR_TFIL_TURN_BIAS"))
|
||||
emit("TR_TFIL_TURN_REF_DEG", $TfilTurnRefDeg, sourceOf("TR_TFIL_TURN_REF_DEG"))
|
||||
# time-indexed bullet heat (default off = shipped flat model)
|
||||
@@ -652,6 +662,9 @@ proc knownEnvNames*(): seq[string] =
|
||||
"TR_TFIL_RANGE_LO", "TR_TFIL_RANGE_HI", "TR_TFIL_RANGE_TEMP",
|
||||
"TR_TFIL_RANGE_K", "TR_TFIL_CORRIDOR_HEAT", "TR_TFIL_WALL_HOTNESS",
|
||||
"TR_TFIL_CORRIDOR_TICKS", "TR_TFIL_ARRIVE_TICKS",
|
||||
"TR_TFIL_HOLD_WHEN_TRAPPED",
|
||||
"TR_TFIL_DANGER_THRESHOLD", "TR_TFIL_DIAG",
|
||||
"TR_TFIL_GEO_MODE", "TR_TFIL_GEO_TAU",
|
||||
"TR_TFIL_WALL_RADIANCE", "TR_TFIL_BULLET_CORE", "TR_TFIL_BULLET_AURA",
|
||||
"TR_TFIL_TILE_REPLAN", "TR_TFIL_COMMIT_TICKS", "TR_TFIL_NO_REV",
|
||||
"TR_TFIL_COMMIT_LOG", "TR_TFIL_COMMIT_ARRIVAL", "TR_TFIL_COMMIT_MARGIN",
|
||||
|
||||
Reference in New Issue
Block a user