Each runner is on the curve of the lane, starting at its stagger; at 20 seconds the field is on the back straight.
The picture above was drawn when the docs were built. The script below draws it again with the published package.
import { raceReplay } from "@johnmorrisdotca/kyogijo-stadiums/athletics";
import { drawFrame } from "@johnmorrisdotca/kyogijo-stadiums/replay";
const runners = Array.from({ length: 8 }, (_, i) => ({ lane: i + 1, name: "Runner " + (i + 1), time: 44.2 + i * 0.25, reaction: 0.14 }));
const replay = raceReplay(runners, { race: "400m" });
const svg = drawFrame(replay.options, replay.timeline, 20, replay.look);
This page imports the package from jsDelivr (major version 0), which serves only versions that have been published to npm. A feature added after the last release is not in it: the page then keeps the picture above and says why. The docs were built from version 0.6.1.