Boris Smus

interaction engineering

Three approaches to VR lens distortion

Immersion requires a large field of view. This could be achieved by putting a large curved spherical display on your face, but alas such technology is prohibitively expensive. A more affordable solution to increasing the field of view is to look at small ubiquitous rectangular displays through lenses:

Why VR needs lenses

Lenses placed close to your eyes greatly increase your field of view, but there is a cost: the image becomes spherically distorted. The larger the field of view, the more distorted the image. This post is a quick summary of three different approaches to undistorting the image, all of which have been implemented in JavaScript for various WebVR-related projects.

Continued →

Embedding VR content on the web

During a two week trip to India, I took over 1000 shots, including photos, videos and a few photospheres. A picture is worth one thousand words, but how many pictures is a photosphere worth? We may never know, but I digress. My favorite photosphere was of friends posing inside one of the turrets of the Jaigarh Fort:

I captured this using the photosphere camera which ships with Android. It's embedded into my blog using VR View, which launched today. The embed above lets you include an interactive photosphere right in your website, which is especially fun on mobile, where the image reacts directly to your phone's movements. You can view it in full screen mode, and even in Cardboard mode (only on mobile).

But you know what's cooler than a photosphere? A stereo photosphere! And luckily, you can capture stereo photospheres using Cardboard Camera, and then use a VR View to embed them too. You can even embed mono or stereo videos. Check out the docs for more info. Eager to hear what you think!

Simulating wealth inequality

Economic inequality is rising in the US. A viral video from several years ago made this abundantly clear:

Wealth inequality in U.S.

The gap between desire, expectation and reality is truly shocking, and inspired me to learn more. In particular, whether or not inequality is actually a big problem, and then to better understand issues that the video above did not address:

  1. How did the US become so economically unequal?
  2. How can this inequality be reduced?

My answers come in the form of simple simulations. For example, the following simulation has two agents with different salaries, but the same spending habits. You can play with it yourself!

In the first part of this post, I try to provide some background on economic inequality: how to measure it, various forms of it, and whether or not it's a problem. In the last part, I try to explain how we got to the status quo, and how inequality can potentially be reduced. Rather than just making claims, I use simulations like the one above to defend my claims. This way, you can see more clearly where I'm coming from, and if you disagree, you can make your own simulation with better assumptions.

Continued →

Sensor fusion and motion prediction

A major technical challenge for VR is to make head tracking as good as possible. The metric that matters is called motion-to-photon latency. For mobile VR purposes, this is the time that it takes for a user's head rotation to be fully reflected in the rendered content.

Motion to photon pipeline

The simplest way to get up-and-running with head tracking on the web today is to use the deviceorientation events, which are generally well supported across most browsers. However, this approach suffers from several drawbacks which can be remedied by implementing our own sensor fusion. We can do even better by predicting head orientation from the gyroscope.

I'll dig into these techniques and their open web implementations. Everything discussed in this post is implemented and available open source as part of the WebVR Polyfill project. If you want to skip ahead, check out the latest head tracker in action, and play around with this motion sensor visualizer.

Continued →

Hot bread: delicious or deadly?

Despite free access to information via the Internet and an increasingly global world, people still seem to have all sorts of divergent ideas about how the world works. For example, did you know that eating hot bread and pastries is incredibly unhealthy? Indeed, it can often even lead to complete bowel obstruction! I learned this fact as a kid, while growing up in the Soviet Union. Understandably, I have been very careful to avoid eating hot baked goods. That is, until recently, when my American girlfriend questioned the validity of my belief and I began to harbor some doubts. I decided to check if it was actually true, and asked Google. The results were very clear: I had fallen prey to an old wives tale. My worldview, shattered.

Incredulous, I searched for the same thing in Russian and arrived at the opposite conclusion. "What's up with that?" I thought, and wrote this post.

Continued →

UbiComp and ISWC 2015

I recently returned from ISWC 2015, where I presented the Cardboard Magnet paper. In addition to seeing old friends, meeting new ones, and being inspired by some interesting research, it was an excellent excuse to visit Osaka, Japan! This year, ISWC was co-located with UbiComp, and the combined conference had four tracks. This post is by no means exhaustive, just some of the more interesting work I got a chance to see.

Continued →

Magnetic Input for Mobile VR

It's easy to do, just follow these steps:

  1. Cut two holes in a box
  2. Put your phone in that box
  3. Look inside the box

And that's the way you do it.

Your smartphone is now in a box, so how do you do input? Now that we have a paper accepted to ISWC 2015, I can tell you!

Continued →

Site redesign, version five

It's been over three years since the design of this site has been updated. Time to change that!

This is the fifth revision of this site's design. Looking over previous designs, I've been happier with minimal designs, especially this one from 2012. I was inspired by many excellent designs such as Butterick's Practical Typography, Teehan+Lax, Erik Johansson, Medium and Frank Chimero.

The new design is visually cleaner. I use flexbox in many places, which makes the CSS far more intuitive. The responsive parts are very simple, consisting of just ten CSS declarations.

Continued →

Spatial audio and web VR

Last summer I visited Austria, the capital of classical music. I had the pleasure of hearing the Vespers of 1610 in the great Salzburger Dom (photosphere). The most memorable part of the piece was that the soloists moved between movements, so their voices and instruments emanated from surprising parts of the great hall. Inspired, I returned to the west coast and eventually came around to building a spatial audio prototypes like this one:

Screenshot of a demo

Spatial audio is an important part of any good VR experience, since the more senses we simulate, the more compelling it feels to our sense fusing mind. WebVR, WebGL, and WebAudio all act as complementary specs to enable this necessary experience. As you would expect, because it uses the WebVR boilerplate, this demo can be viewed on mobile, desktop, in Cardboard or an Oculus Rift. In all cases, you will need headphones :)

Continued →

Responsive WebVR, headset optional

VR on the web threatens to cleave the web platform in twain, like mobile did before it. The solution then and the solution now is Responsive Web Design, which websites to scale well for all form factors. Similarly, for VR to succeed on the web, we need to figure out how to make VR experiences that work both in any VR headset, and also without a VR headset at all.

Various head mounted displays.

WebVR boilerplate is a new starting point for building responsive web VR experiences that work on popular VR headsets and degrace gracefully on other platforms. Check out a couple of demos, a simple one and one ported from MozVR.

Continued →