For Halloween only, you can tweet an electric shock to one of the Si team. They’re all zombified and hooked up to an electrical current whilst working at their desks. By tweeting, you automatically schedule their next electric shock. Watch it happen live on the webcam!

To Shock one of the team

Tweet #shocksi
Shocking in... 5

Experiment Finished

Thank you to the thousands that took part!
See our lab notes for more information. Read lab notes



Photo log

Alex shocked by @Abuckalew

05:45 pm GMT

Tom shocked by @JamieClouting

05:45 pm GMT

Steve shocked by @dpapworth

05:45 pm GMT

Oli shocked by @YourMomsBox1138

05:45 pm GMT

Matt shocked by @FireOneOut

05:44 pm GMT

Alex shocked by @tdip09

05:44 pm GMT
Happy Halloween!

Behind the scenes

This halloween experiment 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 a chance to try 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 you to send an electric shock to one of the team. We've listed all the technologies used and how they interact so you can hopefully be inspired to try something similar yourself!

Real Time

When you tweet with the #shocksi hashtag our server immediately saves the tweet and adds you to a shock queue using ntwitter for Node.js. You can wait to watch the shock live on our camera feed, or our bot will tweet you with the photo as soon as it happens!

Node.js Server

The Node.js server is our mothership. Using the library allowed us to create a backend in javascript to handle all realtime communication between the server, the Raspberry Pi and the staff. It manages the tweet queue, shock 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 - Dealer of Pain

This incredible little machine listens for commands sent from our Node.js server and using the GPIO pins we are able to send a signal to shock one of the team at random!



To deliver the electric shock we pulled apart cheap shock prank toys and created our own circuit to deliver a shock to tin foil our hands are resting on.