nw  

Extended Reality in Browsern

Zusammenfassung

Diese Arbeit gibt neue Erkenntnisse in Bezug auf die Implementierung von Extended Reality (XR) in Browsern.

Schlüsselbegriffe

XR, AR, VR, WebXR, Web, A-Frame, React-XR, Babylon.js, PlayCanvas, JavaScript, TypeScript

Zielsetzung

Das Ziel dieser Arbeit ist es, geeignete Frameworks und Vorgehensweisen zu finden, um Extended Reality in Browsern zu implementieren. Künftige Projekte sollen von den Erkenntnissen dieser Arbeit profitieren können. Vereinfacht werden sollen insbesondere die Auswahl des für den Use Case am besten geeigneten Frameworks und den Einstieg in die Verwendung dieses Frameworks.

Ausgangslage

Die Bedeutung von XR ist am Zunehmen. Dies kann insbesondere auch daran gesehen werden, dass XR-Geräte günstiger und zahlreicher verfügbar sind, als noch vor einigen Jahren. Applikationen für solche Geräte werden aber weiterhin meistens nativ geschrieben. Jedoch gibt es auch für den Browser Möglichkeiten zur Umetzung von XR-Applikationen, dank des W3C Standards WebXR.

Ergebnisse

Der Einsatz von Frameworks vereinfacht die Implementierung von XR-Applikationen im Web enorm. Aus einer Vielzahl an Möglichkeiten wurden vier Frameworks ausgewählt und diese anhand selbst definierter Metriken analysiert. Dafür wurden pro Framework sechs Szenarien implementiert, welche die XR-Fähigkeiten der Frameworks testen sollen. Die Wahl des am besten für eine Anwendung geeigneten Frameworks hängt stark von den jeweiligen Anwendungsfällen ab. Sehr breit verwendbare Frameworks sind unten mit ihren jeweiligen Anwendungszwecken dargestellt.

React Logo

React-XR

React-XR ist eine XR-Abstraktion für React. Sie benutzt unterliegend Three.js für das Rendering. Einige WebXR Abstraktionen sind vorhanden, jedoch werden nicht sämtliche Features abstrahiert. React-XR ist dank des React Kontexts sehr gut geeignet, um komplexere Webapplikationen inkl. XR-Funktionalitäten zu erstellen. Die enge Integration in React ist dabei der grösste Vorteil von React-XR.

A-Frame Logo

A-Frame

A-Frame basiert auf dem «Custom Elements»-Standard und kann so in verschiedene Web-Frameworks wie Angular, React oder auch Vue integriert werden. A-Frame benutzt ebenfalls Three.js für das Rendering. A-Frame punktet am meisten mit seinen vielen bereits vorhandenen Komponenten, welche teils von der Community entwickelt werden. Damit können einfache Use Cases sehr schnell und ohne grossen Aufwand implementiert werden. Bedauerlicherweise sind diese Komponenten allerdings häufig entweder veraltet oder nur sehr starr auf einen spezifischen Use Case ausgelegt.

Babylon.js Logo

Babylon.js

Babylon.js ist eine Rendering Engine für das Web, welche XR unterstützt und von Microsoft entwickelt wird. Sie hat eine breite Unterstützung von XR-Features und ist gut geeignet für Spiele oder XR-Showcases mit Fokus auf dem Visuellen.

PlayCanvas Logo

PlayCanvas

PlayCanvas ist eine Game Engine, welche ausschliesslich im Web funktioniert. Dies gilt ebenfalls für den Editor: PlayCanvas bietet eine eigene IDE inkl. grafischem 3D-Editor direkt im Browser. Entwickler:innen von nativen Engines wie «Unity» werden sich schnell darin zurecht finden. PlayCanvas ist besonders gut geeignet, um XR-Spiele umzusetzen.

Am Schluss wurde das geeigneteste Framework an einer Lichtsimulationsapplikation für die Firma Ribag erprobt. Die Funktionsweise in Augmented Reality auf einer Oculus wird in folgendem Video gezeigt:

Projektdaten
Projekttyp Bachelorarbeit Informatik IP6
Projektdauer 20. Februar 2023 - 18. August 2023
Teamgrösse 2 Studenten
Aufwand in Personenstunden ca. 720 Stunden (je ca. 360 Stunden pro Student)
Auftraggeber
Abteilung Institut für Interaktive Technologien FHNW Brugg-Windisch
Name Dr. Prof. Hilko Cords und Yves Simmen
Adresse Bahnhofstrasse 6, 5210 Windisch
Website FHNW IIT
Projektteam

Timothy Grützner, BSc Informatik, timothy.gruetzner@students.fhnw.ch
Nathanael Weber, BSc Informatik, nathanael.weber@students.fhnw.ch

Kontakt

Dr. Prof. Hilko Cords hilko.cords@fhnw.ch
Yves Simmen yves.simmen@fhnw.ch

<< zurück