This project was developed in Unity using the C# programming language
The goal of this project is to allow people to visualize and Better understand the relationship between variables within kinematics Equations and the resulting real-world motions and interactions of the objects. When first learning Physics, many of the relationships between key variables and the produced actions are unintuitive. This project explores the use of VR to create Immersive, visual Physics experiences that could assist teachers in explaining and showcasing physics phenomena.
Main Features
The User is provided with 3 targets for which they must solve the launch velocities and angles.
The user is also provided with kinematics equations and an interactable whiteboard to perform any calculations or Draw any Figures they may need to solve the Physics Problems.
Once the User Has Solved for the Missing Parameters, They can open up the UI to Enter the Launch velocity and angle for the projectile.
Demo of USer Conducting Calculations on Whiteboard
Launch
Digging into the code: Key Programming Features
Whiteboard
On the right is the main "Draw" function used when the user is holding the pen and is making contact with the board. Here are the Steps:
If the pen is touching the whiteboard, we cache the whiteboard object.
Locate the position on the whiteboard which is in contact with the pen.
Color in the pixels that were in the "contact Area" by interpolating the location of the "contact pixels" in frame n with the "contact Pixels" in frame N+1.
UI Interaction
The user can change which Value in the UI they are changing by clicking the right hand Controller b-Button.
The user can use the joysticks on the Oculus Quest Controllers to change the values of the velocity, angle, or ball number (which ball to launch).

We read in the joystick value as a vector 2, as shown on the right.

Depending on the direction of the joystick, we increment or decrement the parameter value.
Launch
Given the Input Parameters (i.e., Launch velocity and angle), we are able to calculate the corresponding components for the resulting velocity Vector Which we will apply to the current ball. 
FUture Improvements:
- Allow whiteboard to be opened from anywhere the user is in the virtual space.
- Make writing process smoother (Lessen thickness of marker).
- allow for voice activation to set the values for the launch parameters.
- Voice-controlled calculator (to make calculations easier).

You may also like

Back to Top