Cámara Web en MoldeoJS
Sobre el cómo estamos implementando la cámara en la Web

Como muchos saben, actualmente nos encontramos en el desarrollo de una migración parcial del core de Moldeo a JavaScript, con el objetivo de visualizar proyectos en la Web. El mismo ya comenzó a ser migrado y se encuentra en una fase muy primitiva, pero ya replica los plugins básicos del Software Moldeo (ícono, plano, imagen, partículas, preeffect erase, etc). Para esto nos estamos valiendo de las versiones más estables de Angular, junto con el lenguaje de programación TypeScript (recuerdo que el core de Moldeo está escrito en C++), y empleando ThreeJS, el framework más avanzado para implementar WebGL. Sin embargo esta entrada va sobre uno de los recursos más importantes de la plataforma: el uso de la cámara web.

Estamos contentos en anunciar que la cámara web ha sido incorporada a MoldeoJS (por el momento en un estado alfa, dentro de un branch a parte) y se encuentra funcionando de forma similar a como lo hace en Moldeo. Al tratarse de una plataforma web, las claves de seguridad presentes son más estrictas que en un Software, por lo tanto el comportamiento de la cámara no es exactamente igual. Para quienes estén curiosos, estos son los cambios con respecto a la versión de escritorio:

 

  • No es posible elegir la profundidad de bit de la cámara, aunque sí las dimensiones y el framerate.

  • Si bien se puede elegir el ancho y el alto de la cámara, no se comporta exactamente igual en el browser que en el escritorio (se está trabajando en eso).

  • No se puede usar más de una cámara web al mismo tiempo, de momento.

  • Aún no es posible elegir el nombre la cámara desde el archivo MOL, aunque existe una regla para elegir el “devices” por lo tanto esperamos que sea posible en futuras versiones.

  • Dependiendo el browser se ofrece la opción de elegir la cámara, así que estamos trabajando en eso.

  • Para usar la cámara web el browser solicita permisos, por lo tanto la actividad del usuario afecta directamente a como se visualice en proyecto MOL. En Chrome se deja almacenado dicho permiso, por lo tanto solo lo solicitará una vez; en Firefox se solicitará permiso siempre salvo que se agregue la web a la lista de seguridad. Nuestra idea es que se muestre el logo de Moldeo como textura por defecto si el usuario no otorga el permiso, o directamente no lee el mensaje.


Esto es algo positivo ya que la forma en la cual se carga la imagen de la webcam es compatible con la librería insignia de JS para simular OpenCV (JSFeat), con lo que muchas de las opciones básicas de Moldeo van a estar también en MoldeoJS (como la detección de bordes). Del mismo modo, ya estamos realizando las migraciones a Angular de otras librerías que necesitan la imagen de la webcam, como OpenFace utilizada para mapeo 3D del rostro. Cuando finalicemos las pruebas y la optimización del plugin camera en MoldeoJS, incorporaremos todas esas funcionalidades. Los mantenemos informados.

 

Branch MoldeoJS Camera: https://github.com/moldeo/moldeojs/tree/camera

Moldeo JS with Angular 8
latest updates with new examples, new plugins, upgraded moldeo js core