Konterball is a single or 2-player virtual reality game, built for the web as a Google VR Chrome Experiment.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
public new webvr badge Oct 16, 2018
.travis.yml added second mode Sep 9, 2016


Konterball Logo

Konterball Demo

Try it here


Konterball is a VR Chrome Experiment made by WILD. It's a ping pong game which can be played in one player mode or with a friend in realtime over the web. It was developed in order to showcase the latest Chrome browser which natively supports WebVR. You can play Konterball with a regular laptop, smartphone, Google Cardboard or Daydream, HTC Vive or Oculus Rift.

This repo contains the static frontend for the game. In multiplayer mode, it connects to a deepstream.io websocket server which is used to relay the communication messages two clients.

We use three.js for the graphics part, cannon.js as a physics engine, gsap and bodymovin for animations and howler.js for audio. This project also relies on the webvr polyfill to support browsers that don't natively support WebVR and webvr-ui for VR mode management.


If you want to build this project, you first have to buy the used fonts (or use different ones). The fonts are available here and here. Place them into src/fonts with the names AntiqueOlive, Futura and FuturaItalic with the extensions .eot, .ttf, .woff, .woff2 and .json (you can convert them to json here).

  • Run npm install or yarn
  • Run gulp

Depending on whether you want to host a local deepstream server too:

  • Run node deepstream.js
  • Update availableServers in src/javascripts/communication.js, add localhost


  • Run gulp production
  • Run node deepstream.js
  • Server should now be available at port 8081, or whatever port you set in the PORT environment var.


As of 9/11/2018, the WebVR API is no longer supported so some features may not work as intended.