Ik leerde vliegen praten
Het begon allemaal met een berichtje van Niels, een vriend van mij, met daarin een link naar een fascinerend GitHub-project. Het project bevatte een virtuele fruitvlieg op je bureaublad waarvan de bewegingen, zoals lopen, rusten, poetsen en wegvliegen, volledig werden aangestuurd door een live emulatie van een echt fruitvliegenbrein. Ik wilde graag onderzoeken hoe deze toepassing precies werkte en hoe realistisch de emulatie in de praktijk was, dus besloot ik om er als zijproject mee aan de slag te gaan.
Om te begrijpen waarom dit zo bijzonder is, moeten we kijken naar de geschiedenis van het hersenonderzoek bij de fruitvlieg. Jarenlang was het in kaart brengen van het volledige schakelschema van een insectenbrein, ook wel een connectoom genoemd, een schier onmogelijke taak. Waar wetenschappers in de jaren tachtig al het brein van een eenvoudige rondworm met 302 neuronen ontleedden, telt het brein van een fruitvlieg meer dan 139.000 neuronen en meer dan 50 miljoen synaptische verbindingen.
De grote doorbraak kwam er door het internationale FlyWire Consortium, samen met onderzoekers van het Janelia Research Campus en Google Research. Het brein van een vrouwelijke fruitvlieg werd hiervoor in duizenden ultradunne plakjes van slechts 40 nanometer dik gesneden. Elk van deze plakjes werd vervolgens gescand met behulp van geavanceerde elektronenmicroscopie. Met behulp van computer vision en kunstmatige intelligentie werden de miljoenen beelden aan elkaar gesmeed tot een driedimensionale reconstructie, die daarna handmatig werd gecontroleerd door wetenschappers over de hele wereld. Het resultaat was de FAFB-dataset, waarmee voor het eerst exact kon worden nagegaan hoe zintuiglijke prikkels via interne netwerken leiden tot specifieke spierreacties, zoals de bekende vluchtreactie van de vlieg.
Het oorspronkelijke project dat Niels stuurde, maakte gebruik van deze connectoomdata om een Leaky Integrate-and-Fire emulatie van de neuronen op te starten op het bureaublad. De virtuele vlieg reageerde op muisbewegingen doordat visuele prikkels de geemuleerde neuronen stimuleerden tot aan het vluchtpunt. Ook gebruikte de vlieg de randen van geopende vensters als een soort fysiek terrein om over heen te lopen.
Voor mijn eigen experiment wilde ik dit principe meenemen naar de Unity engine. Om Unity te laten communiceren met het hersenmodel schreef ik een Python socket-verbinding. De Python-server verwerkt de berekeningen van de vurende neuronen en stuurt deze data als een constante stroom door naar Unity. In Unity wordt deze data omgezet in animaties, krachten en bewegingen van de vlieg. De Python-server biedt daarnaast de mogelijkheid om sensorische feedback terug te sturen naar het brein, hoewel ik die specifieke terugkoppeling in deze fase nog niet heb geïmplementeerd.
Om het experiment extra vermakelijk te maken, besloot ik om de emotionele en fysieke toestand van de vlieg hoorbaar te maken. Door de activiteit in specifieke neuronenclusters te monitoren, kon ik afleiden of de vlieg schrok van de muis, honger had of juist rustig aan het ontspannen was. Deze emotionele toestanden koppelde ik aan de ElevenLabs API om de vliegen daadwerkelijk te laten praten. Om het gebruik van de API efficiënt te houden, worden gegenereerde audiostanden lokaal opgeslagen in een cache, zodat bekende uitspraken direct opnieuw afgespeeld kunnen worden.
Het blijft bijzonder om te zien hoe een complex neurologisch dataset via een socket-verbinding en spraaksynthese verandert in een interactief, sprekend digitaal wezen op je scherm.