Home Services Projects Our Team The Lab Blog Contact Jobs

Meet Sid

We combined the digital and physical worlds to allow users to control a robotic arm live in our office. Players had 45 seconds to drop balls into different holes scoring as many points as possible.

Sid Avatar

This experiment has now finished

Sid launched quietly as a technical demo in 2014 and before we knew it the traffic poured in from every corner of the web. People patiently queued for almost 4 hours to have a chance to play. This lead to the project being featured across many global news websites. At present Sid remains in retirement.

256,127 took control of sid

Read lab notes

Breaking Bad

Play the game

10,000+ plays on weekend of release

116,283 games played since launch

Sid Newsletter

The tech behind Sid

Sid was created as one of our many hack weeks here at Si digital. The underlying objective is always to create something as a team that we wouldn't normally get the opportunity to do with client work. Ideally it will expand our skill set and expose us to new technologies and methods that we can bring back into our client projects.

Connecting the virtual and physical world is always a lot of fun. From real time socket communication to live webcam streaming, theres a lot going on to allow Sid to be controlled. We've listed all the technologies used and how they interact so you can hopefully be inspired to try something similar yourself!


Welcome to the world of real time applications. Using several different technologies we are able to connect you live to a robot arm sat in our office.

Node.js Server

The Node.js server is our mothership. Using the socket.io library allowed us to create a backend in javascript to handle all realtime communication between you and Sid. It manages the control queue, movement commands, scores, and overall gatekeeping. The Forever monitor keeps our application on it's legs at all times

Webcam Server

Being a real time application we could not accept any live video delay over 1 second. All of the out of the box solutions failed to deliver that so we rolled our own. After experimenting with more techniques than we'd like to admit, we finally settled on utilising the NGINX RTMP module to receive an RTMP stream from ffmpeg running on the Raspberry Pi

Raspberry Pi - Sid’s brain

This incredible little machine tells Sid exactly what to do. It listens for commands sent from the Node.js server and using PySSC32 we were able to hack Sid, who doesn’t have an API, into total obedience. 8 lever switches connected to the GPIO pins of the Pi control the scoring system, all of which are attached to the stage area we built here in our workshop!