Project 3 - Our House

Introduction

This project was made as a part of the coursework in CS 428 Virtual, Augmented and Mixed Reality, instructed by Dr. Andrew Johnson at the University of Illinois at Chicago during the Fall 2022 semester. The aim of the project was to create a Virtual Reality scene in a building scale, where we modify the atrium of the upcoming CDRLC building. I designed this Virtual Reality scene with my teammate Sudhanshu Basuroy. Our choice of theme for the scene was Christmas and have put various Christmas decoration up in parts of the atrium.

How to Use The Application

  1. The scene should load as seen on the right. You may reorient your center at any point using the Oculus button on the right hand controller. You can establish a stationary boundary to use the application appropriately
  2. Use the Thumbstick on the right hand controller to navigate around the scene by positioning the green circle and clicking the Thumbstick
  3. Use the Thumbstick on the left hand controller to use the teleporters in the scene by positioning the green circle on one of the teleporters and clicking the Thumbstick
  4. Most small objects in the scene can be interacted with by placing the controller over them and holding down the grab button on the controller, to pick and grab them.
  5. The two levers in the scene can be grabbed and toggled to induce a change in the scene.

    Note that for the change to be reproduced, the lever has to be toggled again to the ON position
  6. The ATM, Hot chocolate station and basketball machine can be operated by pressing the button on them

    Note that an empty paper cup from the scene needs to be placed below the hot chocolate station's nozzle for it to work upon pressing the button
  7. The lighting scheme can be toggled between day and night by pressing the red button between the ATM and the staircase on the first floor
  8. Certain objects including the human models produce a sound upon touching them using the controllers

Performance Analysis

  • Location 1
    The framerate from this location is 72 fps
  • Location 2
    The framerate continues to be stable at 72 fps from this location as well
  • Location 3
    The framerate from this location falls a little due to multiple complex models being in frame, although not visible.
  • Location 4
    The framerate again rises to a stable 72 fps because a significant number of complex models are not in frame
  • Location 5
    The framerate continues to be stable at 72 fps at this location
  • Location 6
    The framerate is stable at 72 fps from this location

Requirements

  • Unity Hub and Unity (Version 2021.3.6f1) – Installation Link
  • VRTK v4
  • Oculus Meta Quest 1 or 2 (Optional but Preferred)

Installation Guide

  1. Access the GitHub link using the following link: GitHub Repository
  2. Click on code and then “Download ZIP”
  3. Open the Zip and extract its contents to a folder with the structure in the image
  4. Open Unity Hub and click on “Open” next to “New Project”. In the File Explorer, navigate to the folder containing the unzipped files. Once found, click “Open”. Make sure your Unity version is 2021.3.6f1.
  5. The project will take some time to load, you may need to wait.
  6. In the Unity Window, in the bottom half, go to the “Project” Tab. In the “Project” explorer, go to “Assets” then “CoffeeShopStarterPack” then “Scenes”. Within the “Scenes” folder, drag the “CoffeeScene” to the project “Hierarchy” as shown in the image. If “Untitled” scene still exists, right click and delete it.
  7. Now we will try to run the project.
  8. To run in the project in the Simulator, in the hierarchy “CameraRigs.SpatialSimulator” must be checked, as shown in the image. Also “CameraRigs.UnityXRPluginFramework” should be unchecked in the hierarchy. Once done, you can press Play to use view the project in Simulator Mode.
  9. You can move the person around using the WASD keys and the mouse. If you want to switch movement between the person and controllers – Press “1” to control the person, Press “2” to control the left hand and Press “3” to control the right hand.
  10. If you want to run the project on the Quest, continue to the next steps.
  11. First, uncheck “CameraRigs.SpatialSimulator” and check “CameraRigs.UnityXRPluginFramework”.
  12. Now in the navigation bar, go to “File” then “Build Settings” and the following window should appear. On the left side select “Android” and the “Switch Platform” below. The switching platform process takes some time.
  13. Note: In case, you’ve already installed Unity without Android support, you can still add Android tools from Unity Hub. On the Installs tab, click the gear icon next to the Unity version to which you want to add the Android tools, and then click Add Modules. Select Android Build Support checkbox, and then select Android SDK & NDK Tools and OpenJDK checkboxes.
  14. Note: When connecting the Quest you may need to give some permission. You should allow all.
  15. Once the switching platform is complete, change the “Texture Compression” to ASTC. In the “Run Device” section, select your Quest headset. Incase it is not visible, press “Refresh”. Otherwise you may need to troubleshoot the detection of the Quest by your device.
  16. Once the Quest is set as “Run Device”, click on “Build and Run”.
  17. This will pop up a new window to save the .apk file. You should save this anywhere outside the project folder and with any name.
  18. Once the .apk is saved, it will be automatically deployed on the Quest. You are now set.

