Simulate
01A 20 Hz simulation races six boats, then records four position updates per second
Four boat positions each second, continuous motion, review any moment
This prototype runs a repeatable fleet simulation. Live tracker data, water current and longer races remain future work.
The render loop reuses working state. The water concentrates detail near the camera instead of drawing a dense grid everywhere.
Interactive race replay Loads as it approaches
A smooth curve uses each update's speed and direction. The method is cubic Hermite interpolation.
[ Read the source ]Choose chase, broadcast, tactical, freeform or a 2D chart. Every view follows the same replay time.
[ Read the source ]Seek any moment, step one update, change speed or compare against the raw track.
[ Read the source ]Review starts, upwind progress (VMG), target speed, maneuvers, speed loss and fleet position.
[ Read the source ]The analyst uses six race tools and one sailing glossary. Its answers link back to the replay.
[ Read the source ]Slow frames lower detail. The scene skips unchanged work and reports draw calls and triangle counts.
[ Read the source ]How it works
[01]The simulator creates sparse tracker-style data. Each step limits what the next step must guess, and replay stops at the final update.
A 20 Hz simulation races six boats, then records four position updates per second
The path passes through every position and caps heading changes at 60 degrees per second
The page draws the fleet, water and course in 3D, with a synchronized 2D view
Tests check repeatable races, exact recorded positions, bounded turns and final-position behavior
Build decisions
[02]Replay clock
I kept replay time at the center so scrubbing recalculates the scene, chart, instruments and standings for the same moment.
Built in Layline
[ View the repo ]