TE.3_Limits of Hit-Testing on ARKit

After going through Apple’s ARKit documentation, I have been curious to test limitations of ARKit. Apple has made it very clear that the system relies on Light, Pattern/Contrast in floor(as it can effectively scan horizontal planes) and Angle of holding the phone guides the range.

Following is a very early exploration, only to gauge limitation of ARKit based on fixed lighting conditions. Before starting the experiment, I recorded lux levels of the room as falling on the front camera. Since the light source was mounted on the ceiling, I tried to capture lumen levels through proprietary iOS app. I used Lux Light Meter Pro by Elena Polyanskaya on App Store.

Lux Light Meter Pro by Elena Polyanskaya
Average light intensity of the space in which experiment was conducted

LUX Light Meter Pro is well crafted and has options to capture lux levels from both front and rear cameras. Default lux levels read around 258 for the current setup. Since i don’t have controlled lighting in this room, I decided to lay a quadrant grid in the space and capture ARKit’s app behavior in each quadrant. Following is a schematic I prepared for the room with its independent sources of light. This schematic can guide us to understand impact of light sources.


For purposes of this experiment I made use of available resources i.e. in kitchen of graduate studio.

(L) Basic layout of the kitchen, (R) Lighting fixtures with respective intensities in Lux

Noticing space at hand, I wanted to setup in a way which could enable me to understand effect of lighting across different regions of the room.

a 2x2 grid with check points at every 50cms

Marking a 2x2 grid enables me to see how different regions of the room with different illumination affect behavior of ARKit apps. This grid also helps me to record distance relationship from origin.

Time to TEST

For purpose of this experiment I am using measuring apps, since measuring apps are programmed with versatility to generate lot of anchor points.

(L) Tape Measure (M) Tap Measure (R) Measure Kit
TapeMeasure : Yellow dots are anchor points generated by TapeMeasure
TapMeasure : Yellow dots are anchor points generated by TapeMeasure
MeasureKit takes a unique approach by projecting a plane as a combination of multiple anchor points, feels more reliable as gives clear feedback of usable space
  • 2 meters seems(not sure, needs more experimentation) to be a realistic threshold range in current lighting conditions.
  • MeasureKit’s approach of stitching a plane from anchor points in close proximity, provides a realistic and actionable affordance for users.
  • Reflective walls/vertical surfaces can enhance lighting in the environment and thus performance of ARKit is better as well.
  • This experiment did demonstrate that ARKit performed differently in difference regions with varying lighting conditions. Definitely worth investigating further in detail through a controlled lighting environment.

This experiment threw some light on how light can affect performance of ARKit. My next investigation will look at how pattern/texture of a horizontal surface affects ARKit performance. I believe that such an experiment should be conducted in controlled light environment to understand relationship of both lighting and textures.