Project webpage
ABOUT
Snow Much Fun is a virtual reality snow experience where the goal is to interact with virtual snow and play around.
The player can create snowballs of different sizes, throw the snow at objects, make snow sculptures and draw in the snow. Audience members get a glimpse into the virtual world through a fixed screen and can change their view point by moving and rotating their phone. The VR player can see the audience member in the virtual world and vice versa. They can interact with each other by throwing snowballs at one another and the VR player can show the audience members their snow sculptures.
PROJECT DEMO
GOALS & MOTIVATION
We were motivated in developing an immersive VR experience. We wanted to give people the opportunity to experience virtual snow and emulate the feeling of playing in real life snow. The snow simulation is a significant part of our experience, so we put emphasis on that aspect and kept the design of the environment simple. Further, we focused on how the user interacted with the snow and how to keep the interactions straightforward and easy to comprehend. The group had different levels of experience when it came to VR and our goal was to give everyone the opportunity to learn and focus on their interests, while also achieving our common goal. We think it is an interesting challenge bridging the gap between the audience members and the VR player. We wanted to give the audience more control over their experience and their perspective by engaging them in the experience. We hope that by engaging in our experience, people are entertained and get a sense of how it is playing with actual snow.
Goal 1
Engage the audience in the experience
Challenge: Create a novel viewpoint control
Goal 2
Make an immersive snow experience in VR
Challenge: Making a realistic snow simulation
Goal 3
Create a pleasant virtual environment
Challenge: Create good looking and cohesive textures, shaders, models and animations
CHALLENGES & OBSTACLES
The main challenges in the development of the project were to create a realistic and convincing snow simulation while also being mindful of the performance, engaging the audience members so their experience would be enjoyable as well, and to network across the different devices. Additionally, we wanted to keep the complexity of the interactions to a minimum so we focused on the implementation of the interactions. Some obstacles we ran into during the process included particular shaders that were created that could not be rendered on the VR device, and lower quality and more latency when running the project on the VR device compared to running the project from the Unity editor.
LESSONS LEARNT
Over the duration of this project we have all developed our knowledge of computer graphics, interaction design and environment design. We gained knowledge about VR development and interactions as well as experimenting how to incorporate the audience in the virtual reality experience. A key aspect we will take away from this project is given the short timespan, to focus on a narrower scope and complete that before continuing with the project.
TECHNOLOGIES
Unity
We used the Unity Game Engine to develop the game since we all have prior experience with it. Since is a widely used game engine it is easy to find information as well as free game assets online. It is also good for mobile game development.
Mirror
We used Mirror to handle the network communications in the game. Mirror is a frequently used open source plugin for Unity that provides server-client communication which is why we chose to use it.
Blender
We used Blender to create 3D models for the game and the 3D printed tangible as well as for rigging and animation. We used Blender because it is an open source and relatively easy to use toolset to create 3D computer graphics that also allows for rigging and animation
GitHub
We used GitHub for the code management as we all have experience with it and it allows for branching and version control. We also used GitHub to oversee and distribute tasks.
AR foundation
ARKit / ARCore
We used the AR foundation framework for the augmented reality part of the game as it is made for Unity and allows you to work with both ARKit for iOS and ARCore for Android.
Oculus XR plugin
We used the Oculus XR plugin for the virtual reality aspect of the project. We used this because it is made for Unity and provides display and input support for Oculus devices.
MAKING OF SNOW MUCH FUN
RELATED WORK
1 / Real-time Interactive Snow Simulation using Compute Shaders in Digital Environments
Andreas Junker and George Palamas. 2020. Real-time Interactive Snow Simulation using Compute Shaders in Digital Environments. In Proceedings of the 15th International Conference on the Foundations of Digital Games (FDG '20). Association for Computing Machinery, New York, NY, USA, Article 70, 1–4. https://doi.org/10.1145/3402942.3402995
This paper presents a method to simulate how loosely packed snow behaves when it is manipulated, for example when it is stepped on. This is achieved by using cameras placed beneath a mesh, to capture placements of object and then a combination of depth render-textures, surface shaders, compute shaders, wind maps and pixel displacements to create the desired outcome. The main challenge regards the performance, and that this is computationally expensive, the resolution of the texture they used had a big impact on the performance. Which is something that we have to keep in mind in our project.
2 / The Virtual House of Medusa: Playful Co-located Virtual Archaeology
Jürgen Hagler, Michael Lankes, and Andrea Aschauer. 2018. The Virtual House of Medusa: Guiding Museum Visitors Through a Co-located Mixed Reality Installation. In Serious Games, Stefan Göbel, Augusto Garcia-Agundez, Thomas Tregel, Minhua Ma, Jannicke Baalsrud Hauge, Manuel Oliveira, Tim Marsh and Polona Caserman (eds.). Springer International Publishing, Cham, 182–188. DOI: 10.1007/978-3-030-02762-9_19
The Virtual House of Medusa is a co-located virtual archeology installation for museums where a VR player takes the role of an archeologist. To share the VR experience with the audience, 4 players can join the virtual world and interact with the VR player through tablets. They can also look around freely in the virtual world giving the audience a full control over their perspective into the game world.
3 / Performance and Experience of Throwing in Virtual Reality
Tim Zindulka, Myroslav Bachynskyi, and Jörg Müller. 2020. Performance and Experience of Throwing in Virtual Reality. In Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems (CHI '20). Association for Computing Machinery, New York, NY, USA, 1–8. https://doi.org/10.1145/3313831.3376639
This research found that the the precision and accuracy is about 2 times lower in VR compared to throwing in real life. Further they found that the users in their user study struggled in particular with accurately releasing the object they were throwing using the VR controllers.
Credits
Bézier Path Creator by Sebastian Lague
Unity tool used to smoothly move the arms of the VR player
Guðrún M. Ívansdóttir
gmiv@kth.se
Implemented the interactive snow shader on the ground and contributed to the AR game mechanics and gameplay. This included implementing mechanics behind throwing snowball as a AR player, snow ball animation and UI. Additionally contributed to the design of the environment. Took part in the design and decision making related to the concept and user experience of the game.
H. Embla Sigtryggsdóttir
hesi@kth.se
In charge of the initial VR setup, e.g. setting up the VR rig, locomotion and the representation of virtual hands. Contributed to the implementation of how snowpiles are picked up and how snowballs are made. Made 3D models and texcture for the VR player and snowpiles. Created a skybox shader. Also in charge of setting up this website. Took part in the design and decision making related to the concept and user experience of the game.
Kári S. Aðalsteinsson
ksad@kth.se
In charge of networking and contributed to the VR game mechanics and gameplay. This included the interaction of snowballs and snowpiles and combining them together to increase their size. Also implemented the arms for the VR player. Took part in the design and decision making related to the concept and user experience of the game.
María Ómarsdóttir
mariaoma@kth.se
Implemented the controls for the audience members and how they change their perspective. Created 3D models for the environment and modelled the snow figure (AR player representation). Contributed to the VR interactions, including throwing and the creation of snow sculptures. Took part in the design and decision making related to the concept and user experience of the game.
Sindri Pétursson
sindrip@kth.se
Implemented the snowballs for the project, including the modeling, shattering effect, snowballing physics, and impact markings. Additionally, created the small creature within the project, handling its modelling, rigging, animations, sounds, interactions, and wandering behaviour. Also made the demo and making of videos for the project. Took part in the design and decision making related to the concept and user experience of the game.