IACANVASREACT

Calculadora
IA Interactiva

Aplicación web interactiva que permite resolver problemas matemáticos dibujados en un canvas. El usuario puede escribir ecuaciones, crear formas, graficar funciones X/Y, seleccionar áreas del lienzo y enviar la captura al backend para que Gemini interprete el problema y genere una respuesta visual, movible y organizada.

Caso de estudio

Del problema al resultado

Una lectura rápida del contexto, la solución construida y la evidencia que permite evaluar el impacto real del proyecto.

01
Problema
Qué había que resolver

Resolver ejercicios matemáticos desde dibujos normalmente obliga al usuario a escribir fórmulas exactas o usar editores poco naturales. El reto era permitir que el usuario planteara problemas como lo haría en una libreta: escribiendo datos, dibujando figuras, marcando incógnitas y dejando que la IA interpretara el contexto visual.

02
Solución
Cómo se construyó

Se construyó una interfaz basada en canvas con herramientas de dibujo, borrador parcial, selección por zona, formas rápidas, gráficas X/Y y tarjetas de respuesta independientes. El backend recibe una captura optimizada del área útil, procesa la imagen con Gemini y devuelve respuestas estructuradas que el frontend presenta como tarjetas movibles, expandibles y fijables.

03
Resultado
Qué se consiguió

La aplicación permite demostrar resolución de sistemas 2x2, 3x3, problemas de sombra, alcance entre autos y análisis de gráficas. El flujo reduce fricción, evita enviar todo el canvas cuando no es necesario y mejora la lectura al separar dibujos, resultados y controles.

5+
Tipos de ejercicios demostrado

Sistemas lineales, problemas geométricos, movimiento relativo y gráficas.

Arquitectura

Stack técnico por capas

Separación real entre interfaz, API, almacenamiento y servicios externos utilizados en el proyecto.

01Frontend
REACTTYPESCRIPTVITECSS MODULESAXIOSCANVAS API
02Backend / API
PYTHONFASTAPIGOOGLE GENAI SDKPILLOWUVICORN
03Servicios externos
GOOGLE GEMINIVERCELRAILWAYCLOUDINARY

Una calculadora visual impulsada por IA

Calculadora visual con inteligencia artificial construida para resolver ejercicios matemáticos desde dibujos y anotaciones manuales. El frontend ofrece un canvas interactivo con herramientas de dibujo, borrador, selección por área, deshacer/rehacer, creación rápida de formas, gráficas X/Y y tarjetas de respuesta que pueden moverse, fijarse, copiarse, expandirse o colapsarse. El backend procesa la imagen con Gemini, devuelve resultados estructurados y maneja errores de API, estado del servicio y límites de uso para evitar sobrecarga.

✏️
Canvas matemático interactivo
Permite escribir, dibujar, borrar partes específicas, mover elementos creados y mantener el flujo visual de una libreta digital.
🧠
Resolución con IA visual
Envía capturas del canvas al backend para que Gemini interprete ejercicios escritos o dibujados y devuelva respuestas procesadas.
📈
Gráficas X/Y y formas rápidas
Incluye creación de gráficas, puntos, cuadrados y triángulos editables para representar problemas visuales.
🧩
Respuestas independientes
Cada resultado aparece en una tarjeta propia que puede moverse, copiarse, fijarse, colapsarse o expandirse.
⚙️
Flujo robusto de backend
Muestra estado del backend, procesamiento activo, errores claros y limitación de solicitudes para proteger la API.
Construcción técnica

Cómo está construido

Secciones reales del proyecto con decisiones técnicas, procesos y fragmentos de código destacados.

utils.py
1# Conexion a gemini2response = client.models.generate_content(3 model=settings.GEMINI_MODEL,4 contents=[5 {6 "role": "user",7 "parts": [8 {"text": prompt},9 {"inline_data": {"mime_type": "image/png", "data": image_base64}},10 ],11 }12 ],13)14
01
Reconocimiento de escritura a mano
Lograr que el modelo IA reconozca expresiones matemáticas escritas a mano con alta precisión, independientemente del estilo de escritura del usuario.
02
Separar dibujo, resultados y controles
El canvas necesitaba permitir dibujo libre sin que las respuestas bloquearan el problema. Se separaron las respuestas en tarjetas independientes con posición, estado y acciones propias.