I found out today that HTC now ships a tool to measure users’ inter-pupillary distances with new Vive VR headsets. When I say “tool,” I mean a booklet with instructions in many languages, and a ruler printed along one edge of each page:
I thought this was great on multiple levels. For one, measuring the user’s IPD and entering it into the VR software, either manually or through a sensor on a physical IPD adjustment knob or slider on the headset, as in both Vive and Oculus Rift, is an important component of creating convincing VR displays. The more people get used to that, the better.
On the second level, I was proud. On April 9, 2014, I wrote an article on this here blog titled “How to Measure Your IPD,” which describes this exact method of using a mirror and a ruler. It even became one of my more popular articles (the fifth most popular article, actually, with 33,952 views as of today). I was a little less proud when I looked at my own article again just now, and realized that my diagrams were absolutely hideous compared to those in HTC’s booklet. Oh well.
Anyway, I wrote that article in response to a discussion on the Oculus sub-reddit, then the main forum for developers and users of commodity VR. At the time, Oculus’ SDK contained an in-headset IPD measurement tool, but it didn’t work very well. In that discussion (which I cannot find at this moment), someone pointed to a webcam-based IPD measurement application embedded on Warby Parker‘s web site. I didn’t like that method for two reasons: for one, although the original web site appears to be a legitimate seller of eyeware, it would be easy for scammers to set up another site with the same application, and collect sensitive information from careless users holding their credit cards up to their web cams and uploading the resulting pictures.
My second concern was that the camera-based algorithm has two sources of systematic error built in (for which the software might attempt to compensate, but the principle…), see Figure 2. When taking a selfie with a web cam, most users would focus on the camera’s lens, and therefore turn their eyes inwards. This would result in the measured IPD being smaller than infinity-verged IPD, by around 1.5 millimeters for average users and an eye-camera distance of 50cm. Second, there is perspective foreshortening when holding a ruler or other measurement device in front of one’s eyes, and taking a picture with a camera. The apparent distance on the ruler will be smaller than the real distance, depending on the relative distances from the eyes to the ruler, and from the eyes to the camera’s lens.
With that in mind, I started thinking about ways to get around these problems. How could one force the user to keep their eyes pointed perfectly parallel, and at the same time get around perspective foreshortening? It’s actually quite difficult to force one’s eyes to verge to a distance that is not represented by real objects in the environment. Then it occurred to me that one could use some object with two marks on it, exactly as far apart as the user’s pupils, and ask the user to first focus on one mark, and then on the other. But that’s a chicken-and-egg problem: one has to know one’s IPD to then set up a target object and measure one’s IPD. Unless… the object is the user’s own mirror image, which obviously has the same IPD a the user. Bingo. Using a mirror elegantly solves the perspective foreshortening problem as well, and on top of that enables a user to measure their IPD without anyone else’s help. So, a winning strategy. I thought I was very smart.
Which brings us back to today, when I felt both very smart and very proud. Surely someone at HTC had read my article, decided to use my method, and asked a graphic designer to spruce up the presentation. Alas, not so fast. Googling for “measure ipd mirror ruler” brought up a bunch of results predating my article, such as this one from 2012, this video from 2011, and some with, again, prettier diagrams, and even one by a sometimes reader of my blog! So, yeah. I should have consulted the Googles back then.
I do still kinda want to know where HTC took their lead from, to be honest.