Project Requirements

Citations of 3-D Models from the Web for the Atrium:

  1. Christmas Tree by LowlyPoly is licensed under Standard Unity Asset Store EULA.
  2. Christmas Gifts by LowlyPoly is licensed under Standard Unity Asset Store EULA.
  3. Candy Cane by LowlyPoly is licensed under Standard Unity Asset Store EULA.
  4. Chandelier by Pivoga is licensed under Creative Commons Attribution.
  5. Reindeer by UlissesVinicios is licensed under Creative Commons Attribution.
  6. Sleigh by Naveen Himal is licensed under Creative Commons Attribution.
  7. Drone by BlueMesh is licensed under Creative Commons Attribution.
  8. Mic + Stand by pizzaguyty is licensed under Creative Commons Attribution.
  9. Speakers by Nashki is licensed under Creative Commons Attribution.
  10. Tray by Aullwen is licensed under Creative Commons Attribution.
  11. Cookie by Ole Gunnar Isager is licensed under Creative Commons Attribution.
  12. Pound Cake by Rika Creature is licensed under Creative Commons Attribution.
  13. Ceiling Fan by MozillaHubs is licensed under Creative Commons Attribution.
  14. Gingerbread House by Lilly! is licensed under Creative Commons Attribution.
  15. Train by Spark is licensed under Creative Commons Attribution.
  16. Paper Cup by Just8 is licensed under Creative Commons Attribution.
  17. Small Reindeer by itspiao is licensed under Creative Commons Attribution.
  18. Train Area Light by ribot02 is licensed under Creative Commons Attribution.
  19. Santa Hats by scrampunk is licensed under Creative Commons Attribution.
  20. Christmas Stocking by Duznot is licensed under Creative Commons Attribution.
  21. Christmas Mug by Jonny Crabb is licensed under Creative Commons Attribution.
  22. Chocolate by Floarian Patiny is licensed under Creative Commons Attribution.
  23. Apple Pie by Kiiba is licensed under Creative Commons Attribution.

Citations of Sounds Used:

  1. (Ambient Sound 1) Piano Sound by Lemoncreme from freesound.
  2. (Ambient Sound 2) Christmas Music by minton. from freesound.
  3. Horse Neighing by InspectorJ from freesound.
  4. Merry Christmas Announcement by airmedia from freesound.
  5. Train Sound by boteman from freesound.
  6. Hot Chocolate Vending Machine by tlabrant from freesound.
  7. Basketball Bounce by HighPixel from freesound.
  8. Oven Sound by gadzooks from freesound.
  9. ATM Sounds by Czarcazas from freesound.
  10. Tray Falling by DanielVega from freesound.
  11. Cup Falling by Anika11 from freesound.
  12. Giftbox Falling by 190156 from freesound.

Citations of Images Used:

  1. UIC Christmas Girl from https://pbs.twimg.com/media/FHObKOxWYAESw9E?format=jpg&name=4096x4096
  2. Santa from https://pics.clipartpng.com/Cute_Santa_PNG_Clipart-21.png
  3. Christmas Decoration from https://www.transparentpng.com/thumb/christmas/WNemIc-christmas-corner-borders-images-pictures-becuo-stock.png
  4. UIC Flames Logo from https://logos-world.net/wp-content/uploads/2020/07/Illinois-Chicago-Flames-Logo.png
  5. Snowfall from https://pngtree.com/freepng/christmas-snow-festival_6958744.html
  6. Sparky from https://uicflames.com/images/2021/1/7/Sparky_standing.png?width=2000

Citation for Texture:

  1. Snow by Danil Piskor is licensed under Standard Unity Asset Store EULA.

Own Models

# Name Image
1 ATM Machine
2 Hot Chocolate Station
3 Staircase Lamps
4 Helpdesk
5 Cookie Table
6 Snowman
7 Giftshop Table
8 Basketball Hoop
9 Basketball Machine
10 Basketball
11 Oven

Lighting Schemes

# Name Image
1 Main Sunlight
2 Staircase Light
3 Train Area Light
4 Hot Chocolate Stand Light
5 Second Lights

Flat Models

# Name Image
1 Notice Board
2 UIC Banner
3 Christmas Banner
4 Christmas Wishes Wide Banner
5 Rug
6 Money
7 Sparky
8 Treats Station Banner
9 Christmas Store Banner
10 Teleport Board

Animated Models

# Name Image
1 Fan
2 Drone
3 Reindeer
4 Toy Train

Interactable Models with Sounds(if used):

