De Open Web Hackathon

Op 13, 14 en 15 september vond het Hackathon weekend van Open Web plaats. 20 collega's zijn naar Tiendeveen afgereisd om daar een weekend te gaan programmeren. Natuurlijk is er ook genoten van elkaar, het mooie weer en de mooie villa met whirlpool en sauna. Maar wat is er nou eigenlijk gemaakt in dit weekend? De backenders en de frontenders zijn allebei met hun eigen idee aan de slag gegaan. Lees het hier!

Hackathon

Tijdens een Hackathon draait alles om samenwerking. Je gaat er met zijn allen tegenaan in een gezellige, informele setting om zo snel mogelijk een goede oplossing te zoeken. Teamwork, tijdsdruk en de nodige ontspanning zorgen voor een inspirerend evenement waarbij iedereen het maximale uit zichzelf haalt. Dit zorgt voor een enorme energieboost.

Gezicht en gebaren herkennen met een intel depth camera

Eén van de collega’s had net een nieuwe gadget gekocht: een Intel Realsense Depth Camera. Het leek ons leuk om hier wat mee te stoeien in ons Hackaton weekend.

We begonnen voortvarend met prachtige ideeën om gezichten en handgebaren te herkennen en hier dan handelingen aan te koppelen zoals het openen van een deur. 

We zijn gelijk aan de slag gegaan, natuurlijk met een biertje in ons hand. Hier stokte het gelijk. We waren even vergeten dat we niet in de randstad waren. Met een internetverbinding die niet sneller werd dan max 1 mb/s en vaker rond de 200kb/s zat duurde het downloaden van een grote tool die we nodig hadden de gehele eerste avond. 

Met frisse moed gingen we zaterdagochtend gelijk aan de slag. We hadden de camera zien werken en er waren code voorbeelden. We besloten in eerste instantie voor Node te gaan, maar dit bleek al snel niet ondersteunt te worden voor Mac gebruikers. We zijn toen overgestapt op Python. Na een prachtige dag hacken en met google als bestfriend hebben we het voor elkaar gekregen om eerst enigszins gezichten te kunnen herkennen. Daarnaast hebben we een aantal handgebaren weten te onderscheiden. Dit kregen we voor elkaar door met de depth technologie alle achtergrond ruis eruit te filteren en een bestaand neuraal netwerk te gebruiken die bepaalde gebaren kan herkennen.

Vervolg stappen zijn nu om de gebaren nog helderder te krijgen en deze te koppelen aan bepaalde handelingen. Hetgeen in onze ogen het minst spannende werk was aangezien het hier vaak gaat om een standaard rest call om bijvoorbeeld een deur te openen.

Het was een erg leerzaam weekend en heeft ons veel inspiratie gegeven. Het zou interessant zijn om volgende keer bijvoorbeeld te focussen op het trainen van een eigen neuraal netwerk die bepaalde onderdelen kan herkennen. Maar een tip die we zeker zelf meenemen volgende keer is om te zorgen dat er een snelle internetverbinding is waar makkelijk 15 hard-hackende developers op kunnen werken.

Nummers crosfaden met de DJ app

Het leek ons leuk om elk mogelijk nummer te kunnen laten over gaan naar een ander nummer, net als op de radio! Maar daar komt best nog wel wat bij kijken. Niet alle nummer hebben het zelfde tempo en de drums moeten goed op elkaar aansluiten.

Om dit te bereiken begonnen we met het opdelen van de taken onder de developers. Het detecteren van de BPM (beats per minute) en het gebruiken van de Web Audio API om de nummers in hetzelfde tempo te brengen en in en uit te kunnen faden waren de grootste obstakels. Daarnaast is een mooi ontwerp ook nodig om alles bij elkaar te brengen.

We gingen meteen aan de slag en met de taakverdeling nu duidelijk maakte we snel stappen. Na een avond hard door hacken we een proof-of-concept hadden waarbij de BPM gedetecteerd konden worden en op basis daarvan kon het tempo berekend worden. Hierna was het mogelijk deze informatie te gebruiken om het tempo van beide nummers naar elkaar toe te halen zodat de drums met elkaar matchen.

De volgende dag waren er nog genoeg dingen om te doen, er moest nog een user interface gebouwd worden en de nummers moesten nog in elkaar faden door het volume aan te passen. Na een dag hard werk is het allemaal bij elkaar gekomen en we zijn er trots op. De Hackathon zorgde ervoor dat we samen als een team nieuwe technieken konden uitproberen en elkaar nog wat beter leren kennen!