Project Description
The main activity used as the basis of the project was using a calculator. The goal was to re-imagine the calculator interface in a VR setting. The calculator most people are familiar with is either in the form of the physical calculator or as apps on our phones or computers. Both versions display the results on a two dimensional screen. Also, the interaction to input numbers is often restricted to the act of pressing buttons – whether they are physical buttons or those on a screen. With this mind, we wanted to make use of the VR platform to design a functioning interactive calculator in a 3 dimensional space.
As the project’s emphasis is on the mix of both the usual (everyday) setting and a sense of the alternate, we decided to have two settings for the project. The first, user’s spawn location, is an everyday setting, located in a person’s bedroom. The bedroom is furnished with objects which an average person would possess – bed, drawer, bookshelf, etc. Non-textual elements – such as lighting and color – is used to naturally direct the user towards the calculator. The interactions in this room follow the conventions of the real world, gravity for example, to provide a clear distinction between this world and the alternate. The alternate world is accessed through clicking the calculator. The interactions that take place in this virtual calculator interface would have qualities which do not follow the everyday scene – flying, endless black background, cubes that float in space and snap to each other – creating a clear sense of an alternate reality.
Brainstorming
Project Two’s brainstorming process was different due to its collaborative nature. The team met up in person, each with potential ideas in mind. Several ideas came up, some of which further developed the 3D drawing idea, simulation of throwing glass, cooking food in a campfire, falling from the sky, pet simulator, backyard work, etc. Ultimately, Ben mentioned re-imagining the programming interface in VR. Discussing the potentials of this idea ultimately led to re-imagining the calculator interface in three dimensional space.
Implementing two different scenes made the division between the everyday and alternate very clear. The everyday surroundings of the bedroom was achieved by placing familiar furniture – desk, bed, plants, etc – under a warm lighting which created a comforting ambience. Furthermore, Ben allowed the user to interact with the objects in the space, making it more interactive. The alternate aspect of the project comes in when the user clicks the calculator. While clicking on other objects, such as the pencil, plant, etc, allows the user to grab and throw, clicking the calculator teleports the user inside the 3D calculator interface. The alternate environment is distinct, evident through the endless black background, glowing objects, ability to fly, grid-like floor. The user also has the freedom to fly. The nature in which objects, cubes in this case, interact is also different. The cubes are not influenced by gravity and also have snapping qualities to each other.
Process / Implementation
Due to the cancellation of physical classes and partly for convenience, our team divided the work, allowing each of the members to work remotely. As we had two different scenes, it made sense for two people to take charge of one scene. (Keyin and Tiger – scene 1 (bedroom), Ben and I – scene 2 (calculator).
I was responsible for designing the necessary assets in the alternate world – cubes being the main one. We needed cubes which represented single digits (0-9) and operators (+,-,*,etc). Text Mesh Pro was used to display these numbers. TMP allowed access to the numbers through script which was convenient for Ben when altering the numbers and operators. As the background of the alternate world was darker, a glow effect on the cubes was applied. This was achieved through using the LightWeight Render Pipeline which included a bloom effect.
After finishing the design for the cubes, I worked on writing the script for the teleportation to familiarize myself with the c# language. From Sarah’s suggestion, we decided to place the two worlds in a single scene and teleport the user’s position instead of switching scenes. I initially used Raycast to identify where the cursor was pointing. The raycast was only initiated when pressing the mouse. When the object pointed by the ray was the desired object, the user would be teleported to an assigned location. The script was applied to the player.
From feedback, the script was simplified significantly applying the script to the calculator. Raycast was no longer needed as teleportation was initiated when the calculator was clicked. There was another issue which arose due to the First Person Controller where the player was returned immediately back to their default location after being teleported for a short period of time. Ben fixed this issue through temporarily disabling the First Person Controller while the teleportation took place.
After each person completed their part, the project was assembled in person. Teleportation was implemented to connect two scenes. Most of the time was spent adjusting the LightWeightRender Pipeline to the first scene.
Reflection / Evaluation
The project managed to create an alternate version of both the interaction with the calculator and its internal interface. The alternate version of the interaction itself was achieved through prompting a different response when clicking the calculator as opposed to clicking the other objects in the room. When clicking the other objects, the user can grab and throw them whereas clicking the calculator teleports the user. This contrast clearly distinguishes the calculator from the rest of the objects. The alternate version of the interface is achieved through the visual and physical elements that clearly differ from the everyday scene. The relative flexibility in the alternate scene allows interactions – such as flying, floating cubes – to occur.
The primary visual cue which prompts the user to interact with the calculator is the desk light. The calculator is placed in the center of a large desktop under a bright spotlight. When the user hovers the mouse over the calculator, the object luminates to indicate a special interaction and encourages the user to click.
In the alternate world, colors are used to represent the different status of the cubes and expression. Moving around and placing objects follow the conventions of many computer games (wasd) and mouse-click, allowing the user to quickly adapt to the controls. The “=” cube which exists in default, along with the block on the right corner, signals the user to place and block and add on to the expression.
The end result turned out similar to the original designs. Alterations that were made were primarily due to the change in platform from the vive to computer. The keyboard allowed for more freedom in user movement, such as flying. It allowed more buttons for input which were necessary in the alternate world to support the operations. As most interactions in the bedroom was limited to holding and releasing the mouse, they could easily be adapted to the vive.
Agency Question
Calculators allow for the computation of infinite expressions. This function itself, creates a high-agency experience for the user. The project simply provided another visual interpretation of this very function. Hence, the interactive aspect (pull and drag, snapping, flying), in addition to the freedom of the user to compute any expression and see results for all cases, provide a high-agency environment for the user to interact in. This allows the user to focus more of their attention in formulating expressions and waiting for the right answer and feedback, and less on the physical interactions themselves.