# GOL-039: Pursuit Loop

One shuffled closed loop: every cell pursues the next and has one pursuer. Randomly phased escape compasses overcome blocks; Conservation of momentum optionally waits for an approaching target.

[Open simulation](https://100gol.com/experiments/039) · [Directory](https://100gol.com/experiments)

## Targeting loop

Initialization shuffles all living identities once with seeded Fisher–Yates and links each to the next, including last to first. For two or more cells, following targets visits every cell exactly once before closing; each has exactly one pursuer. Targets and population stay fixed. One cell has no target and stays put; empty worlds remain empty. Unlike independent Pursuit assignments, there are no shared targets or separate targeting cycles.

## Compasses and movement

Each cell starts with a uniformly random eight-way escape heading and independent 50/50 fixed clockwise or counterclockwise sense. A separate angular seed controls these traits. The cardinal compass aims at its target, updating after every Step, even when blocked. Preserve an equally best prior bearing; otherwise use private seeded ties. Rotate the escape compass one 45-degree notch per Step, never per advance. Wrapping uses shortest wrapped bearings and seam-crossing moves; bounded edges block outward moves.

## Blocked waits

Pursuit distance 1–3 advances one square at a time. Each advance reads frozen occupancy; departing cells still block it. The first obstruction ends the turn, retaining partial progress. Blocked wait 0–16 counts extra complete waiting turns: zero permits escape on the next turn. An eligible blocked cell proposes one square in its displayed escape direction. Only unique claims to empty squares move; competing cardinal/angular claims all wait. No scans, swaps, tunneling, retries or retargeting. The rotating compass offers later attempts but cannot guarantee escape from a packed field.

## Controls and inspection

Rule composer contains Blocked wait, Pursuit distance and Conservation of momentum. Initial condition includes field and Loop seeds, density, classic fields, size and topology. The saved targetSeed is the Loop seed. Inspection reports target, pursuer, both compasses, waiting progress, proposals, conflicts and exact next turn. Previous observer/target positions and exact squared distance before/after explain the momentum decision. Follow target and Follow pursuer walk the loop without adding a graph. Reincarnation, original homes, pending returns and their controls are removed.

## Reproducibility

Version five replaces the contact-reincarnation switch with conserveMomentum. Versions one, two and four are rejected as different models; exact complete version-three rules upgrade with momentum off. Complete presets and shares save both numeric rules, the switch, field profile, pattern, density, field/target/angular seeds and topology. Default: 10% wrapped 160-square, seeds 3800038/3800039/3800040, wait zero, distance one, momentum off, 16 Steps/second. All randomizers preserve the switch, angular seed, field size and wrapping, then reset and play. Reset restores the field, loop, compasses and private streams with no movement history. Rule edits preserve positions and previous-turn history, and clear blocked waits. Saved defaults restore complete openings; explicit links override them.

## Conservation of momentum

Optional switch, off by default. Compare the target’s previous and current positions from the pursuer’s previous position, holding that reference fixed. Use exact squared Euclidean distance and shortest wrapped separation when wrapping is on. If the target got strictly closer, voluntarily wait for the whole turn, including angular escape. Equal or farther permits ordinary movement. Decide once from the committed previous/current snapshots before any advances. The first turn has no history and pursues normally. Voluntary waits occupy their squares, preserve blocked timers and still update both compasses. History is recorded every turn even when the switch is off; enabling mid-run uses that history. Reset clears it. This is anticipation behavior, not a physical velocity simulation.

## Reproduce a starting configuration

[Download example JSON](https://100gol.com/api/experiments/039/configuration). Import it using Share & reproduce in the simulation controls. It starts paused at Step zero. Files contain rules and initial conditions, not evolved boards or manual edits. See [format, limitations and automated access](https://100gol.com/agents).
