/ uCrowds kijkt in de toekomst

Roland Geraerts (CTO) is samen met Eric de Wilde (COO) oprichter van het bedrijf uCrowds. Dit bedrijf creëerde een software-engine om verplaatsingspatronen van grote groepen mensen in kaart te brengen. Dit doen ze vooral om de wereld een stukje veiliger en leuker te maken.

 


Leren programmeren met een Commodore 64

'Het idee voor uCrowds begon toen ik al erg jong was', begint Geraerts enthousiast. 'Ik was negen en druk met het plukken van aardbeien om geld te verdienen voor mijn eerste eigen computer, een Commodore 64.' Die computer bleek een eyeopener voor de jonge Geraerts. Hij vond het programmeren zo leuk dat hij begin jaren 90 zelfs een eigen variant op de populaire game Command & Conquer maakte. Hij liep echter tegen een klein probleem aan. Het simuleren van de verplaatsing van de troepen in de game verliep niet zoals hij zou willen. 'Het spel programmeren was goed te doen', lacht Geraerts. 'Het lastige was vooral routes te plannen van A naar B zonder dat mijn troepen vast kwamen te zitten. Dat lukte mij ironisch gezien toen nog niet. Tijdens mijn studie Informatica in Utrecht kreeg ik de tools aangereikt waarmee ik voor één agent de verplaatsingspatronen kon programmeren, maar voor grotere groepen was dit nog niet mogelijk. Ik ben toen onderzoek gaan doen naar simulaties van grote mensenmassa’s.'


Roland GeraertsRoland Geraerts demonstreert de interactiviteit van de engine. Foto: TransIP


Le Grand Départ

Dat onderzoek kwam in 2015 in een stroomversnelling met Le Grand Départ. De start van de Tour de France in Utrecht bleek voor Geraerts en zijn team een fantastische eerste test om te kijken of de software toereikend was om een simulatie te draaien voor een groot evenement in een beperkte ruimte. Uit de simulaties bleek dat er enkele hekken moesten worden verplaatst, extra loopbruggen moesten worden aangelegd en dat sommige delen van de route eenrichtingsverkeer moesten worden. Met deze tips werden potentiële opstoppingen in de kiem gesmoord.


Los van de universiteit

1 januari van dit jaar is uCrowds gestart. Geraerts is deels uit dienst gegaan bij de universiteit om zich te kunnen richten op de ontwikkeling van zijn eigen bedrijf. Geraerts: 'We bestaan nu uit een klein kernteam met Eric de Wilde als COO, Yiran Zhao als softwaredeveloper en mijzelf als CTO. Daarnaast werken er veel informaticastudenten van de Utrechtse universiteit met ons mee. Wij hebben deze stap genomen omdat de universiteit is ingericht om onderzoek te doen. Het in opdracht van bedrijven aan de slag gaan is niet waar de kracht van een universiteit ligt en het duurde soms best lang om afspraken te maken. Vandaar dat we het besluit hebben genomen om een eigen bedrijf te starten.'


Voorsprong op concurrentie

uCrowds heeft internationaal zeven grote concurrenten. 'Onze engine is vijf tot tien keer sneller dan die van de concurrentie en hij is in staat mensenmassa’s realistischer te simuleren', meldt Geraerts trots. 'Dit komt vooral omdat wij jarenlang onderzoek hebben kunnen doen naar deze gedragingen en we onze engine van de grond af hebben opgebouwd. Basisregels van normaal menselijk gedrag die wij in de engine hebben gestopt, blijken in de praktijk te leiden tot goed kloppende simulaties. Daarnaast laat onze engine voorbeelden zien van emergent gedrag. Dat is gedrag dat je niet programmeert maar wat eruit komt omdat je heel veel basisgedragingen in de engine stopt. Een mooi voorbeeld hiervan is lane forming (het in een rij opstellen om sneller weg te kunnen komen) en rimpelvorming waarbij mensen in golfbewegingen een plek van bijvoorbeeld een ramp verlaten.'


Een demonstratie van de interactiviteit van uCrowds. Foto: TransIPAan het werk met de engine van uCrowds. Foto: TransIP


Hoe het werkt

