Hackathon insights: December projects



December 19, 2017

Each month, we organize a two-day internal hackathon during which WATTx-ers dedicate their time to working on side projects and get a chance to explore new trends in design, tech, and data science. In December, we hacked on projects involving coffee, Arcade games, Augmented Reality, as well as connected lights. Here’s the digest for what we learned.

Pushing Cophi to the next frontier

During the past couple hackathons, Christian and Wen have been busy with developing a smart coffee scale for our office (read here and here for previous recap of their work). For this hackathon they set themselves the objective to add a sound sensor to their installation in order to know when the coffee is bubbling and ready to be served.

The idea was to continuously record one second sound bits and determine whether they are bubbling coffee sounds or just random office noise. To get some data for testing and training the model, they recorded some samples of office noise and the Bialetti, labeled them and sliced them into one second bits.

As a measure of classifying sound, they used the mel-frequency cepstrum with 13 features. In the picture above, you can see the mel-frequency cepstrum of a bubbling sound (left) and office noise (right). To facilitate the input for machine learning they applied dimensionality reduction using principal component analysis. In the picture below you can see that clusterings of the sound samples between bubbling sound and other noise are clearly identifiable using the first three principal components.

This input was used to train a Random Forest Classifier, which yielded good results in detecting the bubbling sound. Once some small issues with the Raspberry Pi and the microphone are fixed, the machine learning model can be implemented and tested live.

Building our app for connected lights

Here in the office we own connected lights, but unfortunately the stock application doesn’t work well. Therefore, our tech lead Mikhail decided to build his own app using react-native. To do so, he had to write a backend proxy which would talk to the lights first, and was pleased to see how quickly he managed to create a simple application running in react native and expo.

Building our own Arcade Machine for the office

It’s almost Christmas and Rafal and Pedro couldn’t have given us a better gift. Over the course of two days, the two of them built a complete arcade machine from scratch.

Knowing that they only had 2 days to do it, Rafal focused on placing all designs on cardboard sheets and then cutting them while Pedro was playing around with the Raspberry Pi and looked for a way to install games in the system. They ended up choosing RetroPie, an awesome project that makes it easy to turn Raspberry Pis into retro-gaming machines.

The second day, everything started to take the shape of the machine we’re so familiar with. The Raspberry Pi had been wired together with joysticks and buttons and the cabinet was waiting for final design adjustments.

At the end of the day, people in the office stopped to play a game just before leaving for the weekend. Congratulations to our engineers who added a bit more fun in our office life thanks to their ingenuity!

Playing around with Augmented Reality

Tassilo wanted to experiment with the Vuzix M300 Smart glasses for Augmented Reality (AR). As you might know, AR has many potential applications as diverse as gaming, education or manufacturing.

The M300 consists of a small display plus a camera, a gyroscope, microphone, speakers, and a processor, all put into a single device you can wear as glasses..

His plan was to create a small app that shows off some of the AR capabilities, for example by detecting and annotating peoples’ faces in the office. To do so, he researched a few software frameworks such as ARCore, ARToolkit, OpenCV, and Unity3D. In the end, he ran a face detection example using OpenCV.

The major obstacle was setting up the libraries for Android. But some other challenges included: - the ARCore framework is unfortunately not supported on the device, nor on the Android version running Marshmallow. - with ARToolkit, you can’t even run the precompiled examples. Maybe it is a problem that the Vuzix runs on an X86 Atom instead of the ubiquitous ARM processor?

In the end, OpenCV did not let him down. Next time Tassilo wants to expand on the OpenCV example and build something more useful.

The next hackathon is planned for January next year and we’re already looking forward to it! Feel free to reach out to us if you have any further questions on a specific topic, or if you simply want to grab a cup of coffee and discuss technologies, data science or design.