Introducing GapminderVR: Data Visualization in Virtual Reality

I am a big fan of sites such as Gapminder and Our World in Data. Such data visualization sites are like intellectual pornography. You want to know which countries are doing better? Which continents drink more alcohol? How is alcohol related to GDP? Have people getting fatter recently, or is that a long trend? You don’t need to read thick books, you can just browse graphs.

I’m also a big fan of virtual reality (VR). In February 2016, I placed a bet against Greg Linden to the effect that by 2019, we would sell at least 10 million VR units a year worldwide. I might very well lose my bet but what is surely correct is that VR is part of our future. It is going to be everywhere, soon… where “soon” remains to be defined, but it is not 30 years.

What if you could mix data visualization and VR? What would happen? Could you make new things that nobody could think of before? I think so. That’s another one of my bets… but unlike my bet with Greg Linden, it is a bet I took by investing time and money in my lab.

To be fair, the idea that you could use data visualization in VR has been around for at least 20 years. It has gone exactly nowhere.

Why would it be different now?

The most obvious factor is cost. VR is much cheaper than it ever were, and it is getting cheaper by the day. And it is not just the hardware. The software is getting better and cheaper. This means that many of us can try new things and iterate much faster than ever before. If we can gather enough heads together, we will get somewhere.

If the work remains limited to a few academics, it is never going to take off. We need to engineers, designers and programmers to jump in.

In my lab, we decided to spend a few months building prototypes of what is possible in VR. We are publishing as demos two interesting cases:

  • Rail of time is a demo where you can control the time dimension with your feet (by walking). Walk forward and the time goes forward. Walk backward and the time goes backward. (YouTube)
  • Museum is a demo where you can visit a museum where the statues represent countries at a given time. The various attributes of the statues represent the various dimensions of the data. (YouTube)

If you have VR headset, you can try our demos in our site: The name of the site is meant to pay homage to Gapminder and to the work of Hans Rosling. All our code is public and you can “steal” it. Or get in touch and we will help you. We hope to inspire future work. If you are interested in helping out, get in touch. If you can do better, please let us know about your work.

The design and programming work was done by Niko Girardelli. He is a super brilliant engineering student, and someone ought to offer him a six-figure job. Yet, to be fair, the programming is less demanding than you might expect. It is all JavaScript in the browser. And yes, the performance is decent. We owe a lot of credit to Mozilla and their work on WebVR. It is amazing.

2 thoughts on “Introducing GapminderVR: Data Visualization in Virtual Reality”

  1. Have you tried any A/B tests with a non-VR version? My money is on the non-VR version. The problem with VR doesn’t seem to be technical feasibility but the lack of any killer app.

    1. We have not done user testing (yet).

      I agree that we lack killer apps… but these need to be built by people… they don’t grow on trees… and you need to cross the technical threshold for them to be possible… we are getting there technically… so it is time to work on the apps!

      Regarding testing… I don’t think it is so easy to do something like A/B testing. These are really different artefacts. It is nothing like just changing the layout.

      Finally, before you conclude on a pessimistic tone, I’d really like you to get into a headset and try our demos. If you are in Montreal, ping me!

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see