Building the Social VR Web
Gavan Wilhite
AltspaceVR
What people are building
How our browser works
Why we work on the VR web
AltspaceVR
why we work on the VR web
our service
communicate with anyone on the planet in the most natural and fufilling way possible
many platforms
operating systems
headsets
many devices
controllers
body sensors
many people
over 167 countries represented
live events have audiences in the thousands
widespread access to high-quality VR
active developer community
diverse languages, interests, and skillsets
be together
do things together
people want information, applications, and games
in VR, people can
- meet
- discuss
- laugh
- attend
but they want more
they want the web
across all platforms, instantly, and safely
How can we make this happen?
VR Browser
how ours works
Browser
Engine
Traditional Browser
=
+
Host App
Browser
Engine
Game
Engine
+
VR Browser
=
+
Host App
physics
performance
entity / component
audio
networking
content pipeline
http
sandboxing
communication
compatibility
tools
open source
Web
Games
Chromium
three.js
A-Frame /
<html></html>
game engine
host application
scene graph
component system
browser engine
web app
Three.js Renderer
-
Three.js is renderer agnostic
-
We wrote our own renderer
-
Converts the three.js scene graph to Unity objects
-
Supports a performant subset of materials
Javascript APIs
getUser()
// public information about the user
// useful for nameplates / highscores
getSpace()
// information about the space
// useful for persistence
getEnclosure()
// enclosure dimensions and scaling
// useful for reactive VR design
-
Normal A-Frame components
-
Currently prefixed with n-
-
Unlock game engine features
-
Lets developers make use of our infrastructure
Native Components
NEW!
Text
-
In-world or UI
-
Rendered natively with signed distance fields
Native Components
NEW!
Native Components
NEW!
Resource
-
Pulls in a native 3D model or audio asset
-
Growing library of free assets
-
Makes building apps / environments quick
-
Enables very small files for complex scenes
Native Components
NEW!
Skeleton
-
Attach objects to a unified tracking skeleton
-
Zero latency
-
Zero bandwidth overhead
-
Makes use of our exisiting avatar network traffic
Native Components
NEW!
Sound
-
Spacialized
-
Mapped to the entity transform
-
Ogg / MP3
Native Components
NEW!
Collider
-
Static bodies
-
Integrated with movement system
-
Supports arbitrary meshes
Native Components
NEW!
Spawner
-
Rigidbody objects
-
Natively synced
-
Player lifespan
Native Components
NEW!
VR Web Apps
what's being built
Normal Web Apps
Any URL
Any backend
Often cross-compatible
In AltspaceVR
VOIP
Activities
Events
Avatars
Browsers
Platform Abstractions
Fullspace
- Environments
- Decorations
- Immersive games
- Avatar-attached items
Holographic
- Tabletop games
- Visualizations
- Objects of interest
- AR-compatible
"Fullscreen"
"Windowed"
Developer Community
-
In-VR
-
Collaboration
-
Bi-Weekly Meetups
-
Live Debugging
-
-
Slack
Holograms Against Humanity
- three.js + socket.io + node.js
- 5,000+ games played last month
- open source
What makes it successful?
- humor
- encourages communication
- jump-in, jump-out
Armory
- Super simple
- 100 lines of HTML
- Works with all body trackers
Native Skeleton
<a-mixin id="parent-to-head"
position="0 0.05 0.03"
n-skeleton-parent="part: head;"
sync
sync-n-skeleton-parent>
</a-mixin>
AltPDB
- Visualize proteins
- Dynamically loads from RCSB PDB
- Multiple display modes
Live interactive lessons
- Content is synchronized
- Presenter can indicate parts of the molecule using body trackers
- Audience can ask questions
Lost in Time
- Guided story
- Large environment
- Entirely A-Frame
Uses a variety of native components
- Audio
- Effects
- Text
- Containers
- Colliders
Team Health Check
- Agile retrospective tool
- Uses 2D DOM + 3D objects
- Used internally
VR Meetings
- Can't tell who is remote
- Easy to capture
- Guided via software
- Supports anononymity
let's build the future of the web together
connect with me: gavan@altvr.com
join the community: developer.altvr.com
Social VR Web
By Gavan Wilhite
Social VR Web
- 78