v0.2.0 • Framework 3D & WebXR de Alto Nivel

Desarrolla Experiencias
3D y WebXR en la Web

VXR Core es un framework modular en TypeScript construido sobre Three.js y WebXR Device API. Reduce el boilerplate repetitivo, estandariza la carga y alineación de modelos con auto-grounding, integra audio procedimental y optimiza el rendimiento a 90 FPS para navegadores móviles y visores VR sin motores propietarios pesados.

🔷 TypeScript 5.8 Estricto 🔺 Three.js r174 🥽 WebXR Device API 📱 WebRTC AR 6-DoF 🔊 Web Audio Nativo
Three.js r174 • WebGL2 • 60 FPS
🖱️ Arrastra para orbitar • Rueda para zoom

Claridad, Ergonomía y Rendimiento

VXR Core no es un motor cerrado ni una caja negra: es una fachada limpia y predecible que respeta Three.js mientras resuelve las fricciones comunes de la web inmersiva.

⚡

Qué problemas resuelve

  • ▸ Cero Boilerplate: Carga de GLTF con centrado y piso automáticos (autoGround y Box3) en una sola línea.
  • ▸ WebXR a 90 FPS: Bucle de render desacoplado con límites de densidad de píxeles (pixelRatioCap: 1.5) sin sobrecalentar visores.
  • ▸ Audio Procedural 0 MB: Efectos sonoros y fanfarrias sintetizadas con Web Audio sin descargar archivos MP3.
  • ▸ Ciclo de Vida GPU Limpio: Liberación recursiva de geometrías, texturas y shaders (dispose) que previene fugas de memoria en móviles.
👥

Para quién está pensado

  • ▸ Desarrolladores Web & TS: Pasa de DOM, React o Vue al espacio 3D sin lidiar con álgebra lineal compleja.
  • ▸ Educadores & Museos: Diseña salas interactivas, exhibiciones arqueológicas y simuladores accesibles desde cualquier enlace URL.
  • ▸ Investigadores & Estudiantes: Prototipa interfaces espaciales con código 100% abierto, auditable y sin licencias comerciales restrictivas.
🛠️

Tecnologías reales

  • ▸ Three.js r174: Base probada y acceso directo a app.scene, app.camera y app.renderer.
  • ▸ TypeScript 5.8: Tipado estricto de opciones, constructores y métodos para autocompletado en el IDE.
  • ▸ WebXR Device API: Sesiones inmersivas para Meta Quest 2/3/Pro y emulador Desktop Runtime en PC.
  • ▸ WebRTC & MindAR: Seguimiento 6-DoF de imágenes naturales y marcadores en @vxr/ar.
# Instalar VXR Core y Three.js en tu proyecto npm install github:Vickman123/Framework-XVR three @types/three

Documentación Técnica

Explora los módulos, conceptos de arquitectura, interacción, WebXR y la referencia de API completa con enlaces directos y buscador en tiempo real.

Guía Rápida

1. Primeros Pasos con VXR Core

Para comenzar a desarrollar con VXR Core, necesitas un entorno de JavaScript/TypeScript moderno (como Vite, Next.js o un bundler estándar con soporte ESModules). Instala el paquete base junto con Three.js:

npm install github:Vickman123/Framework-XVR three @types/three

Crea tu primer punto de entrada instanciando la clase fachada XRApp. El framework se encarga de crear el canvas WebGL2, la cámara de perspectiva, la luz ambiental y el bucle de renderizado:

import { XRApp } from 'vxr'; const app = new XRApp({ container: '#app', autoVRButton: true, enableShadows: true, enableGrid: true }); // Cargar modelo con auto-centrado await app.loadModel('./models/artefacto.glb', { autoGround: true }); app.start();
Diseño del Sistema

2. Arquitectura del Framework

VXR Core implementa el patrón Fachada Abierta (Open Facade): la clase maestra XRApp proporciona un punto de entrada ergonómico pero no bloquea el acceso a Three.js. Puedes acceder directamente a app.scene, app.camera y app.renderer en cualquier momento.

Capa Módulo Responsabilidad
Fachada XRApp Ciclo de vida, render loop y orquestación general.
Escena XRScene Gestión de iluminación fotométrica, fondo y sombras.
Render XRRenderer WebGL2, pixelRatioCap adaptativo y resize automático.
Assets XRAssetManager GLTF/GLB, DRACOLoader, cálculo Box3 y auto-grounding.
Inmersivo XRSession WebXR Device API, Meta Quest Browser y mandos VR.
Gráficos & Performance

3. Escenas y Renderizado

El subsistema XRScene incluye presets de iluminación fotométricos listos para producción que equilibran calidad y costo de cálculo en dispositivos con batería:

// Aplicar preset de iluminación en tiempo de ejecución app.sceneManager.applyLightingPreset('studio'); // 'studio' | 'outdoor' | 'sunset' | 'cyber'

Por su parte, XRRenderer restringe el pixelRatio mediante la propiedad pixelRatioCap: 1.5. En pantallas Retina o visores VR con resolución 4K, esto previene la saturación térmica del chip gráfico manteniendo nitidez visual completa.

