Other creativity focused VR applications such as Tilt Brush by Google along with the release of the Oculus hand tracking SDK inspired our team to create an application that allowed anyone to experiment with making VR Art by naturally using their hands without the barrier to entry of learning how to use a VR controller, which is what separates our VR painting solution from already present offerings.

What it does

Finger Paint VR currently allows the user to freely paint using the 6 different colors and 6 different brush sizes, using a tracked and fully mapped model of their physical hands in VR, supporting pinch and select gestures. The colors available are red, blue, green, black, white, and grey.

How we built it

Finger Paint VR was built using Unity as the game engine to create the environments and handle the rendering of lines and models. The Oculus Integration for Unity and OVR Toolkit were used to enable Oculus Quest support and full hand tracking support. Lastly scripting in C# was used to create the methods used to track finger locations for the drawing of 3D lines in the Unity scene.

Challenges we ran into

The hand-tracking portion of the Oculus SDK had only one page of documentation online with only 4 lines of code explained, and, compounding matters, the C# code itself in the Oculus SDK had no comments at all (besides copyright information) to explain the structure of function of the hand-tracking code. As such, a great deal of experimentation and searching was required to understand the hand-tracking code well enough to obtain hand skeleton bone positions for painting.

Accomplishments that we're proud of

We're proud to be able to support not only a color palette in Finger Paint VR but also Brush Size.

What we learned

We learned a great deal about the differences between normal software development and VR development. There had to be extra care given to how locomotion and inputs were going to work in the application to keep it accessible to new users.

What's next for Finger Paint VR

There are future plans to add support for different brush types, a user customizable color palette, and user provided environments.

Built With

  • c#
  • oculussampleframework
  • ovr-toolkit
  • unity
Share this project: