Kit de Componentes VR

Este proyecto propone un conjunto de componentes de software de alto nivel para facilitar la creación de experiencias inmersivas. Se enfoca en resolver desafíos comunes que enfrentan los desarrolladores, como la gestión de controladores XR, la creación dinámica de interfaces de usuario, la navegación en escenas, la selección y manipulación de objetos virtuales, y la provisión de herramientas de depuración.

La solución tiene como objetivo abstraer la complejidad de las API subyacentes como WebXR y Three.js. Además, se proporcionan ejemplos didácticos para evaluar funcionalmente los módulos, validar los componentes y ofrecer puntos de partida prácticos para desarrollar aplicaciones web basadas en VR.

Autor: Federico Marino (fmarino@fi.uba.ar)

Código Fuente (github): https://github.com/fmarinofiuba/vrComponentsKit

Ejemplos

  1. Hello VR

    Este es un ejemplo básico para iniciar una escena VR y confirmar que el entorno funciona.

  2. Ejemplo de Navegación

    Este ejemplo evalúa el módulo de navegación, específicamente el modo "vuelo" y el mecanismo de teletransportación. Incluye una escena con un plano de suelo coloreado y un modelo de escalera 3D para probar la teletransportación a diferentes alturas y verificar cambios de orientación incrementales sin alterar la posición del usuario.

  3. Ejemplo de Controladores

    Este ejemplo evalúa el correcto funcionamiento del módulo de gestión de controladores. Verifica la representación 3D adecuada de los controladores y el correcto funcionamiento de las funciones de escucha de eventos imprimiendo eventos en la consola del navegador.

  4. Ejemplo de Menú UILVR

    Este ejemplo presenta una escena con dos objetos (Cubo y TorusKnot) y una fuente de luz puntual. Define un menú utilizando la clase UILVrMenu para controlar las velocidades de rotación de ambos objetos, así como el color y la intensidad de la luz. También evalúa la funcionalidad del menú en conjunto con el módulo de navegación, asegurando que el rayo del controlador solo active acciones de la interfaz de usuario al interactuar con el menú, no la teletransportación.

  5. Ejemplo de Menú HTMLVR

    Este ejemplo realiza las mismas evaluaciones que el ejemplo de Menú UILVR, pero utilizando un menú basado en HTML.

  6. Ejemplo de Herramientas de Depuración

    En este ejemplo, se crea una escena con un modelo de tetera 3D que cambia de posición siguiendo una onda sinusoidal. Un panel VrVarsWatcher muestra en tiempo real los vectores de posición, rotación y escala de la tetera. Además, se incluye un panel VrConsole para verificar la correcta visualización de mensajes simulados de la consola del navegador en VR.

  7. Ejemplo de Objetos Agarrables

    Este ejemplo presenta una escena con objetos móviles y estáticos. El primer grupo de objetos está configurado para ser agarrado por contacto, mientras que el segundo grupo utiliza el modo "remoteGrabbing". El ejemplo evalúa el correcto funcionamiento, especialmente cuando múltiples objetos están en el rayo del controlador, en cuyo caso solo se debe agarrar el objeto más cercano.

  8. Ejemplo de Objetos Seleccionables

    En este ejemplo, se crea una escena con cinco objetos que representan diferentes materiales y cinco objetos que representan varias formas geométricas. Un pedestal cilíndrico en el centro permite al usuario seleccionar un material o forma, que luego modifica el objeto central en el pedestal en consecuencia. El objetivo propuesto fue verificado.