2.1. The Development Environment
IVEE was built using Unity engine and R software and is intended to function using a regular desktop and an Oculus Rift S headset. It was developed from scratch for a little over a two-year period.
Figure 1 shows the first IVEE complete prototype.
The IVEE project consists of three parts: two backends and one frontend. While the first backend was written in R software, the second backend was developed using pure C# programming language. The frontend was established using the Unity Create Connections of the backends and frontend of the IVEE project.
R, the first backend, is both a programming language and software for statistical computing and graphics. It was developed based on the “S” systems created by Ihaka and Gentleman [
26]. R provides many functions for statistical analysis, including effective data support, an integrated suite of tools for statistical analysis, computations on spreadsheets, graphical visualizations, programming language, and extra capabilities using libraries. The second backend, C#, is a Microsoft programming language that blends the capabilities of C++, an extension of the C language for general-purpose programming, and Visual Basic (VB), a Microsoft-environment programming language known for its ease of use and high productivity [
27]. Finally, Unity 3D was employed as a frontend to build the immersive environment, thanks to its design flexibility [
28]. Unity can handle 2D and 3D graphics and employs C# as its main scripting language.
This multi-use and separation of software aims to allow for the reimplementation of the backends with other frontends and future ease of development.
The R backend is responsible for generating the necessary metadata used in C# to create 3D visualizations. The C# backend is responsible for managing the overall project resources and features as well as for generating 3D distributions. It is also considered to be the link between different routes by processing requests using CPUs.
The frontend serves as the interface between users and the model. It supports operations, including creating objects, generating and manipulating distributions, and collaborating remotely with other users.
2.4. Visualizations and Analytics
The module can handle 2D visual objects, 3D visual objects, and line graphs. If the object to be generated has less than 1000 instances, it is created using sphere primitives or line renderers provided by Unity. If the object has up to 120,000 instances, the Unity 3D particle system is utilized to boost the graphic rendering latency. The 3D plots can support up to six dimensions, including spatial x, y, and z, size, color, and time. For all objects, data are scaled to fit within the cube, and legends are displayed for the spatial dimensions of 3D graphs and line plots.
The engine currently supports four exploratory analytics techniques: histograms, scatterplots, boxplots, and line plots. An objective for the immersive engine was to provide support to allow R analytics to be accessed within the virtual environment to generate the information necessary for data visualization. When analytics are being processed, the computation is conducted on a processor node separate from the immersive engine to ensure there is no performance degradation in graphical rendering. Lastly, the immersive engine supports two or more users within a work session to conduct data analytics investigations collaboratively. Users can see each other’s visual content and communicate through voice chat and visual feedback to indicate which user is interacting.
2.5. IVEE Functionality
This section demonstrates how IVEE can assist in the generation of interactive visualizations in the immersive space. We illustrate the use of IVEE through a pilot study to further investigate the feasibility of using this engine and to evaluate the system’s functionality and performance in relation to data retrieval, user interfacing, and graphical rendering performance.
Analyzing multidimensional/multivariate data on 2D interfaces requires a variety of summary visualizations and reports that must be brought together to inform decision-making. These techniques have their disadvantages; complex interrelationships are hard to spot, and analysts cannot discern a modern dataset relying on 2D interfaces without the possibility of eliminating important details. Additionally, 2D graphics only provide one part of a more complex structure, and it is arduous to find meaningful information when one cannot visualize datasets as they are. Clearly, the field of analytics requires the means to visualize multivariate datasets as they are. VR immersive mediums offer various advantages for multivariate/multidimensional data, including greater space and the third dimension. Hence, they provide a much better way of reviewing and examining modern datasets. IVEE can visualize multivariate datasets, and enables users to manipulate them inside the virtual space without programming. In the following sections, we show how the IVEE engine works and demonstrate how to use its data sub-setting and merging features currently available in this engine version.
First, we demonstrate the gesture-based central menu system. The idea was to tie all the options to only two buttons on the right-hand Oculus Touch controller to reduce the users’ cognitive load (
Figure 3). Consequently, users do not have to remember any complicated button combinations but only press the button and swipe to select (
Figure 4). When a user is placed inside the virtual space of IVEE by wearing the Oculus headset and holding the touch controllers with both real hands, he/she can see his/her virtual hands holding virtual controllers as if they were real (
Figure 3). When the user moves his/her real hands that hold the real touch controllers, his/her virtual hands move accordingly in the virtual space. Moving the real/virtual hands in a sweeping motion and virtually touching one of the “red balls” automatically opens further menus (
Figure 5).
Before this step, the data to be explored should be built as a .csv file and placed in the IVEE Unity folder. Users can place all the files they wish to explore to work with multiple datasets simultaneously without exiting the virtual scene and stopping the simulation (
Figure 6).
After placing the file in the IVEE unity folder, users can press the A button to start the simulation and put their headsets on
Figure 3. To generate a visualization, users press the A button on the right-hand touch controller and swipe to the “Files” element (
Figure 4 and
Figure 5). This brings up a nested menu that shows all the files available in the unity folder (
Figure 6). Swiping over to the desired file creates a virtual object with a set of arguments assigned to it. Mainly, the generated virtual object represents the selected file (
Figure 7e). The user presses the A button again and swipes to select the “AES” element, which generates another virtual object in the scene (
Figure 7g). AES stands for aesthetics and helps to assign different data attributes to desired axes (
Figure 7h). Depending on the type and dimension of visualization, users can assign attributes accordingly. For instance, if users are interested in visualizing a 3D scatterplot of the data, they can assign the desired attributes to three axes. On the other hand, if they wish to generate a 2D line plot, they can assign two data attributes to the x and y axis, leaving the third axis empty. Before assigning any attributes, users should create a connection between the two generated virtual objects by holding them with virtual hands and bringing them into contact. The contact between the two objects is marked by a red band (
Figure 7j). Combining the two objects feeds the “AES”-generated virtual objects with chosen data attributes, allowing users to make their selection. Users then press the A button and swipe to the “Plot Type” element, bringing up another nested menu that holds the plot types (
Figure 7j).
The combination of these virtual objects creates a set of arguments that are sent to R through a C# script. The data calculation is performed in R on a thread that is separate from the virtual environment, which allows users to move around when data crunching is happening, without any frame rate loss. To confirm this configuration and send the arguments to R, users create one final object by swiping over to the “RunDataManager” element and clicking “Run” to execute (
Figure 8). On the “RunDataManager” object, the loading circle indicates that R is performing the calculations needed to generate the underlying structure of the chosen plot (
Figure 8). Once that file is generated by R, C# reads it in and creates a three-dimensional plot, as shown in
Figure 8 and
Figure 9.
To subset data, users grab the “Lasso” sphere and bring it into contact with the visualization so that the points the users want to subset are inside the sphere (
Figure 10). The sphere is a 3D scalable object that users can amplify or downsize to fit their desired points. The engine translates this information back to its backend to generate a file that contains the subset data only. The generated file is automatically stored in the IVEE Unity folder, and users can access it by simply pressing the A button and swiping over to the “Files” element. The nested folders in the “Files” element now have an additional folder that contains a portion of the original data that users selected. Users can now visualize the new dataset using other visualizations or create another subset. The action of simply grabbing the “Lasso” sphere and bringing it into close contact with the desired portion of data makes the sub-setting task much easier and more intuitive than in any other tool. Users do not have to worry about how they can subset data; instead, they subset intuitively within the virtual environment. Cleary, making analytics intuitive helps save time and effort when completing tasks.
The merge feature is as easy to perform as the subset feature. If users generate another visualization, they can merge it with the first visualization by grabbing both and bringing them closer to one another. This instantly results in the creation of a combined plot with the two selected graphs on it (
Figure 11). We envision including more features in the future to make IVEE the first fully interactive immersive space in the field of analytics.
Figure 12 shows the collaboration between various individuals in the immersive space. This virtual collaboration can occur remotely (i.e., users do not have to be present in the same physical environment, and each user can use a separate computer, an Oculus set, and a separate network to connect with other users) or in the same physical space as long as each user has a computer and a headset. Once connected, each user impersonates an avatar (
Figure 12) and can move freely around in the virtual space using the touch controllers. Users can talk to each other in the virtual space and interact with each other as if they were present physically in a real environment.
All individuals present in the scene can perform the tasks accommodated by this VR version, while others can witness the work instantly as if they were there. In addition, the individuals present in the virtual scene can interact with each other’s work and perform further analytics on it as if they are all present in a real-world setting. These individuals can communicate with each other through both gestures and audio.
2.6. Study
This work intends to present a new tool to the IA field with features to facilitate the work of analysts. A pilot study was conducted, and a task-based questionnaire was developed and was given to participants to measure the time it takes them to perform these tasks to assess the performance of the developed VR engine. The task-based questionnaire was developed for assessing the tasks developed within IVEE, consisting of 21 questions. The goal was to measure the time it took participants to complete these tasks within IVEE and to compare it with non-immersive tools, notably R. These tasks fall under three main categories: (1) create a visualization, (2) subset data, and (3) merge data. The first category (create a visualization) comprises 16 questions divided between the four types of visualizations supported by IVEE. Hence, participants were asked to generate the same type of visualization four times. For the second category (subset data), participants were asked to subset the data three times and then merge it twice for the third category (merge data). Participants were first asked to complete tasks using R. Then, they were moved to a VR setting to complete the same tasks within IVEE. To avoid bias, researchers were not allowed to share the goal of the experiment with the participants. Furthermore, the way in which questions were to be answered completely differed in these settings (e.g., R and IVEE)—R relied greatly on mouse–keyboard interactions and IVEE on natural interactions. This should help to minimize bias and generate statistically sound results.
A researcher was always present next to the participants to collect relevant data. To record the time spent on performing each task, the researcher used a timer that began timing either when a participant pressed the first letter using a keyboard in R or the A button in IVEE to generate a visualization, perform a subset analysis, or merge data. The researcher stopped the timer once the results were displayed on the computer screen in R or appeared in the IVEE virtual environment. It should be noted that—since R is a programming language—a cheat sheet of instructions was given to participants to allow them to complete the R phase of the experiment successfully. The sheet contained code lines from the R manual to instruct participants on how to use the system, and participants needed to make minor changes to the provided instructions when answering the questions. Most participants would not have been able to perform the assigned tasks in R without a cheat sheet. Consequently, the team would not have had enough data from the R environment to compare with the data from the IVEE environment. On the other hand, when using IVEE, participants did not have to type/know any code lines. Instead, they were asked to use their intuition when completing the assigned tasks. Overall, participants were asked to complete four tasks at one time, then to take a small break because the question list was lengthy.
2.6.1. Effectiveness Research Question
Since the focus of the study is to measure the amount of time it takes students to complete tasks assessing the effectiveness of the developed VR module, the research question is as follows:
2.6.2. Data Collection
A pilot study was conducted with volunteers from Mississippi State University. The study involved 30 students to compare the performance of IVEE to existing traditional analytics tools—notably, R. The VR kit used in the experiment comprises the following parts: Oculus Rift S, touch controllers, and the Unity development platform. Before initiating the experiment, participating students were asked to wear the Oculus Rift S to familiarize themselves with the virtual environment.
Figure 13 demonstrates the data collection process of the experiment.
The gender demographics indicate that 63% of the participating students were male and 36% female. The majority of students were from engineering branches, while a few were from the business department. Data on demographic information, VR-related background, and coding experience were gathered. Overall, 93.3% of the participants had below-average knowledge of VR technologies, and 73.3% had below-average experience in gaming. The insufficient experience of the participants in these subjects decreased bias and contributed to the acquisition of a statically sound outcome. Of the total, 40% of the participants had above-average knowledge of R.
2.6.3. The Participant Role
Questionnaires were the primary data collection method used in this experiment. Student participants reported their responses by answering demographic questions and completing the tests presented to them in order to gather performance time-related data. Upon finishing the registration form, the participants were asked to complete a demographics survey, which consisted of questions regarding gender, ethnicity, education level, field of study, nationality, age category, VR knowledge, video game-playing experience, coding experience, R programming experience, and grammar of graphics theory knowledge.
At this stage, the students were ready to participate in the experiment. They were given basic R instructions and a cheat sheet containing helpful lines of code to complete R tasks. During the VR stage of the study, the participants were given instructions on how to use the VR module, so it was only fair to show them how to use R to perform the assigned tasks and to provide a cheat sheet in order to create similarities between both study conditions (R and VR). The participants were assigned three types of tasks: (1) to generate four visualization types (histograms, scatterplots, boxplots, and line plots), (2) to merge charts, and (3) to subset data. In order to perform these tasks in R, the students used RStudio on a laptop. After completing the tasks in R, they were then given basic VR instructions and allowed to play around and become familiar with the new technology. The participants were then prepared to start the VR module, during which they were asked to perform the same tasks as they had already performed in R—but this time in VR. Note that the task sequence was switched between participants to avoid bias, meaning some participants performed the R tasks first while others performed the VR tasks first. The time it took each participant to complete the assigned tasks was recorded by the researcher for both conditions. Finally, students were given a VR design study survey to assess their experience with the developed module. The VR design study survey assessed the participants’ experience with the VR module. It consisted of five questions on a 5-point Likert scale and asked the participants to rate the VR module’s level of easiness and intuitiveness regarding visualizing data, sub-setting, data, and merging data. There was also an additional question asking the participants about their preference (R or VR) in the questionnaire.