← Todos los proyectos

APCL

Una app multiplataforma y offline-first que ejecuta modelos de machine learning preentrenados para evaluación de pavimentos íntegramente en el dispositivo — sin internet, sin servidor, sin excusas en campo.

FlutterDartONNX RuntimeMaterial 3GoRouterfl_chart

El verdadero lugar de trabajo de un ingeniero de pavimentos no es un escritorio — es el acotamiento de una carretera, una pista de aterrizaje, un tramo remoto de autopista donde la señal celular murió kilómetros atrás. Ahí es justo donde tiene que ocurrir el análisis, y ahí es justo donde la mayoría del software deja de funcionar: en el momento en que necesita un servidor, queda inservible.

APCL le da la vuelta a eso. Es una app de análisis de pavimentos que ejecuta modelos de machine learning preentrenados directamente en el dispositivo — sin conexión, sin backend, sin ida y vuelta a la nube. La abres en un teléfono en campo, capturas las mediciones y obtienes una predicción en el momento.

Qué hace

  • Predicción de PCI. Calcula el Índice de Condición del Pavimento a partir de parámetros de campo y lo lleva a un flujo de decisión que recomienda acciones de mantenimiento.
  • Evaluación EFC. Evaluación funcional y de fricción, dividida en dos rutas — FI y NF — cada una respaldada por su propio modelo, donde el resultado de FI puede precargar el análisis de NF para que ambos fluyan juntos.
  • Grado PG. Predice la temperatura de falla del ligante a partir de entradas reológicas (viscosidad, torsión, punto de reblandecimiento, penetración) y la traduce en un grado PG recomendado.
  • Herramienta SDCI y un módulo informativo de IMT Pave Express completan el kit de ingeniería de pavimentos, con resultados presentados como gráficas interactivas, no números estáticos.
  • Funciona en cualquier parte. Una sola app en Android, iOS, Windows, macOS y Linux — y, lo más importante, funciona con la red apagada.

Bajo el capó

Todo el producto se construye alrededor de una restricción dura: el machine learning tiene que ejecutarse en el dispositivo. Esa decisión moldea todo lo demás.

Inferencia en el dispositivo con ONNX Runtime. Los modelos se exportan al formato ONNX y se cargan directamente desde los assets empaquetados de la app en tiempo de ejecución. La inferencia corre localmente a través de ONNX Runtime sobre Dart FFI — los parámetros de entrada se convierten en un tensor tipado, la sesión se ejecuta y la predicción regresa, todo sin una sola llamada de red. Nada de una medición sale jamás del dispositivo.

Una capa de servicios consciente de la plataforma. ONNX Runtime depende de librerías nativas que no existen en web, así que cada modelo vive detrás de su propio servicio con compilación condicional — una implementación nativa donde dart:io está disponible (móvil y escritorio) y un stub elegante en el resto. El mismo código de llamada corre en todos los destinos; el backend correcto se conecta en tiempo de compilación. Los servicios además degradan con elegancia: si el runtime nativo falta en un dispositivo, la app sigue en pie y reporta la limitación en lugar de caerse.

Un código base, cinco plataformas. Construida sobre Flutter / Material 3, con GoRouter centralizando la navegación detrás de constantes de ruta tipadas y fl_chart convirtiendo las salidas de los modelos en visualizaciones en vivo. Los archivos de modelo viajan como assets de la app, así que toda la capacidad de ML va dentro del binario — se instala una vez y queda plenamente funcional offline para siempre.

El stack

  • App — Flutter (Material 3) con Dart 3, GoRouter para navegación tipada, fl_chart para visualizaciones interactivas de resultados.
  • Machine learning — cuatro modelos preentrenados — PCI, PG y EFC (que se divide en sus sub-modelos FI y NF) — exportados a ONNX y ejecutados en el dispositivo con ONNX Runtime vía Dart FFI; capa de servicios por modelo con compilación condicional nativa/web.
  • Plataformas — Android, iOS, Windows, macOS, Linux desde un solo código base; Firebase Core para integración y distribución de la app.

Vale la pena destacar

Lideré APCL como ingeniero líder de un equipo de tres, siendo dueño del ciclo de vida completo — desde la arquitectura y la estrategia de integración de ML hasta la UX y las builds multiplataforma. Está en desarrollo activo, con un lanzamiento público en camino.

Lo más destacado es la apuesta de ingeniería en sí: poner inferencia real de machine learning íntegramente en el dispositivo y offline-first, en cinco plataformas, desde un solo código base de Flutter. La mayoría de las “apps de ML” son un cliente delgado frente a un endpoint en la nube — en cuanto cae la señal, están muertas. APCL es lo contrario. La inteligencia vive en el binario, el análisis ocurre donde está la carretera y la red nunca está en la ruta crítica. Esa es la diferencia entre un software que luce bien en demo y un software en el que un ingeniero puede confiar de verdad en campo.

¿Un café y platicamos?

¿Te gustó lo que leíste? Construyo productos así de punta a punta — y siempre estoy para una buena plática. Hablemos del tuyo, o nomás intercambiamos ideas con un café.

Rentheria · Guadalajara, México