VR Physics Simulation
Kertu Toompea
Description
This is my first introduction level learning project in VR development. The main idea is to create a simple but realistic VR simulation of an air vehicle that actually takes into account laws of physics. For example the acceleration and maneuverability will be different for a vehicle with smaller mass and a vehicle with higher mass. Relevant parameters are visualized in real time and the sim can be viewed in HTC Vive.
Initial timeplan
1.) Decide betw Unity and UE and go through an intro lesson w the tool
2.) Pick 2-3 similar projects done and get familiar w used physics tools
3.) Find a vehicle or create your own, doesn't have to look nice yet
4.) Flight controls and input param, explain what can be changed and what not
5.) Can you visualize and change the air flow - show and explain the answer
6.) Vehicle ready and flying, acceleration, roll, pitch, yaw realistic
7.) Visualize physics data, mass, speed, roll, pitch, yaw. Looks nice.
Expected difficulties
No idea how to visualize things for Vive or how much time it takes. Also don't know how much of any physics parameters can be changed. For example vehicle's mass or gravity. My biggest concern is that I will spend 3-4 times more on each step than I imagine and new necessary steps will add on the run that I didn't know about. I have almost no experiences in programming so I expect to have some difficulties here too. But I'm motivated to learn when I can visualize it.
What I want to learn
I want to know how to make realistic movement simulations considering laws of physics, what parameters can and cannot be tweaked in the used tools, and in overall, get familiar with VR development tools. The most complex takeaway for my next project is how to control movement of a body with some mass, in a certain gravity environment.
Milestone 1 (02.03)
- Development environment is chosen and first lesson done how to use the tools.
Process
I need to choose between Unity and Unreal Engine. I saw a small glimpse of Unity 6 months ago when I did an intro Roll-a-ball tutorial from Unity homepage (https://unity3d.com/learn/tutorials/s/roll-ball-tutorial). To get an intro to Unreal Engine (UE), I attended to APT Game Generator UE workshop. The workshop was for beginners and lasted ca 2 hours. We didn't do much but at least I saw the tool and some of its usage. After asking and searching around, I chose Unity. For now. For this project. No particular reason, just had to decide. Both tools are good according to people who use them. Both tools enable to develop simple and complex stuff. Both are more than enough for my project. No serious and reasonable advantages found.
So it's Unity. Ver. 2017.3.1f1 Personal.
Tutorials I did:
Unity for Absolute Beginners Lesson 1 - Moving, Rotating, Resizing objects (8 min 25 s):
Unity for Absolute Beginners Lesson 2 - Rotate object with code (13 min 58 s):
After above tiny tutorials, I feel surprisingly comfortable with creating a plane (floor plane, not an air vehicle) and a ball, moving, rotating and resizing them. Much better than the long tutorial I tried long ago. The short tutorials seemed more efficient to me. Got me going faster, there were less things to remember at once and I didn't lose my focus like with long tutorials. Currently, I am happy with choosing Unity.
Regarding physics, I have already seen that in the working environment, you can set a mass for an object. This is possible in both, Unity and UE, and it's available right in the start, in a handy and visible settings location, as soon as you create some object and see the Inspector layout. Good. Before that, I thought that physics parameters are all either preset or hidden as far as possible from the user so it doesn't scare them off. It's good that I was wrong. My project has hope.
Screenshots:
Time consumption, approx:
Workshop 2 h + Unity vs UE searching and asking 0.5 h + tutorial videos 0.5 h + organizing stuff like finding tutorials, making notes etc. 0.5 h = 3.5 h
Milestone 2 (16.03)
- Few similar projects found and explored. Learned physics tools to demo 2 different gravities.

