El Dentista Oveja Autora: Nathalia Carolina Padrón Bavutti Titulo: Aplicación Odontológica, «El dentista Oveja» Preview Página en vivo Click para acceder a la Versión Live Github:https://github.com/NattyDCI/ml5-facemesh-project Sobre el proyecto Este proyecto explora experiencias interactivas para la primera infancia utilizando detección facial en tiempo real para fomentar hábitos de…
El Dentista Oveja Autora: Nathalia Carolina Padrón Bavutti Titulo: Aplicación Odontológica, «El dentista Oveja» Preview Página en vivo Click…
Este proyecto explora experiencias interactivas para la primera infancia utilizando detección facial en tiempo real para fomentar hábitos de higiene a través del juego.
En el laboratorio HealthySmile, nos enfocamos en diseñar experiencias digitales que combinan aprendizaje, emoción e interacción.
Concepto y diseño del personaje
– La oveja se percibe como un animal suave, tranquilo y amigable, ideal para niños de 2 a 4 años.
– Sus formas simples funcionan bien en filtros faciales.
– Evoca ideas de limpieza y cuidado (lana blanca, suavidad).
– La estética de Halloween se plantea como un “terror seguro”, evitando generar miedo.
– Su diseño ligeramente extraño (cicatriz, herida) genera curiosidad sin rechazo.
La oveja funciona como un puente entre la fantasía y el aprendizaje.
Bocetos
Este fue mi boceto inicial Screenshot
⚙️¿Cómo funciona?
1.Pantalla de carga
Una barra de progreso se completa mientras se cargan los recursos.
2. Activación de cámara
El usuario debe activar la cámara para comenzar la experiencia.
3. Interacción facial
– Aparece un filtro facial de oveja con temática de Halloween.
Cuando el niño/a abre la boca:
– Aparecen partículas similares al jabón
– Elementos decorativos se animan (dientes y calabazas)
– Salen burbujas de la boca
4.Sistéma de feedback
Cada 5 segundos de interacción correcta:
– Aparece un mensaje motivador
– Un temporizador visual se llena y se vuelve verde
– Un icono de “pulgar arriba” refuerza el logro
– Esta burbuja fue pensaba principalmente como feedback visual, ya que los niños aún no leen.
5.Fin de interacción
Cuando se cierra la boca:
– Las animaciones se detienen y las burbujas desaparecen.
Acerca de la implementación
He desarrollado este proyecto utilizando p5.js y ml5.js.
Con p5.js gestiono toda la parte visual e interactiva, incluyendo el renderizado, la interfaz, las animaciones y el uso de WEBGL para trabajar con una malla facial.
Para la detección facial en tiempo real utilizo FaceMesh de ml5.js, que me permite identificar puntos clave del rostro. A partir de estos datos, detecto cuándo la boca está abierta y activo una lógica interactiva basada en tiempo, generando feedback visual como mensajes, contador y animaciones de burbujas.
Además, utilizo una malla facial triangulada con coordenadas UV para aplicar una textura que se adapta al movimiento y orientación de la cara en tiempo real.
En conjunto, combino visión por computador y gráficos interactivos para crear una experiencia educativa y gamificada.
Tecnología
– ml5.js (FaceMesh) – para reconocimiento facial en tiempo real – p5.js – for visualizaciiones creativas y sketches – Electron – para empacar el proyecto como una plataforma para uso en Desktop y Mobile
Recursos
FaceMesh (ml5.js)
– https://learn.ml5js.org/#/reference/facemesh
Utilizado para la detección de puntos faciales en tiempo real.
Learning Resource (Coding Train)
– Daniel Shiffman – The Coding Train
Este tutorial fue fundamental para implementar FaceMesh.
Índice Introducción y objetivo Decisiones técnicas librería de reconocimiento Arquitectura y estructura del código Decisiones estéticas Flujo de desarrollo 1. Introducción y objetivo En esta práctica, se ha desarrollado una aplicación de escritorio interactiva con el objetivo de fomentar buenos hábitos de salud dental en niños. La idea principal es la siguiente: el usuario debe mantener la boca abierta el máximo tiempo posible, simulando el gesto de tener la boca abierta mientras un dentista o mientras se realizan ejercicios de…
Índice Introducción y objetivo Decisiones técnicas librería de reconocimiento Arquitectura y estructura del código Decisiones estéticas Flujo de desarrollo 1. Introducción y objetivo En esta práctica, se ha desarrollado una aplicación de escritorio interactiva con el objetivo de fomentar buenos hábitos de salud dental en niños. La idea…
Índice Introducción y objetivo Decisiones técnicas librería de reconocimiento Arquitectura y estructura del código Decisiones estéticas Flujo de desarrollo…
Índice
Introducción y objetivo
Decisiones técnicas librería de reconocimiento
Arquitectura y estructura del código
Decisiones estéticas
Flujo de desarrollo
1. Introducción y objetivo
En esta práctica, se ha desarrollado una aplicación de escritorio interactiva con el objetivo de fomentar buenos hábitos de salud dental en niños. La idea principal es la siguiente: el usuario debe mantener la boca abierta el máximo tiempo posible, simulando el gesto de tener la boca abierta mientras un dentista o mientras se realizan ejercicios de limpieza dental.
La aplicación se ha construido con p5.js para la parte visual y de partículas, MediaPipe FaceLandmarker para la detección facial en tiempo real, y Electron para empaquetar todo como una aplicación de escritorio.
2. Decisiones técnicas
Dentro de las diferentes opciones se planteó utilizar las siguientes:
js (la sugerida por el enunciado)
MediaPipe Task Vision código abierto de Google
Finalmente se escogió MediPipe por dos razones de peso una de ellas abordando las capacidades tecnológicas del modelo y la otra de capacidad de trabajo. Y es que la primera son los 478 puntos de referencia que MediaPipe coge de la cara lo que da un grado mucho mayor de precisión y la segunda es la capacidad de delegar el trabajo a la CPU creando programas mucho más factibles a nivel de rendimiento.
3. Arquitectura y estructura del código
Para no entrar en detalle muy técnico voy a indicar de forma general la estructura de este código:
Tenemos el archivo man.js que es la entrada de Electron quien gestiona las ventanas, permisos y arranca el proyecto como tal.
html carga la HUD es decir la parte visual y los diferentes scripts.
css solicitado por el enunciado independiente y desarrollado por nosotros, con fuentes de Google fonts de Halloween, por ejemplo.
js y particleSystem.js gestionan los estilos, timings y condicionales de las partículas
js se encarga de definir las constantes globales, como por ejemplo el parámetro de obertura de boca.
4. Decisiones estéticas
La paleta de colores y el estilo del proyecto se han establecido en base a diferentes referencias que he encontrado por internet, de todas estas he localizado los colores comunes que son los siguientes y los que se han utilizado finalmente en el proyecto.
Malva / Violeta (#6B2D7B, #4A1D5C) — color principal de fondo y elementos de la UI
Naranja dorado (#E8A030) — color secundario, presente en el HUD y en los elementos de calabaza.
Crema (#FFF5E6) — color base del texto y de los fantasmas, aporta calidez y contraste suave.
Coral (#E85D3A) — usado en botones y acentos, da vida y energía a la interfaz.
Amarillo (#F5C518) — para los detalles brillantes y las chispas.
5. Flujo de desarrollo
Durante la creación de este proyecto se ha ido iterando en diferentes ideas y conceptos para acabar teniendo una propuesta completa como la de ahora.
Por ejemplo, en un principio se propuso la idea de crear una serie de minijuegos llegados a un porcentaje de progreso, estos minijuegos estaban pensados para utilizar otras características de MediaPipe como son detectar el movimiento de los ojos o las diferentes formas que podía crear la boca. Esto en un inicio me pareció una buena idea, pero luego vi que rompía con el principio de la idea propuesta y la desestimé.
Otra idea que tuve y que si que esta en la propuesta final es el uso de recompensas visuales para tener al usuario activo y animarle a seguir con la actividad. A este recurso le llamo “anillos dinámicos” y funciona de la siguiente forma: se trata de un círculo que decrece alrededor de la boca del usuario y que al hacerse completamente pequeño explotan muchas partículas dando ese subidón para seguir jugando.
Este proyecto es una pieza interactiva creada con p5.js, pensada para jugar con la cámara y generar una experiencia visual divertida y reactiva. El sketch detecta el rostro del usuario y responde a sus gestos mediante animaciones, partículas y elementos gráficos que se activan cuando la boca se abre, se mueve o cambia de forma. La idea es transformar un gesto cotidiano en una pequeña experiencia creativa. El desarrollo lo realicé inicialmente en Visual Studio Code, donde organicé todo el…
Este proyecto es una pieza interactiva creada con p5.js, pensada para jugar con la cámara y generar una experiencia visual divertida y reactiva. El sketch detecta el rostro del usuario y responde a sus gestos mediante animaciones, partículas y elementos gráficos que se activan cuando la boca se…
Este proyecto es una pieza interactiva creada con p5.js, pensada para jugar con la cámara y generar una experiencia…
Este proyecto es una pieza interactiva creada con p5.js, pensada para jugar con la cámara y generar una experiencia visual divertida y reactiva. El sketch detecta el rostro del usuario y responde a sus gestos mediante animaciones, partículas y elementos gráficos que se activan cuando la boca se abre, se mueve o cambia de forma. La idea es transformar un gesto cotidiano en una pequeña experiencia creativa.
El desarrollo lo realicé inicialmente en Visual Studio Code, donde organicé todo el código, los recursos visuales y sonoros, y preparé la versión empaquetada con Electron para convertirlo en una aplicación de escritorio. Una vez finalizado, subí el sketch al editor online de p5.js para generar el enlace FullScreen que permite visualizarlo directamente desde el navegador.
¿Cómo funciona?
Activa la cámara y detecta tu rostro.
Analiza la posición de la boca mediante FaceMesh.
Cuando detecta que la boca se abre, se activan animaciones y elementos sonoros.
Es una experiencia sencilla, inmediata y pensada para que cualquiera pueda probarla sin instalar nada.
Este proyecto se ha desarrollado en local, FaceMesh y los archivos multimedia requieren servidor local para funcionar correctamente. Por este motivo, no…
Este proyecto se ha desarrollado en local, FaceMesh y los archivos multimedia requieren servidor local para funcionar correctamente. Por este motivo, no se ha utilizado el editor online de p5.js. Entrega de la actividad R2 …
Este proyecto se ha desarrollado en local, FaceMesh y los archivos multimedia requieren servidor local para funcionar correctamente. Por…
Este proyecto se ha desarrollado en local, FaceMesh y los archivos multimedia requieren servidor local para funcionar correctamente. Por este motivo, no se ha utilizado el editor online de p5.js.
Debatecontributions 1en Halloween Dental, Interacción con FaceMesh
Egoitz Michelena de la Torre says:
Visibilidad: Pública
Mi objetivo era crear una experiencia interactiva de Halloween utilizando la cámara y detección facial. Quería que el usuario pudiera activar efectos especiales simplemente abriendo la boca, combinando elementos visuales (calabaza, murciélagos, arañas) con sonido y animaciones.
La idea era, una pantalla de inicio despues una explosión de murciélagos para que acabe entrando una cámara con efectos graficos cuando abres la boca.
Definí los elementos principales:
Una calabaza animada en la pantalla de inicio, Un botón llamativo para empezar, Una secuencia con murciélagos volando, La cámara mostrando la cara del usuario convinada con efectos que se activan al abrir la boca… partículas mágicas, ojos rojos brillantes, arañas cayendo.
Programé una calabaza que se mueve para llamar la atencion del usuario hacia el boton y dinamizar un poco la escena.
Al pulsar el boton de inicio, empieza la música, suena una risa, y aparecen unos murciélagos que salen volando sorprendiendo al usuario.Después de 2 segundos, pasa a la cámara. He puesto un temporizador para cerciorarme de que se activa la camara, ya que he tenido problemas con la visualizacion de la misma a pesar de que veia que se activava. He Configurado FaceMesh para detectar la cara en tiempo real, esto me ha permitido obtener los landmarks y usarlos para activar todos los efectos cuando el usuario abre la boca. Comparo la distancia entre dos puntos del labio superior e inferior.
Si la distancia es grande, se supone que la boca está abierta, por lo que se activan los efectos de visualizacion.
La idea surgió de forma bastante rápida ya que quería representar el reloj como si fuese un ser vivo por lo que la idea de implementar animales resulto muy orgánica. La reinterpretación de la hora además del propio estilo de los números es la representación de los segundos…
La idea surgió de forma bastante rápida ya que quería representar el reloj como si fuese un ser vivo…
La idea surgió de forma bastante rápida ya que quería representar el reloj como si fuese un ser vivo por lo que la idea de implementar animales resulto muy orgánica. La reinterpretación de la hora además del propio estilo de los números es la representación de los segundos de la que estoy muy orgulloso ya que mediante el visual se entiende el paso del tiempo. Hay 60 puntos de luz que se iluminan de forma progresiva, cuando el último de estos se ilumina se cambia la hora del reloj con una animación sutil.
El mayor reto a nivel de programación ha sido la creación del diseño y de la lógica de los números ya que algunos están formados por mas de una serpiente y la coherencia de diseño es importante.
La paleta de colores esta escogida representando los colores de la jungla.
Para el desarrollo de este reloj me inspiré en la escuela de la Bauhaus, tanto en sus elementos gráficos geométricos como en su paleta de colores primarios. Me interesa cómo este movimiento combina arte y funcionalidad, utilizando formas simples y colores contundentes no solo como recurso estético, sino…
Para el desarrollo de este reloj me inspiré en la escuela de la Bauhaus, tanto en sus elementos gráficos…
Para el desarrollo de este reloj me inspiré en la escuela de la Bauhaus, tanto en sus elementos gráficos geométricos como en su paleta de colores primarios. Me interesa cómo este movimiento combina arte y funcionalidad, utilizando formas simples y colores contundentes no solo como recurso estético, sino como herramienta de comunicación.
La geometría y la paleta cromática aportan un fuerte atractivo visual, pero también favorecen una lectura clara e intuitiva del tiempo. Cada elemento cumple una función concreta dentro del sistema.
Sistema visual del tiempo
El reloj representa cada unidad temporal mediante capas circulares que interactúan entre sí.
Segundos
Los segundos están representados por una circunferencia roja que crece progresivamente hasta completar el perímetro del reloj. Una vez finaliza el ciclo, comienza el siguiente minuto.
Minutos
El minuto se visualiza como un círculo interior que se va reduciendo gradualmente, como si se consumiera. Cuando transcurre una hora completa, el fondo se reinicia. Esta representación funciona casi como un “pastel” temporal que se agota visualmente, facilitando la percepción de cuánto tiempo queda.
Horas
La hora se distingue con claridad, ya que apunta a su posición como en un reloj tradicional de agujas. Sin embargo, introduce una variación cromática: el color cambia según la hora del día, reforzando la dimensión visual y expresiva del diseño.
Interacción y experimentación visual
Existe un segundo elemento circular que acompaña el movimiento de los segundos. Para este recurso utilicé blend mode, generando superposiciones cromáticas cuando se cruza con la capa de los minutos. El resultado produce combinaciones de color inesperadas que evocan pequeñas composiciones pictóricas, casi como micro-cuadros inspirados en la Bauhaus. Esta decisión introduce una dimensión más artística sin perder funcionalidad.
Diseño y conciencia del tiempo
Más allá de su valor estético, el reloj plantea una reflexión sobre la percepción temporal.
Se ha estudiado que a muchas personas con TDAH (ADHD) les resulta complejo estimar la duración de las tareas o mantener conciencia del paso del tiempo. La representación visual progresiva —especialmente el minuto como elemento que se “consume”— puede servir como guía intuitiva para comprender cuánto falta para completar una hora.
En este sentido, el proyecto está concebido como una obra artística, pero también podría adaptarse como reloj de muñeca funcional.
Debatecontributions 1en «RELOJ SISTEMA SOLAR» visualmente, contemplaba diferentes opciones en cuanto a la realizacion de los segundos o minutos, era el cambio de hora lo que mas complicado me ha resultado. Queria algo visualmente atractivo y que reflejase un tributo al conocimiento humano en relacion con el entorno del que estamos rodeados. Finalmente, opte por realizar una simbologia del espacio en relacion con el tiempo, como resultado he obtenido un reloj capaz de ofrecer la hora de un vistazo mediante numeros romanos para las horas, una barra de energia simulando un cometa alrededor del sol, en representacion de los minutos y la luna en continuo movimiento alrededor de la tierra, como representacion de los segundos. Los colores seleccionados, hacen que la franja horaria se pueda identificar de un vistazo, el sol cambia de color según la hora, reforzando la idea de “reloj solar digital”. Por otro lado, la fuente seleccionada, es futurista, atractiva para un etorno cultural que no puede dejar de recordarme a la mitica pelicula de Blade Runner, hablamos de la fuente Orbitron-Medium.
Egoitz Michelena de la Torre says:
Visibilidad: Pública
«RELOJ SISTEMA SOLAR» visualmente, contemplaba diferentes opciones en cuanto a la realizacion de los segundos o minutos, era el cambio de hora lo que mas complicado me ha resultado. Queria algo visualmente atractivo y que reflejase un tributo al conocimiento humano en relacion con el entorno del que estamos rodeados. Finalmente, opte por realizar una simbologia del espacio en relacion con el tiempo, como resultado he obtenido un reloj capaz de ofrecer la hora de un vistazo mediante numeros romanos para las horas, una barra de energia simulando un cometa alrededor del sol, en representacion de los minutos y la luna en continuo movimiento alrededor de la tierra, como representacion de los segundos. Los colores seleccionados, hacen que la franja horaria se pueda identificar de un vistazo, el sol cambia de color según la hora, reforzando la idea de “reloj solar digital”. Por otro lado, la fuente seleccionada, es futurista, atractiva para un etorno cultural que no puede dejar de recordarme a la mitica pelicula de Blade Runner, hablamos de la fuente Orbitron-Medium.
¡Hola! Esta publicación se ha generado automáticamente en el Ágora. Te encuentras en el Ágora de la asignatura. En este espacio se recogerán todas las publicaciones relacionadas con las actividades que hagan los compañeros y compañeras del aula a lo largo del semestre. El Ágora es un espacio…
¡Hola! Esta publicación se ha generado automáticamente en el Ágora. Te encuentras en el Ágora de la asignatura. En…
¡Hola!
Esta publicación se ha generado automáticamente en el Ágora.
Te encuentras en el Ágora de la asignatura. En este espacio se recogerán todas las publicaciones relacionadas con las actividades que hagan los compañeros y compañeras del aula a lo largo del semestre.
El Ágora es un espacio de debate en el que estudiantes y docentes pueden ver, compartir y comentar los proyectos y las tareas de la asignatura.
Si solamente ves esta publicación, puede ser porque todavía no se ha hecho ninguna más, porque no has entrado con tu usuario de la UOC o porque no perteneces a esta aula. Si no eres miembro de la UOC y ves alguna publicación, es porque su autor o autora ha decidido hacerla pública.
¡Esperamos que esta Ágora sea un espacio de debate enriquecedor para todos y todas!
Debatecontribution 0en ¡Bienvenidos y bienvenidas!
No hay comentarios.
Las intervenciones están cerradas.
Lo siento, debes estar conectado para publicar un comentario.
¿Eres parte de la comunidad? Accede para ver más publicaciones.
Este es un espacio de trabajo personal de un/a estudiante de la Universitat Oberta de Catalunya. Cualquier contenido publicado en este espacio es responsabilidad de su autor/a.
Mi objetivo era crear una experiencia interactiva de Halloween utilizando la cámara y detección facial. Quería que el usuario pudiera activar efectos especiales simplemente abriendo la boca, combinando elementos visuales (calabaza, murciélagos, arañas) con sonido y animaciones.
La idea era, una pantalla de inicio despues una explosión de murciélagos para que acabe entrando una cámara con efectos graficos cuando abres la boca.
Definí los elementos principales:
Una calabaza animada en la pantalla de inicio, Un botón llamativo para empezar, Una secuencia con murciélagos volando, La cámara mostrando la cara del usuario convinada con efectos que se activan al abrir la boca… partículas mágicas, ojos rojos brillantes, arañas cayendo.
Programé una calabaza que se mueve para llamar la atencion del usuario hacia el boton y dinamizar un poco la escena.
Al pulsar el boton de inicio, empieza la música, suena una risa, y aparecen unos murciélagos que salen volando sorprendiendo al usuario.Después de 2 segundos, pasa a la cámara. He puesto un temporizador para cerciorarme de que se activa la camara, ya que he tenido problemas con la visualizacion de la misma a pesar de que veia que se activava. He Configurado FaceMesh para detectar la cara en tiempo real, esto me ha permitido obtener los landmarks y usarlos para activar todos los efectos cuando el usuario abre la boca. Comparo la distancia entre dos puntos del labio superior e inferior.
Si la distancia es grande, se supone que la boca está abierta, por lo que se activan los efectos de visualizacion.