Desarrollo WebXR

Partes de las Aplicaciones Web Espaciales 

Las aplicaciones XR/espaciales son una colección de archivos que usualmente se sirven a través de un servidor web. Un navegador web puede interpretar estos archivos y ejecutar la aplicación web.

Archivos Comunes 

Los archivos y extensiones de archivo más importantes que se deben conocer se listan a continuación:

ExtensiónDescripción
index.htmlPágina HTML principal de la aplicación web espacial.
.jsContiene código JavaScript.
.tsContiene código TypeScript, que se convierte a .js antes de publicar la aplicación web espacial.
.wasmWebAssembly (que se compila a partir de lenguajes como C++ o Rust).
.glbFormato de archivo de modelo 3D que puede incluso incorporar texturas.
.gltfFormato de archivo de modelo 3D basado en texto.
.binGeneralmente referenciado por un .gltf y contiene datos binarios del modelo 3D.
.objUn formato de archivo de modelo más simple, basado en texto.
.mtlUn archivo de material, usualmente referenciado por un archivo .obj.
.jsonDatos arbitrarios utilizados por la aplicación.
.cssUna “Hoja de Estilo en Cascada”, que se usa para ajustar la apariencia de elementos HTML.

Adicionalmente, una aplicación web espacial utilizará archivos de audio (.mp3, .wav, .ogg, …), archivos de imagen (.webp, .png, .jpg) y a veces incluso archivos de video (.webm, .mp4, .mov).

Modelos 3D 

Las aplicaciones VR y AR pueden ser desde entornos completamente inmersivos hasta simples paneles de UI flotantes. En la mayoría de los casos, se necesitarán al menos algunos modelos 3D (también llamados “activos” cuando se utilizan en tu aplicación).

Plataformas 

Se pueden encontrar muchos activos gratuitos y de pago en plataformas como Sketchfab, TurboSquid e itch.io.

Hay algunas fuentes totalmente gratuitas para modelos 3D como Quaternius, Kenney.nl y Poly Haven.

También puedes usar a menudo paquetes de activos de Unity o Unreal Engine.

Escaneo 3D 

El proceso de convertir fotos de objetos del mundo real a modelos 3D se llama “Fotogrametría”, o escaneo 3D.

Aplicaciones como RealityScan para tu smartphone o software como Reality Capture pueden ayudarte a llevar modelos del mundo real a tus aplicaciones web espaciales.

Creación 

Crear manualmente modelos 3D puede ser una tarea que consume mucho tiempo. Los modeladores 3D utilizan software como Blender o Maya para diseñar modelos 3D personalizados según tus necesidades.

Si modelar en 3D no es lo tuyo, puedes encontrar un artista 3D para contratar en ArtStation.

Optimización 

Todos los activos de una aplicación web espacial se transmiten a través de internet. Esto puede afectar los tiempos de carga, lo que hace importante que los activos se compriman y optimicen.

Código 

El código para aplicaciones web espaciales puede escribirse en TypeScript, JavaScript, C++, Rust y muchos otros lenguajes. JavaScript se ejecuta directamente, mientras que lenguajes como C++ se compilan a WebAssembly.

El código tiene muchas responsabilidades en una aplicación web espacial:

  • Renderizado: Crear las imágenes que se muestran en el smartphone o dispositivo VR. Los gráficos de computadora son un campo complejo de la informática. Para manejarlo, los desarrolladores de WebXR utilizan frameworks de renderizado para encargarse de tareas comunes por ellos.
  • Cargar Activos: Cargar cualquier modelo 3D, texturas, audio, videos y otros datos cuando se necesite. Los frameworks generalmente proporcionarán funcionalidades para leer datos de diferentes formatos de archivo 3D, y en la web, el navegador puede encargarse de cargar formatos de archivos de imagen y audio por ti.
  • Interacción del Usuario: Reaccionar a la entrada del usuario, dar retroalimentación y aplicar acciones como respuesta a las acciones del usuario.
  • Lógica de la Aplicación: Los cálculos, el procesamiento y las interacciones de datos que la aplicación está destinada a realizar, desde consultas a bases de datos hasta generación de datos.

Librerías, frameworks y motores 3D como Wonderland Engine ayudan con todas estas tareas y proporcionan funcionalidades comúnmente utilizadas para empoderar a los desarrolladores web espaciales a construir sus aplicaciones de manera más eficiente.

Servicios Web 

La aplicación podría interactuar con servicios en línea para cuentas, almacenar información individual, consultar grandes bases de datos, transmitir medios y mucho más.