VR Classroom - Project 3
This is a course project (Project 3) - School’s Out, for CS 428 - Virtual, Augmented & Mixed Reality at UIC under Professor Andrew Johnson (course link). You can also find a video demo for the project below -
You can download Unity and Unity Hub from the above links. Install Unity Hub which allows you to manage different versions of Unity for multiple projects and also allows you to create and open projects. Next, you can install the above mentioned version of Unity. For VRTK, no installation or setup is required as the files are included in the project itself.
How to run
- Clone the project and open it in Unity. The project is around 200 MB without the
Libraryfolder, because of the extra assets.
- For the VRTK requirement, you don’t need to do any extra installation as the required files are present in the repository itself.
- The project can be run without a VR headset and uses the VRTK Simulator to achieve this. The other SDKs like SteamVR, Oculus, etc., are also available and you can switch between them in Play Mode.
- Simply clicking on Play will run the scene for you.
Note: If you get suspicious errors from OpenVR when you click on Play, go to the
[VRTL_SDKManager] object in the heirarchy and find it’s
VRTK_SDK Manager component. Under setups where the list of all available SDKs is present, remove
UnityXR and try running again. This caused me an error initially, forcing me to remove them. But I added them back on in the end, and it seemed to work.
This is a virtual reality project that displays a virtual classrooms. It gives us a glimpse as to how we can reimagine the classroom environment if it was completely virtual. Some parts of the environment was already available to us -
- the room
- the walls
- the instructor
- the displays and the monitors
- the chairs and tables
- the lights and switches
The other parts were added by me and consist of assets made by me as well as imported from places like Unity’s Asset Store and 3D Warehouse. The humanoids and their animations were taken from MakeHuman and Mixamo. A comprehensive list of features can be found below.
Key-binds for the simulator
The following are the key-binds for using the VRTK Simulator -
WASDfor movement in four directions
- Mouse movement for looking
- Left-click for grabbing an object, left-click again for releasing the object
Qto bring up the teleport marker and teleport to a location
Altto use the controller. You can then move the controller in the X-Z axis using the mouse and press
Ctrlfor moving the controller in the X-Y axis.
Tabto switch the controller hand.
Efor Button One on the controller.
- My desk - The desk in front of the humanoid in the white tee-shirt is a representation of what my desk typically looks like. The humanoid in the white tee-shirt is also a representation of me. Each of the 10 small objects around me can be interacted with using the VR controller. They can be grabbed, bumped against other objects, and dropped.
- The students - There are 4 students in the class. All of them have default animations that they are doing when the scene starts. When you get reasonably close to the students, they change their animation to something else, and say something appropriate. The students also have appropriate colliders, so you balls bounce against their bodies.
- Large objects - There are around 9 large objects scattered across the scene. Since the goal was to reimagine a virtual classroom, I chose objects based on what I thought would be cool to have in order to get students engaged and interested in the class. Some of these objects include a vending machine, a board game for entertainment, a rotating model of the earth to teach geoography, etc.
- Interactable large objects - There is a red vending machine in the corner which has a large button in it’s mid-section. When the user “clicks” the button, the vending machine dispenses a soda can that can be grabbed, moved around, and dropped. There is also a rotating model of the earth in the first bench. When the user touches the model, the model stops rotating so that the user can inspect a particular part of the earth.
- New lighting scheme - Adding to the 2 sets of switches and 4 white lights provided in the starter scene, there are an additional set of 2 switches located in the rear wall. These turn on 4 new lights that are red in colour and give the effect of an Evacuate warning.
- Scaling down - Button One on the controller is bound to the
Ekey, which can be pressed on the keyboard to scale down the user. This makes the user around 6 inches tall and slows down the speed of movement, making the environment appear gigantic. You can go back to normal scale by pressing
Eor the Button One on the controller again.
Asset and sound credits
- Laptop - https://assetstore.unity.com/packages/3d/props/electronics/hq-laptop-computer-42030
- Smartphone - https://assetstore.unity.com/packages/3d/props/electronics/free-smartphone-90324#content
- Mugs and bowls - https://assetstore.unity.com/packages/3d/props/interior/plates-bowls-mugs-pack-146682
- Pens - https://assetstore.unity.com/packages/3d/props/tools/detailed-ballpoint-pens-164157
- School supplies - https://assetstore.unity.com/packages/3d/school-supplies-96667#content
- Water bottle - https://3dwarehouse.sketchup.com/model/957f897018c8c387b79156a61ad4c01/bouteille-d-eau-en-plastique
- Briefcase and plant - https://assetstore.unity.com/packages/3d/environments/low-poly-office-props-lite-131438
- Vending machine - https://3dwarehouse.sketchup.com/model/798a52ea-209c-41ab-84bc-40415509580b/Vending-Machine
- Bean bag - https://3dwarehouse.sketchup.com/model/b4b58c0a-987f-4c76-a6cf-7296e76f638a/Bean-bag-rond-Enfant
- Typing on Keyboard - http://soundbible.com/464-Typing-On-Keyboard.html
- Printer - https://assetstore.unity.com/packages/3d/props/electronics/printer-lowpoly-4996
- Arcade machines - https://assetstore.unity.com/packages/3d/props/arcade-machines-pack-02-lowpoly-pack-79442#content
- Lowpoly earth - https://assetstore.unity.com/packages/3d/environments/landscapes/stylized-earth-94673
- Christmas tree - https://assetstore.unity.com/packages/3d/environments/landscapes/lowpoly-style-free-rocks-and-plants-145133
- Water dispenser - https://3dwarehouse.sketchup.com/model/u3ea94ff9-b17e-4918-ae07-d11e43380f39/Thermador-18-inch-Freezer-Column-with-External-Ice-and-Water-Dispenser-T18ID800LP
- Books - https://assetstore.unity.com/packages/3d/props/interior/books-3356
- Chess set - https://assetstore.unity.com/packages/3d/props/low-poly-chess-pack-50405
- Calculator - https://assetstore.unity.com/packages/3d/props/office-supplies-low-poly-105519
Thoughts on seeing and interacting with people and objects in a purely synthetic world, embodied at 1:1 scale
- The relevance and need for completely virtual environments is felt especially today with the work-from-home policies introduced due to the pandemic. If you’ve been on long zoom calls, you understand how taxing some of them can get, and in some cases, it does a lot of good to make virtual 1:1 scale collaboration as engaging as possible to maintain morale.
- I feel that the biggest use for this kind of technology is in the education space, where we can take advantage of the purely synthetic environment to make learning more fun and effective. For example, a student can grow a deeper appreciation for math by having equations or geometric figures come to life in a virtual environment. Similarly, an anatomy student can understand the subject better if there was a 3D model of the body that available for inspection and interaction.
- There is big scope for making the experience as realistic as possible because of the 1:1 scale. For example, if you are learning dance or martial arts, the 1:1 scale gives you the realism of accurate body shapes in the virtual world too.
- As opposed to dry zoom meetings, you could collaborate on a shared virtual space with customizable humanoid personas for yourself. It also allows you the freedom of body language using your VR controllers such that your conversation seems more engaging.
- Since the environment is purely virtual, the shared meeting space can include creations that aid in planning and organization. For example, you could have virtual whiteboards on which users can point and draw in a virtual conference room giving the feel of a real-life meeting.
- Purely synthetic, 1:1 scale collaboration is also useful in meetings in the construction space, where you could collaborate with architects or civil engineers inside a mock model of a mansion or an apartment. There are companies that take models from existing architectural visualization softwares and convert them to VR environments where collaboration is possible, so that different stakeholders can hold engaging back-and-forth conversations aided by a visual representation of what they are talking about.
- The problem with purely synthetic environments though, is that the accuracy and realism that it gives depends on how well the models have been created. You could have a relatively smooth running VR, but the models are full of glitches, or you could have good models, but really low framerates. It is pretty difficult to come up with intricate, detailed environments to make an experience realistic.
- Having a VR headset for a 1-hour meeting seems a little too exhausting, and participants of long meetings would definitely have to remove it and take breaks frequently. Long exposure could also cause disorientation and simulator sickness.
- Movement could be a concern. If you want to walk around different sections of a virtual house you are inspecting, you want to make sure you have enough room to move around. Modern solutions to this problem rely on teleportation capabilities in the environment.