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