No-Budget VR Tour of Batu Caves

Batu Caves are a popular tourist site outside Kuala Lumpar, Malaysia. They are a set of vast limestone caves, much bigger than the ones I’m used to back in Perth. For the last couple of centuries they have been regularly visited by people, and have become an imporant Hindu worship site. There are four major components to the site – the entrance, Temple Cave, Dark Cave and Cave Villa.

I was visiting as a tourist, and recorded a short tour armed with only my iPhone and some free software. This is what I learned. If you haven’t read my last post on VR tours and the Oculus Go, featuring a tour of a Vietnamese shipyard, read that here: The tour is best viewed using a VR headset.


Capturing 360 panoramas is hard at the best of times; with no gear and a space full of tourists it can be a nightmare. However, the results can be more than adequate for VR. I was using Google’s Streetview app, it has a capture feature in the hope people will add more photospheres to Google Maps – which they did, visit any major tourist site and you’ll likely find a lot of smartphone images. To use the images yourself you must save it to camera roll before you upload it to Google Maps (if you do at all – be mindful of sites people may not want shared). After you upload it will only export a very low res version, and the only way to access your full panorama is on Google Maps, or using a Streetview download tool like Street View Download 360.

The Streetview app works by stitching together a series of photos. It is largely a black box approach, you have no control over how it stitches, but it usually does a very good job of connecting the photos and dealing with large exposure changes. It works best when you work slowly and methodically, capturing the most important bit first and working towards the least important, and keeping the phone camera at the same point in space.

A few things to keep in mind:

  1. Plan ahead – if there are peak tourist times, avoid them. Objects caught moving between frames leave issues like floating heads and disconnected legs.
  2. Budget time – it took about half an hour for me to capture these images. In spaces without people, you can capture one in a minute or two. If you have to work around people it can extend out to 5 minutes or more per shot.
  3. Think about framing – if you are too close to things you will run into issues with stitching, but if you are in a space with everything in the distance you’ll have a boring shot. Choose a feature to highlight in each shot.
  4. Make sure your shots connect – a good rule for planning out where your shots need to be is simple line of sight. For the viewer to have a good sense of the entire space it should be obvious where the next panorama is, and should be able to look back at where they were. Useful landmarks in this example were steps, temples, and the shape of the cave. There are limitations to this: a full set of scenes to the Cave Villa would have been a boring walk, and capturing images in most of the Dark Cave was impossible because lighting the roof would disturb the bats – so I chose to omit them.
  5. Capture complementary information, flat images, and audio. A tour with no annotations is often boring, but you don’t need to go overboard. Almost all software has the capacity to add text and images. Write down the names of a few interesting features, photograph and write down information about them. I wasn’t able to use sound in this example, but I think recordings of the bats in the dark cave would add an extra dimension.
Close up of a statue that was added as an annotation

Putting it together

I used the web based software There are a few alternatives, but this one is free, light, has annotation features and, most importantly, shares easily in a web browser. It is WebVR compatible, so the same tour can run on a phone, computer, or VR headset.

You simply drag in all your 360 images, then drag them on to each other to create connections. Annotations can be either text, images or a combination of both. Sound can be an environmental loop, or a triggered narration. A few lessons I’ve learned:

  1. Build the whole tour out first. Start by just creating all the connections you think you’ll need, and then spend some time adjusting their positions. Err on the side of giving people freedom, but don’t pack it full of options. Have a clear flow so people don’t miss things, and don’t be afraid to cut possible connections to better tell the story.
  2. People are usually fine to explore on their own – but shouldn’t get lost or surprised by a change in scene. I found that the flat and solid circle image is best for showing connection in line of sight, and the more arrow like one for things you can’t directly see. I used lots of text in the Vietnam example, but less here, because it had much less distinction and was more visually obvious. The text was necessary for Dark Cave and Cave Villa because they were not visually obvious.
  3. Also spend time adjusting the initial view from each connection. Try to keep it consistent and predictable – test and repeat. In this example it is mostly a simple matter of making sure direction of sight stays the same. For the deepest section of the cave this was a bit confusing, so instead I orientated both towards a common landmark of the temple in the middle.
  4. Add one or two images or text boxes in most scenes, this helps keep it interesting. If they are unobtrusive they will always benefit your tour.
Adjusting the initial view of each scene

Going further

Most of the processing is done in the phone, and you can’t control it. However, a little bit of clean up can be done.

Photoshop can now edit 360 panoramas very effectively. There is an option in the 3d menu to turn the layer into a 360 panorama, this allows you to perform adjustments, and use brushes, flat images or the clone tool within the projection without having to worry about weird warping effects. In the first image, I removed some legs and brightened up the statue a bit. It’s hard to not leave artefacts, but 360 is forgiving, and weird artefacts are better than diembodied people.

You are not able to add 3D models to these yet, but it would be a good fit and I expect it will soon be an option. For that reason I also captured a few photogrammetric models – such as one of the wall covered in graffiti.

Leave a Reply

Close Menu