The overall orientation of the probe was specified by the local orientation defined by the environment at the location where the probe was inserted. I refer to said location with the term “insertion point.” Right before probe presentation, two maps of the environment were captured from the HMD: an image-driven map, consisting of a 2D snapshot of the scene viewed by the observer, taken by a cyclopean camera positioned between the two eyes, and an object-driven map, consisting of a depth map of the scene where the intensity of a given pixel scaled with the distance of the corresponding environmental location from the observer. Based on calibration tests with fiducial markers placed at the corners of the captured area, I estimate this area to cover 45 × 50 degrees (width × height) of the central visual field. The image-driven map was converted to grayscale, so that the two maps were both defined by 2D matrices of matched dimensions and aligned coordinates in visual space. They were downsampled to 90 × 100 pixels (width × height) to achieve rapid image processing, which was implemented primarily using the OpenCV for Unity package (C# port). Each map was subjected to edge detection via Sobel filtering. The resulting image-driven and object-driven edge maps (
Figures 1D–E) were then used to identify two potential insertion points: an image-driven insertion point (red dashed circles) and an object-driven insertion point (blue dashed circles). When describing the identification of an image-driven insertion point below, I refer to the image-driven edge map as “driver” map
M↑ and to the object-driven edge map as “modulator” map
M↓. The role of the “driver” map is to direct the probe insertion point
toward the information content represented by said map (image-based if the driver map is defined by the image-driven edge map, object-based if the driver map is defined by the object-driven edge map). The role of the “modulator” map is to direct the probe insertion point
away from the information content represented by said map. Identification of an object-driven insertion point simply involves swapping denominations for the two maps: The object-driven edge map becomes “driver” (
M↑), and the image-driven edge map becomes modulator (
M↓). Both maps were initially normalized to range between 0 (minimum value within map) and 1 (maximum value within map).
M↓ was blurred with a Gaussian kernel of SD equal to 5 pixels and sign-inverted as
M↓ → 1 −
M↓ (0 corresponds to maximum value within original map, and 1 corresponds to minimum value within original map). Each entry of
M↑ was corrupted by a noise source uniformly distributed between 0 and 0.2 to introduce a small degree of variability in the insertion point for a given view. The algorithm then set corner regions within
M↑ to zero. These regions were identified by subjecting
M↑ to Harris corner detection with block size 10, aperture parameter 3, and Harris detector-free parameter 0.04, to obtain a corner map
M⌟. This map was thresholded to retain only the top 10% of its values, which were set to 0 while all remaining values were set to 1, and
M↑ →
M↑ ×
M⌟. The algorithm then combined
M↑ and
M↓ to obtain the insertion map
M =
M↑ ×
M↓.
M was windowed by a circular envelope to include only the central disc of diameter equal to 80% of image width, with a tapering Gaussian edge of SD equal to 10% of image width. The final probe insertion point corresponded to the pixel with maximum intensity within
M. Local orientation was defined as the orientation returned by the Sobel detector for that location within
M↑. On each trial, the decision as to whether the probe would be inserted at the image-driven insertion point or at the object-driven insertion point was taken randomly with equal probability, meaning that (on average) the number of trials containing image-driven insertions matched the number of trials containing object-driven insertions.