The detail that grabbed me first: there are no endstops on the lines at all. Homing works by winding every line in at low current until each motor slips, with the model standing in a small cup that then lifts out. That sidesteps the problem where crossed lines with equal pull would tip a free buoy over. It sounds odd, and it seems to work well.
The build itself is tidy. A 30 cm desk piece carries a 3D-printed west cardinal buoy, yellow and black, hung on eight lines from an open frame held up by four wooden dowels and printed corner brackets. Four motors sit near the base and four near the top. An ESP32-S3 DevKitC-1 N8R8 drives TMC2209 steppers over two UART buses, and a hardware timer rather than a stepper library generates all eight STEP signals. Add a 1.9-inch ST7789 panel, an Adafruit HUSB238 for USB-C Power Delivery, a rotary knob on GPIO0 and a fan, and the parts list is complete.
On the software side, it pulls live wave data from NOAA NDBC, CDIP, the Irish Marine Institute, plus Belgian and Dutch North Sea networks, and for CDIP buoys it plays back their actual recorded motion. The loop runs 100 times a second and the motors hold sync at line speeds up to 150 mm/s. Setup goes through WiFiManager with a QR code shown on the display, and motor current is matched to whatever the negotiated charger can supply.
One open issue: on the prototype board the TMC2209 UART is write-only, so settings cannot be confirmed, though the production board adds the RX line to read drivers back. The springs-versus-stiff-lines question also still stands.