Resumen
The Virtual Layer es un showroom de realidad mixta para empresas que necesitan presentar mobiliario, iluminación, cortinas y otros productos espaciales antes de fabricar o transportar un prototipo físico. Los clientes pueden entrar en la misma sala online, navegar por un catálogo, inspeccionar los diseños a escala real, comparar variantes y tomar decisiones juntos.

El problema
Muchos productos son difíciles de evaluar desde un catálogo plano. Sus proporciones, materiales y relación con el espacio solo se entienden al verlos en contexto. Las muestras y prototipos físicos son caros de transportar, lentos de modificar y difíciles de comparar durante una conversación comercial.
La solución
La app coloca modelos digitales dentro de una sala de realidad mixta compartida. El usuario puede seleccionar un producto, llevarlo a la escena, inspeccionarlo desde distintos ángulos, cambiar configuraciones y comparar el resultado a escala real. La experiencia está construida alrededor de un flujo sencillo: visualizar, comparar y decidir.


Co-localización espacial sin códigos QR
La parte técnicamente más distintiva fue conseguir que dos gafas separadas compartieran el mismo sistema de coordenadas sin utilizar códigos QR ni marcadores visuales impresos.
La implementación utiliza dos referencias virtuales de calibración colocadas en el suelo desde el mando. AlignmentManager hace un raycast contra el suelo, utiliza el punto medio entre ambas referencias como origen común y calcula la orientación de la sala a partir de la dirección que las une. Después, AnchorManager crea objetos ARAnchor persistentes mediante AR Foundation, los guarda y los vuelve a cargar al iniciar la aplicación. El showroom se mantiene bajo un ScenarioRoot común, de modo que cada visor puede reconstruir la misma posición de los productos dentro de su propio espacio de tracking.
La clave es separar dos problemas que suelen confundirse: cada visor sigue su espacio local, mientras que la aplicación establece encima un marco de referencia compartido. El resultado es contenido co-localizado sin pedir al cliente que coloque o escanee un marcador físico.
Showroom conectado
El host mantiene la autoridad sobre el estado compartido de los productos. Al colocar o mover un producto, NetworkFurnitureManager convierte su posición y rotación globales a coordenadas locales respecto a ScenarioRoot. Esas coordenadas se envían mediante Netcode for GameObjects y cada cliente reconstruye la pose usando su propio root ya alineado.
NetworkFurnitureSync guarda la posición y rotación locales en NetworkVariable escritas por el servidor, aplica los cambios en los clientes e interpola la transformación final para que el movimiento sea más fluido. Cuando entra un cliente nuevo, el host le envía los muebles que ya estaban colocados para que todos comiencen con el mismo estado del showroom.

Mi rol
Lead Developer · XR y Multiplayer
Responsabilidades
- Diseñé e implementé el showroom de realidad mixta compartida en Unity.
- Construí el flujo de co-localización entre visores con referencias en el suelo y anchors persistentes.
- Implementé el spawning, movimiento y sincronización de nuevos clientes de los productos con Netcode for GameObjects.
- Integré el catálogo, las categorías por marca, las variantes de modelos, los cambios de materiales y la presentación a escala uno a uno.
- Repliqué la cabeza, las manos, el nombre y el color de los participantes para hacer visible su presencia en la sala.
- Ajusté el flujo de interacción y presentación para una demostración de producto en directo.

Aspectos técnicos destacados
- Co-localización sin marcadores físicos: el
ScenarioRootcompartido se calcula con dos referencias en el suelo y anchors persistentes, sin QR ni imágenes de referencia. - Networking en espacio local: las poses de los productos se sincronizan respecto al root alineado, no respecto al tracking bruto de cada visor.
- Estado autoritativo del host: el host controla la colocación, el movimiento y el borrado; los clientes reciben el estado y lo interpolan localmente.
- Presencia colaborativa: las cabezas y las manos se replican mediante avatares XR en red.
- Flujo orientado a decisiones: navegación del catálogo, inspección a escala real, variantes de material y contexto espacial forman una única experiencia.
Tecnologías
- Unity + C#
- Netcode for GameObjects 2.0
- AR Foundation 6.0
- OpenXR + integración PICO OpenXR
- Unity Multiplayer Services / flujo de Lobby
- XR Interaction Toolkit 3.0
