PATH_WEAR_INCREMENT and PATH_WEAR_DECAY_RATE accumulate and decay per cell under foot traffic (terrain.ts), but nothing ever reads pathWear back. Confirmed via search, zero references in src/sim/systems/. It is rendered cosmetically (terrainLayer.ts) and otherwise inert.
Why it matters: this is the cheapest, most textbook ALife mechanism available in the codebase and it is half implemented. Ant-trail and desire-path emergence, routes strengthening through repeated use, is exactly what this data already models. It just is not feeding back into any decision.
Direction: give decideTargets a small bias toward higher pathWear cells during target scanning, so established routes become mildly more attractive to travel, reinforcing themselves. Low implementation cost since the write side infrastructure already exists.
Related files: src/sim/terrain.ts, src/sim/systems/visionMovementHarvest.ts, src/sim/constants.ts
PATH_WEAR_INCREMENT and PATH_WEAR_DECAY_RATE accumulate and decay per cell under foot traffic (terrain.ts), but nothing ever reads pathWear back. Confirmed via search, zero references in src/sim/systems/. It is rendered cosmetically (terrainLayer.ts) and otherwise inert.
Why it matters: this is the cheapest, most textbook ALife mechanism available in the codebase and it is half implemented. Ant-trail and desire-path emergence, routes strengthening through repeated use, is exactly what this data already models. It just is not feeding back into any decision.
Direction: give decideTargets a small bias toward higher pathWear cells during target scanning, so established routes become mildly more attractive to travel, reinforcing themselves. Low implementation cost since the write side infrastructure already exists.
Related files: src/sim/terrain.ts, src/sim/systems/visionMovementHarvest.ts, src/sim/constants.ts