Cavepainting demo

Written by Ross Briden on 03/24/21


CavePainting is a collaborative 3D-painting application developed by Daniel Keefe, David Laidlaw, and others. CavePainting supports YURTs, CAVEs, HMDs, and other large display devices.

Before Starting (please read!)

During this tutorial, you will download, install, and use CavePainting to design an awesome painting! At each step of this process, please log -- approximately -- how long each step takes. In particular, you should have time estimates for each of the following steps:

  1. Installation & Setup:

    • How long did it take to unzip the application and set up the config file?

    • How long did it take to get in the same room (in the app) with your partner?

    • What went well?

    • What seemed like it was wasted time or effort, with info about how much time was wasted?

    • Any other comments or suggestions?

  2. Activity 1:

    • How long did it take to load Melis's model?

  3. Activity 2:

    • How long did it take to view your image in CavePainting?

    • How long did it take you to develop a sufficient understanding of the CavePainting controls?

Installation & Setup

Estimated time: 5 minutes

Requirements: Windows 10, SteamVR, and Visual Studio's C++ toolchain (if you completed the DinoVR tutorial, this should be installed already).


0. Be sure the complete the following steps on your Paperspace computer and ensure that SteamVR is closed on your Paperspace computer.

  1. Next, launch you Quest headset and draw a large, roomscale boundary. The larger the better! This will ensure you have enough space to draw.

  2. Use Virtual Desktop to connect to your Paperspace computer and launch SteamVR using virtual desktop.

  3. Next, download the CavePainting zip file. What zip file you download will depend on what group you're in:

  4. Click the downloaded file to open it and unzip it by clicking Extract All.

  5. Navigate to the unzipped folder -- which should be called CavePainting -- and enter the bin subfolder.

  6. Move to Activity 1

CavePainting Controls & Features

Below is a list of the controls and menu options supported by CavePainting. Feel free to refer to this section while completing the activities below.

Quest 2 Controller Controls

  • To paint, press down and hold the trigger (the button that your index finger rests on) on your right controller and move the controller in the direction you want to paint.

    • The paint control is pressure sensitive. This means that pressing down the right trigger with more force will draw thicker lines. The panel to your right shows you your current pressure level:

  • To select a menu element on the main menu, move your right controller until you are pushing the menu element and then press and hold the right trigger. Highlighted in red in the image below is the main menu:

  • To select a menu element on a secondary menu, move your right controller until you are pushing the menu element and then press the right trigger -- a yellow cube should highlight a selected option (the secondary menu is behind the main menu):

Main Menu Options

There are five main menu options, each of is represented by a circle with a symbol on it. Below we'll go through each of the menu options:

  • The brush mode menu (represented by the pink hand) provides settings for changing your brush mode, which includes: freehand drawing, twohand drawing, a selection mode, and a move mode.

  • The brush properties menu (represented by the paintbrush) provides settings for changing your brush, which includes: brush size, brush pattern, paint color, and brush mask.

  • The artwork menu (represented by the picture of the Mona Lisa) provides settings for changing the background color of scene, the visible layers of the scene, and the scene frames.

  • The save and load menu (represented by the floppy disk) provides settings for loading artwork, taking screenshots, and saving your drawings.

  • The oops menu (represented by the thumb) allows you to undo or redo recent changes.

Activity 1

Estimated time: 10 minutes

In this activity, you'll be looking at a CavePainting model made by Melis with you partner. To start, execute the run_HMD_controller batch file by double clicking it (or typing run_HMD_controller if you're using CMD) and put on your headset.

Once the batch file starts running, you should see a mountain and a portion of text that says Fjord. While viewing the scene, complete the following tasks:

  • Discuss the scene with your partner. What do you notice? Take a screenshot of what you see and upload it to the class board.

  • Experiment with some of the features of CavePainting. Try out the following features: draw with brush, set brush color, set brush size, set brush texture, set brush type. Save a screenshot of these creations and upload them to the class board.

Once you're done, answer the following questions on the class board:

  • How long did this part take?

  • What could have been improved?

  • Any other comments, suggestions, or explanations?

Activity 2

Estimated time: 15 minutes

In this activity, you'll design a painting with your partner:

  • Select a reference image (this should take about 3 minutes). This can be any arbitrary image, such as a picture of a cat in shoe.

  • Next, add the reference image to the class board and brainstorm some drawings that connect to this image (this should take about 1-3 minutes). For instance, if you select a picture of a cat, you could draw cat food. Be creative!

  • Decide on a drawing and create it in CavePainting. Launch CavePainting by running the batch script run_HMD_controller-2 in the bin folder (note that this command is distinct from the one used in Activity 1) and get drawing! This should take about 10-20 minutes. Save snapshots along the way to document your plan and to share with the class.

  • Note it may help to see your reference photo in your headset. You can do this by pulling up the image on your desktop (before entering your headset), opening the SteamVR menu in your headset, and selecting the desktops button in the bottom left corner of the UI:

  • Once you're finished, add you drawing to the class board and be prepared to discuss! And answer the following questions on the class board:

    • How long did this part take?

    • What could have been improved?

    • Any other comments, suggestions, or explanations?