Pipeline de Modelos

4. Recursos 3D y Auto-Grounding

Uno de los dolores de cabeza más comunes en Three.js es cargar un modelo GLB con punto de pivote descentrado o flotando en el aire. XRAssetManager calcula la caja delimitadora (Box3) y ajusta su posición automáticamente:

const model = await app.loadModel('./models/escultura.glb', { autoCenter: true, // Centra X y Z en el origen (0, 0) autoGround: true, // Alinea la base del modelo exactamente sobre Y = 0 castShadow: true // Activa proyección de sombras en todas las mallas });

Incluye además el método disposeObject(obj) para liberar geometrías, materiales y texturas de la GPU al desmontar experiencias.

Controladores & Entrada

5. Sistema de Interacción Unificada (XRInput)

XRInput mapea teclado (WASD, flechas), ratón (clic, drag) y controladores WebXR (sticks analógicos, gatillos) a acciones unificadas. Esto permite que el mismo código funcione en PC y en Meta Quest sin duplicar lógica de entrada.

import { XRInput } from 'vxr'; const input = new XRInput({ canvas: app.renderer.domElement }); input.on('select', (event) => { console.log('Objeto seleccionado por raycast:', event.intersection?.object); });
Realidad Virtual

6. Soporte WebXR y Meta Quest

VXR Core integra detección nativa de visores mediante XRSession. Si el navegador soporta WebXR, muestra el botón estándar inmersivo. Si se ejecuta en escritorio o móvil sin visor, activa automáticamente el modo DesktopRuntime con controles de ratón y cámara orbital.

# Auditar y compilar build WebXR optimizada para Meta Quest npx vxr doctor npx vxr build --target quest npx vxr serve --https
Entornos Arquitectónicos

7. Escenarios y Salas Modulares (XRScenario / XRRoom)

Construye museos y laboratorios interconectados mediante código declarativo. XRRoom genera paredes, pisos, techos y puertas calculando los vanos para evitar colisiones invisibles entre habitaciones adyacentes:

import { XRRoom, XRScenario } from 'vxr'; const lobby = new XRRoom({ dimensions: { width: 12, height: 4, depth: 12 }, materials: { floor: 'marble', walls: 'white' }, doors: [{ wall: 'north', width: 2.5, height: 3 }] }); const scenario = new XRScenario(); scenario.addRoom(lobby); app.scene.add(scenario);
Referencia Completa

8. Referencia de la API Pública

Resumen de las clases principales disponibles en los paquetes @vxr/core y @vxr/ar:

Clase Constructor / Opciones Métodos Clave
XRApp XRAppOptions (container, shadows, vr) start(), stop(), loadModel(), dispose()
XRScene XRSceneOptions (preset, fog) applyLightingPreset(), add(), remove()
XRRenderer XRRendererOptions (pixelRatioCap) render(), setSize(), setAnimationLoop()
ARExperience ARExperienceOptions (mode, camera) init(), start(), loadModel(), setMode()
ARCamera ARCameraOptions (facingMode, fps) start(), stop(), fitElement()
Tutoriales Paso a Paso

9. Ejemplos y Tutoriales Prácticos

Consulta las guías de implementación para casos de uso comunes del framework:

  • ▸ Visor de Arquitectura con Inspección: Cómo calcular volumen y resaltar componentes estructurales con raycasting.
  • ▸ Museo Virtual con Fichas y Audio: Cómo vincular pedestales con fichas técnicas que suenan al interactuar.
  • ▸ Realidad Aumentada con Código QR: Cómo escanear un QR con BarcodeDetector para desplegar modelos 3D sin app nativa.
Diagnóstico & FAQ

10. Solución de Problemas (Troubleshooting)

Respuestas rápidas a las incidencias más frecuentes en desarrollo 3D/XR:

Problema Causa Frecuente Solución Recomendada
WebXR no inicia en Meta Quest Conexión no segura (HTTP en red local). Usa npx vxr serve --https para habilitar SSL automático.
Audio bloqueado en móvil Políticas de autoplay del navegador. Llama a audio.unlock() en el primer evento de toque o clic del usuario.
Contexto WebGL perdido Exceso de texturas sin liberar en GPU. Invoca app.dispose() al cambiar de vista para vaciar shaders y buffers.
CORS al cargar modelos .glb Servidor de assets sin cabecera Access-Control. Configura Access-Control-Allow-Origin: * en tu servidor o usa rutas relativas locales.

Catálogo de Ejemplos

Prueba las implementaciones funcionales del framework clasificadas por categoría, con especificación de requisitos, controles e indicadores de compatibilidad de hardware.

🛠️ Herramientas Pro

VXR Studio — Editor 3D/XR

Editor visual de niveles y escenarios: manipulación 3D, inserción de mamparas (vidrio, rejilla, neón), letreros editables, pedestales y exportador de código limpio a TypeScript, HTML y JSON.

Requisitos: Navegador WebGL2
Controles: Ratón / Teclado (F enfocar)
Compatibilidad: PC / Desktop / WebXR
↗
📱 Realidad Aumentada

VXR AR — Visor Web AR

Experiencias de Realidad Aumentada en el navegador web móvil sin aplicaciones nativas. Soporta escaneo de QR para lanzamiento rápido, seguimiento 6-DoF de imágenes naturales y marcadores fiduciarios.

Requisitos: Cámara WebRTC + HTTPS
Controles: Pellizco y arrastre táctil
Compatibilidad: iOS Safari / Android Chrome
↗
🏛️ Escenarios y Salas

Museo Virtual & Práctica 3D

Salas interconectadas por pasillos continuos, pedestales interactivos con fichas técnicas, audio procedimental nativo sintetizado y soporte para arrastrar y soltar modelos .glb sin servidor.

Requisitos: Navegador WebGL2
Controles: WASD + Ratón / Teclado
Compatibilidad: 100% Multiplataforma
↗
📐 Modelos y Animaciones

Architecture Viewer

Inspección espacial de geometrías arquitectónicas y BIM. Raycasting de precisión sobre componentes estructurales, cálculo métrico automático, presets de iluminación y telemetría de polígonos.

Requisitos: Navegador WebGL2
Controles: Clic para inspeccionar / Órbita
Compatibilidad: Estable en PC & Tablet
↗
🕹️ Interacción

XR Interaction Lab

Banco de pruebas para la API XRInput: selección de geometrías interactivas, respuesta háptica simulada, teletransportación, drag & drop espacial y sincronización de mandos WebXR.

Requisitos: WebGL2 / WebXR opcional
Controles: Puntero / Mandos VR Quest
Compatibilidad: PC & Meta Quest Browser
↗
📦 3D Básico

Basic 3D Viewer

Punto de partida elemental: carga de modelo GLTF/GLB en 4 líneas con auto-grounding, cuadrícula de referencia, sombras proyectadas y controles orbitales de cámara con amortiguación.

Requisitos: Navegador WebGL
Controles: Arrastre para orbitar
Compatibilidad: 100% Universal
↗
🎮 Realidad Virtual

CyberStrike Arcade XR

Caso de estudio en Realidad Virtual a 90 FPS para Meta Quest. Mecánicas de acción y tiro espacial, audio Web Audio 3D posicional, colisiones por esferas envolventes y telemetría de rendimiento.

Requisitos: WebXR / Visor VR o Teclado PC
Controles: Gatillos VR / Clic ratón
Compatibilidad: Meta Quest 2/3 / PCVR
↗
🔬 Realidad Virtual

Simulador de Ensamble Técnico

Simulador pedagógico de laboratorio interactivo. Ensamble secuencial de componentes de hardware, verificación de pasos de aprendizaje, retroalimentación sonora y modo guiado por voz.

Requisitos: WebGL2 / WebXR
Controles: Grip / Drag espacial
Compatibilidad: PC & Visores Standalone
↗
🏢 Realidad Virtual

Spatial BIM & CAD Viewer

Visualización arquitectónica inmersiva para paseos virtuales en escala real 1:1. Resaltado de capas estructurales, telemetría de distancias métricas y presets lumínicos exteriores.

Requisitos: Navegador WebGL2
Controles: Teletransporte / Clic
Compatibilidad: PC & Meta Quest
↗

Playground 3D

Prueba el comportamiento de la escena 3D en tiempo real, alterna modos de alambre, iluminación y observa el código TypeScript sincronizado listo para usar en tu proyecto.

⚡ Código Sincronizado (TypeScript)
import { XRApp } from 'vxr'; const app = new XRApp({ container: '#app', enableShadows: true, enableGrid: true }); await app.loadModel('./model.glb', { autoCenter: true, autoGround: true }); app.start();

Herramientas Especializadas

VXR incluye herramientas visuales y módulos de visión por computadora para acelerar la creación y el despliegue de experiencias interactivas.

🛠️

VXR Studio

Editor Visual de Escenas & Entornos 3D/XR

Diseña salas, mamparas de vidrio, rótulos 3D interactivos e iluminación spot en una interfaz intuitiva con vista orbital y modo primera persona. Exporta código listo para producción sin dependencias ocultas.

  • Manipulación precisa con controles TransformControls en tiempo real
  • Generación de código a TypeScript (@vxr/core), HTML5 autónomo y JSON
  • Inspección de materiales, iluminación y texturas procedimentales
Abrir VXR Studio (Editor XR) ↗
📱

VXR AR

Sistema de Realidad Aumentada Web 6-DoF

Módulo independiente (@vxr/ar) para desplegar experiencias inmersivas desde la cámara del móvil. Soporta escaneo de Códigos QR para lanzamiento instantáneo y tracking 6-DoF de imágenes naturales con MindAR.

  • Detección QR instantánea con BarcodeDetector y fallback Canvas
  • Filtro de suavizado anti-jitter (ARMatrixSmoother con Lerp/Slerp)
  • Generador procedimental de marcadores fiduciarios imprimibles en SVG
Probar VXR AR (Web AR) ↗