Trabajo / Fitizens — The AI Fitness Coach
Fitizens — The AI Fitness Coach
Cofundador y responsable de toda la parte técnica de una app de fitness con IA. 19 repos, publicada en App Store y Play Store.
Cofundé Fitizens en 2022 con un objetivo: construir un entrenador con IA capaz de ver cómo entrenas y decirte qué corregir. No un contador de repeticiones. No una superposición de pose. Un entrenador que entiende biomecánica, detecta problemas de técnica y los explica en lenguaje natural.
Durante cuatro años, mi cofundador y yo construimos el producto entero desde cero. Dos personas, sin financiación externa. Yo construí la app móvil, el pipeline de análisis de vídeo con IA, el backend serverless, la infraestructura de datos, el firmware de fusión de sensores, los algoritmos de detección de ejercicios por IMU, y todo lo que hay entre medias.
Dos Pivotes, Dos Reconstrucciones
Este producto pasó por dos pivotes importantes. Cada uno supuso reconstruir partes significativas de la base técnica.
El primer pivote fue de B2B a B2C. Empezamos construyendo una herramienta de gestión de gimnasios con sensores IMU por Bluetooth conectados al equipamiento. Los gimnasios no estaban interesados en adoptar hardware. Pivotamos a una app de consumidor que los atletas pudieran usar por su cuenta.
El segundo pivote fue de sensores a cámara. Habíamos pasado más de un año construyendo las librerías en C y C++ para fusión de sensores y detección de ejercicios, más la integración Bluetooth, más el pipeline de aprovisionamiento de hardware. Entonces decidimos apostar por el análisis de vídeo basado en LLMs. Los sensores nos daban datos precisos en tiempo real. La IA basada en cámara nos daba accesibilidad: sin hardware adicional, sin configuración, solo un móvil. Trade-offs diferentes, pero la accesibilidad ganó para un producto de consumidor.
Cada pivote preservó el conocimiento de dominio que habíamos acumulado (catálogo de ejercicios, biomecánica, patrones UX) mientras reemplazaba la capa técnica por debajo. Es la parte de la que nadie te avisa: la ingeniería más difícil que haces puede ser la ingeniería que acabas tirando.
Fitizens 2.0: AI Video Coach
Abres la app, eliges un ejercicio y grabas un vídeo de tu serie. La IA analiza cada fotograma, cuenta tus repeticiones, puntúa cada una, detecta problemas de técnica y te da feedback específico sobre qué mejorar. Todo desde la cámara del móvil, sin necesidad de hardware adicional.
El feedback no es genérico. Cada ejercicio tiene su propia rúbrica biomecánica: cómo es una buena ejecución, cuáles son los errores comunes, qué hace que una repetición sea un no-rep. La IA debate consigo misma internamente antes de puntuar, argumentando ambos lados para reducir el exceso de confianza.
Construimos un catálogo de 542 ejercicios, cada uno con su propia rúbrica, mapeo muscular y criterios de calidad. El sistema de puntuación va desde “Excelente” hasta “Inseguro”, con indicaciones de coaching específicas para cada nivel.
Lo probamos con más de 200 atletas en boxes de CrossFit en Madrid, iterando sobre el producto con sesiones de entrenamiento reales y feedback real. La app está publicada tanto en la App Store como en Google Play.
El stack abarca 19 repositorios que cubren desde la app hasta la IA y la infraestructura. El diagrama de abajo es una vista simplificada de cómo se conectan las piezas principales. En la práctica, cada caja esconde una complejidad considerable: el pipeline de IA tiene varias etapas especializadas, el backend orquesta Cloud Functions, y la capa de datos alimenta esquemas y catálogos de ejercicios a casi todos los servicios.
graph LR App(fa:fa-mobile-screen-button App Movil) Web(fa:fa-globe Web App) Cloud(fa:fa-cloud Backend) AI(fa:fa-brain Analisis de Video Multi-Etapa con LLMs) LLM(fa:fa-robot Proveedor LLM) Pay(fa:fa-credit-card Pagos) Eval(fa:fa-chart-line Evaluacion) App -->|Sube video| Cloud Web -->|Sube video| Cloud Cloud -->|Dispara| AI AI -->|Llama| LLM AI -->|Resultados| Cloud Cloud -->|Sincroniza| App Pay <--> Cloud AI <--> Eval
App Movil: Fitizens Athlete
Una app en Flutter con 115K líneas de código en 903 archivos, publicada en App Store y Google Play. Siete módulos de funcionalidades cubriendo grabación de vídeo, análisis con IA, catálogo de ejercicios, historial de sesiones, suscripciones, onboarding y ajustes. Procesamiento de vídeo en el dispositivo antes de que nada llegue a la nube.
Cloud Backend
Todo lo que ocurre entre que el usuario pulsa “Analizar” y recibe su informe de coaching. Construido íntegramente alrededor de Firebase: Cloud Functions en Python que cubren desde lanzar el pipeline de IA hasta gestionar el ciclo de vida de suscripciones, procesar pagos en tres plataformas (Stripe, Apple IAP, Google Play), automatizar emails y registrar analítica. Firestore almacena todos los datos de usuarios y análisis, Cloud Storage gestiona la subida de vídeos, y Firebase Auth se encarga de la autenticación.
graph LR Client(fa:fa-mobile-screen-button Apps Cliente) Auth(fa:fa-lock Firebase Auth) Storage(fa:fa-hard-drive Cloud Storage) DB[(fa:fa-database Firestore)] CF(fa:fa-bolt Cloud Functions) Stripe(fa:fa-credit-card Stripe) Apple(fa:fa-mobile-screen Apple IAP) Google(fa:fa-mobile-screen Google Play) Email(fa:fa-envelope Email) AI(fa:fa-brain Analisis de Video Multi-Etapa con LLMs) Client --> Auth Client --> Storage Client --> DB Storage -->|Dispara| CF CF -->|Escribe| DB Stripe -->|Webhooks| CF Apple -->|Webhooks| CF Google -->|Webhooks| CF CF --> Email CF --> AI
Pipeline de Analisis de Video Multi-Etapa con LLMs
Un pipeline que procesa vídeos de ejercicios a través de múltiples pasos especializados. Detecta el número de repeticiones y luego, para cada repetición, analiza la técnica de ejecución, extrayendo información detallada sobre problemas y fortalezas en el movimiento. El sistema produce informes estructurados con puntuación por repetición, niveles de confianza y feedback de coaching bilingüe.
Pipeline de Evaluacion de LLMs
Como saber si tu entrenador de IA es realmente bueno? Construimos un framework de evaluación dedicado con más de 900 vídeos de ejercicios de usuarios reales. Cada vídeo tiene anotaciones de ground truth hechas por humanos, y el sistema compara automáticamente las predicciones de la IA contra el criterio experto, midiendo la precisión entre versiones de prompts y actualizaciones de modelos.
Infraestructura de Datos
La verdadera ventaja competitiva. Años de conocimiento de dominio acumulado, codificado en datos estructurados que alimentan cada capa del producto. Un repositorio central de 50 esquemas JSON sirve como fuente única de verdad en todos los servicios, generando automáticamente modelos Python tipados publicados en un registro de paquetes privado.
Lo que construimos y recopilamos:
- Catálogo de 527+ ejercicios con descripciones bilingües, mapeo de grupos musculares, criterios de calidad, y rúbricas biomecánicas definiendo cómo es una buena ejecución, errores comunes y cues de coaching para cada ejercicio
- 900+ vídeos de ejercicios anotados de usuarios reales para la evaluación del LLM
- 40.000+ repeticiones etiquetadas de entrenadores profesionales en 130 ejercicios (era de sensores)
- Datasets de detección de ejercicios con datos crudos de acelerómetro y giroscopio, etiquetados por humanos en Label Studio
- 50 esquemas JSON definiendo cada contrato de datos del sistema
- Modelos Python autogenerados publicados en un registro de paquetes privado
Fitizens 1.0: IMU-Based AI Coach
Antes del pivote a cámara, el producto funcionaba con sensores IMU por Bluetooth. Usábamos dispositivos Movesense para capturar señales crudas de acelerómetro y giroscopio durante la ejecución de ejercicios. El sistema contaba repeticiones en tiempo real y ofrecía analíticas de precisión al milisegundo sobre tu entrenamiento. Esa etapa produjo parte del trabajo más exigente técnicamente de todo el proyecto.
Hardware IMU y Fusion de Sensores
Sensores Movesense sujetos al pecho mediante una banda pectoral, transmitiendo datos IMU de 9 ejes (acelerómetro, giroscopio, magnetómetro) por Bluetooth Low Energy a 104 Hz. Gestionábamos descubrimiento de dispositivos, emparejamiento, ciclo de vida de conexión y streaming de datos en tiempo real desde Dart.
Desarrollamos un firmware de fusión de sensores en C++ (algoritmo Madgwick AHRS, accesible desde Dart vía FFI) para convertir señales IMU crudas en señales procesadas de orientación y aceleración, permitiendo al sistema detectar a una persona realizando ejercicios en tiempo real.
Deteccion de Ejercicios y ML Operations
Desarrollamos 30 modelos de deep learning diferentes para detectar más de 130 ejercicios a partir de datos IMU, operando en tiempo real. Recopilamos señales IMU con más de 40.000 repeticiones de entrenadores profesionales de CrossFit para entrenar y validar los modelos. Los modelos eran Redes Convolucionales Temporales, cuantizadas a TensorFlow Lite para inferencia en dispositivo en menos de 5ms.
Detrás de los modelos, construimos un pipeline automatizado de etiquetado, entrenamiento y despliegue de modelos directamente al dispositivo: ETL desde Firebase a Label Studio para anotación humana, tracking de experimentos con MLflow y Optuna para optimización de hiperparámetros, y despliegue de modelos cuantizados a dispositivos móviles.
En Números
| Métrica | Valor |
|---|---|
| Repositorios | 19 |
| Líneas de código (todos los proyectos) | 380.000+ |
| Cloud Functions | 14 |
| Catálogo de ejercicios | 527+ ejercicios |
| Modelos de deep learning | 30 |
| Repeticiones etiquetadas | 40.000+ |
| Usuarios reales | 200+ |
| Plataformas | iOS + Android |
| Equipo | 2 cofundadores |