De software creëert een exacte replica van de beloopbare ruimte in een 3D-omgeving (de navigation mesh), bijvoorbeeld in een gebouw of buiten in een stad. Tegen dit model wordt een eigen framework aangelegd dat een mensenmassa simuleert. Dit framework opereert op meerdere niveaus. Op het hoogste niveau werken AI-taken. Die gaan aan de slag met een bepaalde actie en die actie wordt dan opgedeeld in subtaken, zodat de computer ermee kan gaan rekenen. Bijvoorbeeld: ik wil van A naar B. Dit leidt tot een geometrische query, oftewel een start- en een doellocatie. In de volgende stap moeten deze twee locaties met elkaar verbonden worden. Aan de hand van de gegevens die dat oplevert, kan je een indicatieve route berekenen. Deze geeft aan hoe je van start naar doel kan gaan. Met de uitkomst daarvan kan je een simulatieloop starten die 10 keer per seconde een stukje van de route berekent. Aan die loop zijn diverse parameters mee te geven, van tegenliggers tot obstakels en aan de hand daarvan worden de bewegingen van de agent (gesimuleerde voetganger) bepaald. Deze stappen zijn echter allemaal nog in voor de meeste mensen onleesbare code. Om deze resultaten te visualiseren worden alle gegevens naar een 3D-engine gestuurd, zodat je de beweegstromen in een 3D-omgeving kan bekijken.

Geraerts: 'We zijn er supertrots op dat we deze software hebben ontwikkeld. Daarom delen we ons onderzoek met de gemeenschap via diverse gerenommeerde wetenschappelijke tijdschriften. Daarnaast laten wij studenten kennismaken met deze zeer complexe technieken en proberen we ze op te leiden in dit ingewikkelde vakgebied. Het is even doorbijten, maar als je eenmaal de resultaten van je harde werk in de praktijk ziet, weet je waarvoor je het allemaal doet.'


De grootste uitdaging zat in 'rekenen met vormpjes'

'De ontwikkeling van ons platform was niet altijd even makkelijk', vertelt Geraerts. 'De grootste technische uitdaging zat hem in het berekenen van navigation meshes. Het is een zeer specifiek vakgebied genaamd computationele geometrie, wat kort door de bocht rekenen met vormpjes betekent. Computers zijn daar normaal gesproken niet zo goed mee. Ze werken namelijk met een aantal cijfers achter de komma en dat is niet het precieze getal. Hierdoor kunnen er fouten ontstaan in het algoritme. Om de engine overal werkend te krijgen, dat was voor ons de grootste uitdaging.'


Een realtime kijkje in de toekomst op stations in Londen

Het blijft wat uCrowds betreft echter niet bij simulaties van mogelijke scenario’s. 'Wij zijn nu in Londen bezig met een pilot om in de toekomst te kijken', vervolgt Geraerts. 'Dit doen we aan de hand van camera’s. Die camera’s draaien een week en met de data die we daarmee genereren, kunnen we het simulatiesysteem ijken met de werkelijkheid. Met deze data zorgen we ervoor dat we 5 tot 10 minuten van tevoren al weten dat het ergens te druk wordt en dat bijvoorbeeld een trein op een ander spoor moet binnenkomen.

De volgende stap die we met uCrowds aan het maken zijn, is een oplossing in de cloud. Onze simulaties worden daarmee sneller gemaakt. Op deze manier is het ook nog eens makkelijker om tools en plug-ins aan het platform toe te voegen. Wij zijn zeer geholpen met de VPS’en van TransIP om een schaalbare en snelle oplossing te creëren. Onze algoritmes hebben meer baat bij een sloot snelle cores dan een stevige GPU. Op deze manier maken we ons platform goed schaalbaar en bereikbaar voor iedereen die het nodig heeft om een mensenmassa te simuleren. Of dat nou een ideale bewegingsstroom in een pretpark is, of het bepalen van vluchtroutes voor de menigte na een aanslag, iedereen moet onze tools kunnen inzetten.'


Heb jij net als uCrowds een bijzonder verhaal en sta je te springen om dat met de wereld te delen? Laat het dan achter in onze Knowledge Base en wie weet staat jouw verhaal straks in de schijnwerpers. 

Deel jouw creatorstory


Op zoek naar andere creatorstories voor nog meer inspiratie? Bekijk dan alle inzendingen in dit overzicht.

Deel dit verhaal

Auteur: TIP-redactie

Is de auteursnaam die we gebruiken wanneer een blogpost in teamverband door meerdere TransIP’ers is samengesteld. Denk bijvoorbeeld aan een eventverslag of onze Weekly.

Reacties voor het blog zijn uitgeschakeld

Disqus reacties zijn niet beschikbaar omdat je Marketing-cookies hebt uitgeschakeld. Wil je toch reageren op het blog? Zet dan de marketing-cookies aan in jouw privacy instellingen.