## 2 Methods and Technologies
### Visualization Engine  
To make sure the experimental design was effectively constructed, an optimized virtual environment creation workflow was devised, and compatible hardware was found. Combined with sufficient software implementation of real-time data-logging algorithms and a user interface tailored for ease of use, a valid process for obtaining data was established. Hardware--The experiment was designed for potential use with both Pseudo-3D [57] visualization interfaces (monoscopic devices, e.g., PC monitors) and Real-3D [57] interfaces (stereoscopic devices, e.g., 3D monitors with shutter glasses or head-mounted displays). In our case, participants were outfitted with a head-mounted display, as the research primarily focused on user behavior in a virtual environment with a full VR experience (i.e., not employing multiple visualization devices, because this would have introduced extra experimental variables). All participants used the same kind of device with the same parameters, calibration settings, etc. The participants were given an Oculus Rift DKII head-mounted display (Full HD resolution, 75 frames per second, 110 deg. field of view). The head-mounted display was also outfitted with an aftermarket SMI iView-NG eye-tracker (with 60 Hz binocular sampling frequency), though eye-tracking data were not analyzed in this paper. The experimental scenes were rendered on an Intel i7 5820 K system (6 \(\times\) 3.3 GHz), outfitted with an nVidia GeForce GTX 980 Ti graphics card--a system powerful enough to prevent any potential framerate drops. Software--Unity version 5.4.3 was used as the visualization engine and central point of our application development. Unity provides free-to-use resources and customizable plugins that facilitate relatively quick application development. Thanks to the open and well-documented application program interface (API) of Unity, we were able to utilize or tweak some of the functionalities of the engine, but also to implement some others of our own. The API is written in the C# programming language, through which we were able to complement to the utility of the VGE to fit our purposes (e.g., user behavior logging, or teleporting users from one experimental scene to another). Unity offers support for the latest devices, including head-mounted displays. All the virtual environments participants were exposed to were created in Unity. To compose the environments, a combination of freely available 3D objects (Unity Store) was used, along with our own objects created in external applications (e.g., Photoshop textures, Blender 3D models) for each scene with respect to their intended saturation as visual stimuli. A universal user interaction logging component was implemented and recorded the following input  
* virtual movement (trajectory of movement in virtual space)
* mouse movement (looking around and/or changing direction of movement)
* head movement (looking around using a head-mounted display)
* keyboard interaction (eliciting movement in virtual space)
* participant-object collisions in the virtual world (interaction with features in virtual space)
* (optionally) eye-tracking data (participants' eye fixations on objects)  
Virtual movement, mouse movement and head movement were recorded with a frequency of 2 Hz (one record per 500 ms). Keyboard interaction and participant-object collisions were recorded as these events occurred. All participants' interaction data were saved as CSV outputs (Data S1) to allow additional analysis and visualization using statistical software or external visualization applications. VGE--The software fully facilitated creation of the environment. No external tools (except for those data logging ones created by us) were used, as none were needed. The 3D objects which established the VGE were either free-to-use items obtained from the Unity Asset Store (an official depository of Unity packages) or created by us.