Progress Report, Q2 2015

Progress Report, Q2 2015

Hello!  The first half of the year we've added some great teammates (and we are still hiring), and have made lots of progress in our alpha version toward enabling open source shared VR, with a growing directory of up-and-running High Fidelity servers.  Below are some quick updates and videos, along with what we think is coming next in each area.

 

Deploy your own server in minutes:  The latest stack manager will let you startup, name, and invite others into your shared VR space from your laptop or desktop in a couple minutes and will also let you hyperlink your server to other ones.  Next steps will be to allow you to optionally share your server resources with other nearby users who need extra capacity.

 

Facial expressions and head movement tracked with webcam:  We can now also use your regular laptop or desktop 2D camera to accurately capture head movement and  facial expressions, meaning that High Fidelity users of HMDs, PC's with 2D cameras, or 3D depth cameras can all have their head movements and some mix of facial movements captured.  Next steps are adding gaze tracking, and better support for talking with your hands.

 

Web objects in 3D:  You can now create entities in High Fidelity that are web page surfaces, and navigate those pages by clicking on them.  Next steps will be figuring out the best ways to allow the different types of shared browsing that people are going to need.

 

Skyboxes and dynamic lighting:  Add beautiful skyboxes and spherical harmonic lighting with optional sync to real-world day/night cycles.  You can also create multiple zones with these lighting features inside a single domain, meaning that as you move from place to place the lighting and background can change.  Next steps:  Transparency, and support for complex animations.

 

Sharing content:  In addition to being able to directly use and import 3D content of your own in several formats (FBX, OBJ), there is a marketplace available where you can drag and drop content into your server, and the ability to upload content you want to share with others.   Coming Next:  Ability to buy/sell content with others, with attribution tags that demonstrate ownership.


Distributed Physics with Javascript:  We starting by building on top of the open source Bullet physics engine, we've implemented a solution to a challenging problem of multiplayer physics:  having low latency for interactions while maintaining the same state among participants.  A great example would be billiards or a block stacking game, where many collisions happen that scatter objects around in a complex way.  You want really low latency so that you can grab or hit or shoot something, but you also want it to be the case that when the motion stops, all the pieces are in the same place for everyone.  This is a hard problem!  In a nutshell, we're addressing it by allowing everyone to locally simulate the objects that are near them, but with only one person at a time being the 'authority' about where an object really is.  By being smart about who owns what (I own something I am holding, for example), and how to hand off that authority (if I hit a ping-pong ball, I take it over), this lets us do very appealing physics inside of really large environments.   Additionally, physical objects can have behaviors that are coded as javascript and also run locally for minimal latency.  Coming next:  Avatars with soft bodies that can interact physically (imagine sword-fighting, for example) while being driven by the hand controllers coming soon from HTC/Vive and/or Oculus Rift.

Hopefully this is a helpful update.  Our Apache 2.0 licensed open source codebase can be found on github, and we are actively accepting submissions and help from a growing developer community.  There are also paid contract jobs available at our worklist.net site, for those interested in working on the project in a part-time role.