Red Bull King Of The Air scoring system

Mar 19, 2019
Every year in February, Red Bull holds a kitesurfing competition on Blouberg beach. They get 18 of the world's best kitesurfers together for 2 weeks and wait for near-gale-force winds. The riders regularly do 20m-plus jumps and they are scored on the height, technical skill and wow factor of the jumps. This makes for a spectacular, fast-moving event. Late last year we were approached to create a new scoring system for this year's competition.

The system had to let the ten people involved in the scoring coordinate their scores, and provide updated scores to the livestreaming video feed and online live scoring site. Because they had connectivity issues (this is on a beach, after all), this whole system needed to run on-site on a laptop, with absolutely no downtime. And since the wind would only blow strongly enough for the competition for a few hours during the two-week window period, all of this had to run like clockwork.

Some background: Each heat in the competition has 2 to 3 riders. Each rider is assigned a trick caller, whose job is to record the specific trick names. Each of the 5 judges then enters their score. The scores are averaged and the judge administrator confirms the scores. Once the scores are confirmed, the trick, scores and ranking of the riders are recalculated and available to the live feeds. At the end of the heat, each rider also gets an impression score that, together with their top 3 tricks, count towards their total score. During all of this, there is a clock running and displayed on everyone's screens, counting down the remaining time in the heat.

That's not the half of it. Because of limited time with strong enough wind, we only had 3 minutes between heats to get the impression scores in, confirm the rankings and start the next heat, so the riders had to be automatically assigned to their position in the next round by the system. Each judge and trick caller had to be able to go back to their scores and adjust them on the fly if they miss-scored, and they had indicators showing if their scores were too low or too high compared to the other judges. We had to be able to adjust the timers on the fly, and allow for riders to be flagged out in the middle of a heat and to have their scored nullified if they interfered with another rider. To make sure we had the system available the whole time, we did a backup of the current state of the competition every minute and had a standby laptop that could be started up and restored from the backup in less than 2 minutes.

Since the system involved so many people, we used web technologies to build something that could have inputs from many devices to a central database. We used Django to build the system and database, and Vue for the frontend. Each judge and trick caller had a tablet with their dedicated scoring webpage, which updated as the data changed.

We spent 3 afternoons on site: One day for doing a test run and coordinating with the livestream broadcasters, and 2 afternoons while the competition was running. It was an adrenaline-filled and Red Bull-fueled time, and the system performed flawlessly.

10/10, would do it again.

So, we're not just a bunch of pretty faces. We took this project from conception to a working system, doing everything from gathering the exact requirements, doing the modelling of the data, building the backend and user-facing parts, and setting it up exactly as the customer required with excellent on-site support. We can do the same for you.

Subscribe to our mailer

We promise we won't spam you. Also, we're very entertaining.