Hello World Open – A Story in the Visuals: In retrospective

October 31, 2014

Read time 3 min

With a project of this scale implemented with experimental technologies, we most certainly found our share of technical problems. Since the whole engine was custom-built, bugs cropped up everywhere – visual glitches with the cars and track, overlay elements that malfunctioned, buggy event processing resulting in incorrect result lists…to name a few.


We accidentally the wrong axis. Team had a lot of fun watching tires tumbling in front of the car that is accelerating sideways. The headlights are a bit off too.

The protocol of the race messages created a few problems that we couldn’t account for. For example, the positions of the cars could not be determined before a race started: this meant that at the start of the race, the cars were hidden. Many of the messages provided by the server only provided delta information, which forced the visualisation to keep track of the state of, for example, the turbos of the cars. Thus showing the valid state would be almost impossible if the visualizer joined mid-race, as it would not be able to initialize the state of the race from the events that had occurred prior to joining.

Screen Shot 2014-06-03 at 17.11.08

Sometimes the start lights forgot to go away. Shoo!

One of the last-minute changes we did was adding a CSS background-image that would be displayed on connection-screen between races. When the race started, the WebGL canvas would be drawn full screen on top of the background-image, hiding it. However, to our surprise, this single CSS background-image – while not visible during the race – caused perhaps one of the biggest performance drops we had seen thus far: the frame-rate dropped from 60 to 30. We decided to revert this change.

Screen Shot 2014-06-10 at 15.15.57

With the hard deadline and limited time we had to work with, we had to drop a lot of features that would have been nice to have. We pushed our last feature (nicer start grid lights) just two hours before the finals started, and there were lots of items on the backlog that didn’t make it at all. Those included things like larger height differences in the terrain as well as bridges for the track, additional geometry surrounding the track, more particle effects like car trails and dust, more camera options such as trailing cameras and more impressive race finish effects.


For all the problems we had, we received a hefty reward. Seeing everything we’d worked so hard for on the big screen, along with the competitors, commentators, press members and audience, made us incredibly proud. For us, the story of Hello World Open was concluded at that moment.

We want to extend our heartfelt thanks to everyone who participated in Hello World Open, both the organizers and the competitors alike. The entire event was a huge undertaking, at times even overwhelming. Thanks to all of you, we had a lot of fun working on it. The legacy of Hello World Open lives on, and there have been rumors that the visualisation engine has been adapted to work on an Oculus Rift VR-set and manual slot-car controllers. You may hear more from this later on in a new blog post.

Other parts of Hello World Open – A Story in the Visuals series

  1. The History
  2. New Dimensions
  3. Art and Assets
  4. Lights, Camera, Action!
  5. In Retrospective


2D and 3D engine

  • Niklas von Hertzen
  • Harri Salokorpi
  • Juha Paananen

3D overlays and audio engine

  • Teijo Laine

Textures, visuals and skyboxes

  • Antero Päärni

Music and sound effects

  • Tuomas Nikkinen


  • Tuomas Hakkarainen

3D model processing

  • Timo Yliräisänen, Shader Oy
  • Mikko Kunnari, Shader Oy

These blog posts and proof-reading

  • Harri Salokorpi
  • Niklas von Hertzen
  • Teijo Laine
  • Tuomas Hakkarainen
  • Eero Säynätkari

The Hello World Open Visualisation technology stack

Runtime environment

Javascript libraries



Audio server

Sign up for our newsletter

Get the latest from us in tech, business, design – and why not life.