In this post, we talk about what IPD is, why it's important, and how gaming headsets have handled it historically. We discuss the Simula One's auto-IPD adjustment mechanism, and end with a video of us testing a linear servo motor against one of our lenses.
TLDR: Simula is supporting an auto-IPD adjustment mechanism, with a mechanical IPD range of 55mm-77mm. Our lower limit (55mm) is constrained by our optics size, while our upper limit (77mm) is bounded by the size of our exterior headset enclosure. In contrast, most other headsets provide a manual IPD adjustment mechanism, with a slightly lower IPD range.
1 What is IPD?
Interpupillary distance (IPD) is the distance (measured in millimeters) between the centers of the pupils of our eyes.
1.1 Why is IPD important in VR?
VR requires feeding our eyes imagery that matches as closely as possible with how we perceive objects in the physical world. In order to do this, each lens must be aligned exactly over our eyes. The margin for error here is slim: most VR lenses (including our own) are designed to allow for about 2mm of flex. Misalignment beyond 2mm leads to blurriness.
The majority of headsets on the market allow the user to manually adjust IPD alignment. The problem is that this requires the user to know their IPD precisely (for our optics, within +- 2mm) ahead of time. Though there are many ways to manually obtain one's IPD (from using smartphone apps to visiting an eye doctor), in practice most VR users just end up just winging it and adjusting their IPD it to something "close enough" to avoid immediate eyestrain.
A select few headsets (e.g. the Varjo Aero and our own) aim to detect IPD automatically via eye tracking, allowing the headset to adjust the lenses instaneously via motors. This provides frictionless IPD adjustment right out of the box.
1.2 IPD Population Statistics
Studies from the U.S. government and other research groups show that 95%+ of the U.S. population falls within the Simula One's 55mm-77mm IPD range.
According to the data, men tend to have a slightly wider IPD than women:
|Gender||Mean||Minimum||Maximum||1% percentile||5% percentile||50% percentile||95% percentile||99% percentile|
 IPD values from this chart are from the 2012 Anthropometric Survey of US Army Personnel.
1.3 IPD Ranges on Recent VR Headsets
The following table shows the IPD ranges of some recent headsets.
|Headset||Adjustment Method||Min IPD||Max IPD|
|Oculus Rift S||Manual||58mm||72mm|
|Meta Quest 2||Manual||58mm||68mm|
|Meta Quest Pro||Manual||55mm||75mm|
Note that many headset manufacturers claim an IPD range slightly greater than their mechanical limits (due to VR optics typically supporting an additional ~2mm of IPD misalignment without it being noticeable). Our IPD range of 55mm-77mm is purely mechanical (and extends to 53mm-79mm if we factor this in).
: All IPD data is from vr-compare.com
2 IPD Motion Compensation
Another benefit of automatic IPD compensation is that it allows a headset to dynamically compensate for headset movement over the course of a VR computing session.
For example suppose someone flicks their head to talk to someone (as above), causing the headset to shift leftward by a millimeter or so. A good auto-IPD system can detect and dynamically compensate for movements like this, allowing perfect IPD alignment to persist over long sessions.
3 Testing out IPD motors on the Simula One
We are currently investigating off-the-shelf mini and micro servos to propel our auto-IPD system. Though these options are sometimes referred to as "toy servos", their range of motion, sufficient torque, ease of implementation, low cost, and abundant availability makes them an attractive option, if used correctly.
Admittedly, the one drawback of these "toy" solutions is that their weight isn't optimized. On the plus side though: they add minimal PCB and software complexity. Right now we're validating the output torque and precision of a number of products.
Note that the PCB board on the right is just an evaluation board (the one in our headset will be much smaller). Since IPD typically doesn’t change drastically for a user across a session, we also aren't as concerned with the lower speed of motion (though we'll need to test against IPD motion compensation to be fully sure).