DEV Community

Cover image for An Olympic Windfoil (IQFoil) race and training session performance analysis toolset
Mark Ward
Mark Ward

Posted on

An Olympic Windfoil (IQFoil) race and training session performance analysis toolset

1. What I Built: The SailMetrics Ecosystem

For this project, I tackled the "invisible" challenge of iQFOiL windfoiling: the high-speed, 6-degree-of-freedom (6-DOF) physics that occur beneath the water's surface. To help athletes analyze and improve their performance, I built a three-tier telemetry ecosystem:

The SailMetrics Kotlin App: Running on a Google Pixel 3a (flashed with LineageOS), this edge-device app serves as the "black box." It polls the IMU (accelerometer/gyroscope), GPS, and barometer at high frequencies to capture the motions of the windfoil board in multiple dimensions as well as display basic speed and heading feedback to the rider.

Windfoil Visualizer: A Python/Matplotlib dashboard that renders a 3D "Digital Twin" of the board’s orientation using a model of the board rendered in 3D space as well as graphs fusing the IMU sensor data to recreate the board's pitch and heel and allows user to replay and analyse each second of their session. Multiple sessions can also be compared with each other.

SailPerfView (web viewer): An online session analysis tool that allows sailors and coaches views of the session data recorded either by the SailMetrics Andoid App or a Garmin device (FIT file), rendering the sailing session track on a map and displaying insights into the sailing performance with VMG Polar Chart, Performance Statistics, and Interactive Metrics chart with synchonised hover markers linked to the track map.

The Role of Google Gemini:
Gemini acted as my a technical adviser, not only writing code snippets but also helping bridge the gap between abstract fluid dynamics (based on research papers like Urbański’s "Theoretical investigation of pitch control") and tangible Python/Kotlin code. It was instrumental in implementing the Pitch Phase Portrait and other graphs visualising the 3D data.

2. What I Learned: From Theory to Telemetry

The biggest technical takeaway was Sensor Fusion and Noise Mitigation.

Filtering the "Invisible": I learned how to extract "Foil Height" from a barometric pressure signal. Gemini helped me design a three-stage filtering pipeline: noise smoothing, rolling baseline subtraction, and height derivation.

Performance Optimization: Animating 3D geometry in Matplotlib can be sluggish. Gemini suggested methods to improve UI responsiveness when replaying the data timeline animation.

Soft Skills: I learned the value of "Hardware Recycling." Using Gemini to troubleshoot LineageOS-specific sensor API calls on a Pixel 3a proved that high-end sports tech doesn't require high-end modern hardware—just smart software.

3. Google Gemini Feedback: The Good, The Bad, and The Ugly

The Good (The "Aha!" Moments):
Gemini’s ability to "read" and intepret academic papers (like the Urbański paper) and suggest how to translate formulas into Python pandas logic.

Google AI support in both Android Studio for developing the Kotlin App and VSCode for developing the Python backend code provided consistency and convenience.

The Google AI enabled development toolset and workflow enabled very rapid development of a Proof of Concept that I was able to start collecting data in the space of a weekend with a basic visualisation app. While it took a little longer to build more sophisticated visualisation dashboards incorporating 3D data fusion, it is possible to experiment with different ideas without much effort.

The friction (The "Candid" Feedback):
To be honest this project went very smoothly as it was approached in disrete stages without complete interdependencies, and code changes were managed with git.

4. Looking Forward: The Next Reach

More testing and data gathering is required to validate the current functionality, I am also interested in incorporating AI into the Visualisation dashboards so that it can access the session data directly and provided insignts into the sailor performance and board tuning.

The project was inspired by amazing data analytics that is occuring in the Americas Cup (AC75) and SailGP (GP) foiling classes, and how that has helped the crews. The goal of this project is to provide windfoil sailors access to some similar data insights at a much lower cost by leveraging older smartphones as data recorders and the power of Google AI.

This project proved that with Google Gemini, an amateur builder can take complex academic theory and turn it into a tool that helps athletes fly higher and faster.

Urbański, O. (2023). Theoretical investigation of pitch control and stability for hydrofoiling windsurfing. Adam Mickiewicz University, Poznań.

Top comments (0)