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

Published: (March 3, 2026 at 10:34 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

What I Built: The SailMetrics Ecosystem

  • SailMetrics Kotlin App – Runs on a Google Pixel 3a (flashed with LineageOS) and acts as the “black box.” It polls the IMU (accelerometer/gyroscope), GPS, and barometer at high frequencies to capture the windfoil board’s motions in multiple dimensions, while also displaying 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. It fuses IMU sensor data to recreate pitch and heel, allows users to replay and analyse each second of a session, and supports side‑by‑side comparison of multiple sessions.

  • SailPerfView (web viewer) – An online session‑analysis tool that ingests data recorded by the SailMetrics Android app or a Garmin device (FIT file). It renders the sailing track on a map and provides insights via a VMG Polar Chart, performance statistics, and an interactive metrics chart with synchronized hover markers linked to the track map.

What I Learned: From Theory to Telemetry

  • Sensor Fusion and Noise Mitigation – Extracting “Foil Height” from barometric pressure required a three‑stage filtering pipeline (noise smoothing, rolling baseline subtraction, height derivation), designed with the help of Google Gemini.

  • Performance Optimization – Animating 3D geometry in Matplotlib can be sluggish; Gemini suggested techniques to improve UI responsiveness during timeline replay.

  • Soft Skills – Learned the value of “Hardware Recycling.” Troubleshooting LineageOS‑specific sensor API calls on a Pixel 3a demonstrated that high‑end sports tech can be built on older smartphones with smart software.

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

The Good (The “Aha!” Moments)

  • Google AI support in Android Studio (for the Kotlin app) and VS Code (for the Python backend) provided consistency and convenience.
  • The AI‑enabled toolset enabled rapid development of a proof of concept, allowing data collection within a weekend using a basic visualisation app.
  • Although more sophisticated 3D dashboards took longer to build, the workflow made it easy to experiment with different ideas without much effort.

The Friction (The “Candid” Feedback)

No specific issues were detailed in the original content.

Looking Forward: The Next Reach

  • Conduct more testing and data gathering to validate current functionality.
  • Incorporate AI directly into the visualisation dashboards to access session data and provide real‑time insights into sailor performance and board tuning.
  • Inspired by data analytics in the America’s Cup (AC75) and SailGP foiling classes, the goal is to deliver comparable insights to windfoil sailors at a much lower cost by leveraging older smartphones as data recorders and the power of Google AI.
  • This project demonstrates that, with Google Gemini, an amateur builder can translate complex academic theory into a practical tool that helps athletes fly higher and faster.
0 views
Back to Blog

Related posts

Read more »

Meilisearch Python setup

Docker Compose Service yaml chatcodfiscal-meilisearch: image: getmeili/meilisearch:v1.16 check for the latest version container_name: chatcodfiscal-meilisearch...