# Name Image
1 Christmas Gifts Giftbox Falling
2 Tray Tray Falling
3 Cookie None
4 Pound Cake None
5 Paper Cup Cup Falling
6 Toy Reindeer None
7 Santa Hat None
8 Christmas Stocking None
9 Christmas Mug Cup Falling
10 Chocolate None
11 Candy Cane None
12 Apple Pie None
13 Money None

Models larger than a person:

# Name Image
1 Fan
2 Chandelier
3 Christmas Tree
4 Banners

Models smaller than a person:

  • Most interactable objects are smaller than a person

Models spawning new objects:

# Name Image
1 Hot Chocolate Machine
2 Oven
3 Basketball Machine
4 ATM Machine

Models moving through scene:

# Name Image
1 Drone
2 Reindeer

Particle Systems:

# Name Image
1 Snow Falling
2 Hot Chocolate Pouring from Hot Chocolate Machine

Functional Lever:

# Name Image
1 Lever Near Reindeer Triggers motion of reindeer through scene
2 Lever Near Tree Plays a sound and makes the christmas tree rotate

Teleport Locations:

# Name Image
1 Location 1
2 Location 2
3 Location 3
4 Location 4
5 Location 5
6 Location 6

Citations for 3-D Models for Graduate Requirements:

  1. Cauldron Boiling by Inuciian is licensed under Creative Commons Attribution.
  2. Jack-O-Lantern by Yanez Designs is licensed under Creative Commons Attribution.
  3. Scarecrow by polyperfect is licensed under Standard Unity Asset Store EULA.
  4. Coffin by polyperfect is licensed under Standard Unity Asset Store EULA.
  5. Candles-Spine by polyperfect is licensed under Standard Unity Asset Store EULA.
  6. Candle-Skull by polyperfect is licensed under Standard Unity Asset Store EULA.
  7. Broom-Old by polyperfect is licensed under Standard Unity Asset Store EULA.
  8. Book-Evil by polyperfect is licensed under Standard Unity Asset Store EULA.
  9. Man-Ghost by polyperfect is licensed under Standard Unity Asset Store EULA.
  10. Woman-Witch by polyperfect is licensed under Standard Unity Asset Store EULA.
  11. Gravestone by polyperfect is licensed under Standard Unity Asset Store EULA.
  12. Sythe by polyperfect is licensed under Standard Unity Asset Store EULA.

Citations of Sounds Used for Graduate Requirements:

  1. Christmas is Cancelled by acclivity from freesound.
  2. Witch laugh by ivanmilic from freesound.
  3. Boiling Water by InspectorJ from freesound.
  4. Door Knock by wjtaylor frome freesound.
  5. Spooky Sound by xXSamilYTXx from freesound.
  6. Horror Laugh by klankbeeld from freesound.
  7. Boo and Laugh by metrostock99 from freesound.
  8. Scary Talk by Advait Pai

Viewing a Building through VR

Building a space is a time-consuming process and cost-intensive. When developing a building, a lot of factors need to be accounted for, such as the design ideas, the aesthetics, the utility of the space and so on. This is where Virtual Reality technology could come in handy as it would allow for a virtual understanding of the space before the actual development is completed.

Using Virtual Reality technology, individuals could be introduced to a future environment where they would work, live or even just visit. Buildings are of different forms and space and they serve different purposes. For example, a building could be a functioning office or could be a simple commemorative space. And while, money is the primary source to build these spaces, their might also by individual intrinsic factors like thoughts, beliefs and emptions attached to a living space, thus increasing the list of design considerations. Therefore, the first way I would use Virtual Reality Technology would be to involve stakeholders of the building in the design process. These stakeholders such as investors, trustees, and so are the key decision makers in the design process and highlighting the key aspects of a space would be pertinent. For example, when a company wants to build a new office tower, the ability to walk through the whole building in the virtual reality mode would allow the decision makers to understand how their resources and ideas are going to be implemented on the ground, thus increasing confidence in the design idea. It could also help them modify their designs before the building is actually built, thus saving important resources.

Another way Virtual Reality technology can be used is when there is a need to attract individuals to an upcoming building. Since the building is not tangible yet, using VR could help give a better idea to individuals about the space. For example, a school could be building a new student recreation facility with the next 6 months, so to attract potential new students, the school could show a VR representation of the recreations facility and the amenities they intend to provide with it.

A few considerations need to be made before implementing this, such as the fact that not everyone owns a VR headset hence this solution may not be very cost efficient. Also individuals make take time to adapt to the use of a VR headset, thus it is important that they are first made comfortable with the headset before they actually tour the building. Lastly, walking around a virtual building requires a lot of space, cause you still have to walk in the real world, hence adding functions to teleport through the building is important.

In conclusion, I believe, taking the considerations into account, if one is able to develop application, it would be useful as it would give individuals a true representation of what they are being expected to imagine.