Projektübersicht
Bachelor-Arbeit
Einführung
Hier werde ich demnächst meine Bachelor-Arbeit vorstellen und Teile davon hosten. Ziel ist es, mit möglichst dezentraler und Open-Source Technologie ein Web3.0 zu bauen. Wobei sich das Web3.0 auf VR-fähige Webseiten bezieht.
Projektinfos
Projekt | Bachelor-Arbeit |
Team | Solo |
Beginn | 2021 |
Geplanter Abschluss | Herbst 2022 |
Umstände | Studium - Abschluss |
Umfang | ca. 18k Wörter |
Status | FIN - PAUSED |
Thema ist die dezentralisierte Entwicklung einer VR-Webanwendung, sowie die Evaluierung der verschiedenen technischen Möglichkeiten dafür.
Idee
Mein Plan ist es, dass Webseiten abseits von ihrer normalen Darstellung von Inhalten auch VR-Inhalte bieten. So soll erkannt werden, wenn die Webseite von einem VR-Headset benutzt wird. Daraufhin soll die Seite dem User entweder eine 3D-Darstellung von Objekten anbieten oder direkt auf eine VR-Fähige Version dieser Seite weiterzuleiten.
Beispiel: ein Webshop erkennt das VR-Headset und bietet an die Produkte per Knopfdruck in 3D greifbar machen. Alternativ könnte auch ein ganzes virtulles Einkaufszentrem geladen werden und mit den Artikeln des Webshops gefüllt werden.
Einführung in Dezentral
In der BA-Arbeit wird auch auf die Basics eingegangen: wie überhaupt dezentral definiert wird, wie man es Klassifizieren kann und wie das Netzwerkmodell dahinter ausschaut. Zu dem werden auch die Vorteil und Nachteile von einem dezentralen Ansatz gegenüber dem klassischen Server-Client Model erklärt.

Architekturunterschiede anhand von Netzwerkmodellen veranschaulicht.
Technische Umsetzung
Daran arbeite ich gerade. Aktuelles Ziel ist so viel wie möglich mit HTML, CSS, JavaScript zu erledigen.
Fürs Darstellen sehe ich aktuell 3 Optionen:
- Stufe 1
Eine Technologie wie WebXR verwenden und direkt im Browser die 3D-Umgebung laden. Beispiel Webshop lädt per Kopfdruck ein Objekt, welches du Virtuell nehmen kannst.
- Stufe 2
In Unity einen eigenen Browser schreiben der automatisch erkennt, dass es sich um einen Webshop handelt und dementsprechend eine virtuelle Umgebung als Prefab und die Objekte darin lädt. Dabei soll HTML immer noch die Grundlage sein und der benötigte Datenverbrauch soll nicht den eines normalen Webshops übersteigen.
- Stufe 3
Aufbauend auf Stufe 3 soll zusätzlich dezentrale Technologie wie IPFS (InterPlanetary File System) verwendet werden, um größere Dateien zu laden, ohne den Server in einem Übermaß zu belasten.
Dezentraler Ansatz
So, wie das ursprüngliche Internet geplant war, soll es möglich sein diese Webseiten von zu Hause aus zu hosten. Damit ist gemeint, dass nicht übermäßig große Server benötigt werden sollen, sondern ein simpler Apache-Server reichen sollte. Daher ist bei Stufe 2 geplant, die virtuelle Umgebung bereits als "Prefab" in Unity bereitzustellen. Damit müsste der Webshop nur noch definieren, welches Prefab er benötigt und anschließend die Webshop-Items im richtigen Format übertragen. Dies könnte durch das Wegfallen der Weboberfläche sogar noch effektiver als ein normaler Webshop sein.
Ziel der Arbeit
Umsetzung eines solchen Web Shops und hosten auf einer kleinen Amazon EC2 Instanz. Der Link dazu soll direkt hier im Projekt zu finden sein (WIP). Wie viele Stufen ich dabei umsetzt steht noch offen im (virtuellen) Raum.
Plan B
Plan B ist eine VR-Classroom darzustellen und P2P-Kommunikation zwischen den Usern anzubieten. Dies bietet mit der P2P Verbindung zwar bessere Möglichkeiten zur Dezentralisierung (und zusätzliche Themen wie Datenschutz), jedoch stellt es eine deutlich höhere Herausforderung dar und ist in Stufe 1 weniger anschaulich als ein Webshop.
Milestones
Bachelor Thesis
- Erstellen von einem Webshop (Artikelübersicht)
- Anlegen von Produkten
- 3D Objekte für Produkte in Blender erstellen
- 3D Objekt per Model-Viewer allen Usern zur Verfügung stellen
- Webshop mit VR-Headset testen
- Virtuelle Umgebung mittels three.js aufbauen
- Objekt-Loader für Artkel integrieren
- "Enter VR"-Button per iframe hinzufügen
- Jimex.io-Logo und Box als Verpackungsmaß hinzufügen
- Theoretischen JSON-Standard für komplex XR Umgebungen entwerfen
Adding Dezentral & KI
- 4. Artikel erstellen (Platzhalter)
- 4. Artikel per KI aus Foto generieren lassen
- Artikel per IPFS hosten
- Lösung zum verteilen bei den Usern in IPFS finden
- three.js Umgebung anpassen für das Laden von Links
Unity
- JSON-Standard erweitern (Metadaten)
- Unity Projek einrichten (OpenXR)
- Prefabs für Objekte erstellen (Objekt die im JSON verwendet werden)
- VR Browser erstellen (laden von JSON anhand URL)
- VR Browser über normalen Browser starten lassen wen JSON erkannt wird
- Klassische Website in VR-Browser integrieren
Ideen
- Webhop per Holochain
- Den User das Objekt in Web-XR nehmen lassen
- Kompletter Webshop (Räume, Regale, ...) via three.js erstellen