DesktopFly: разработчик оживил 3D-муху на macOS с мозгом из коннектома FlyWire

Разработчик под ником DenisSergeevitch выпустил на GitHub open source-приложение DesktopFly, 3D-модель мухи-дрозофилы, которая живёт поверх рабочего стола macOS: ходит по окнам, чистится, спит и убегает от курсора. Приложение бесплатное, код распространяется по лицензии MIT.
Главное отличие от обычной анимации, поведением мухи управляет не скрипт, а настоящая нейронная схема, взятая из реального коннектома мозга дрозофилы FlyWire (версия v783). Окно "мозга" показывает 23 210 позиций тел нейронов (из 139 255 во всём коннектоме FlyWire v783), окрашенных по типу клеток; в реальном времени на них вспыхивают импульсы. Отдельно выделены двумя жёлтыми точками так называемые гигантские волокна (Giant Fibers), командные нейроны, запускающие бегство.
Поведение мухи считает контур из 668 нейронов с примерно 19 000 реальных синаптических связей, работающий как модель "утечка-интеграция-и-разряд" (leaky integrate-and-fire, LIF) с частотой обновления 1 кГц. В контур входят: 104 нейрона LC4 и 210 нейронов LPLC2 (детекторы приближающейся угрозы), 2 нейрона DNp01/Giant Fiber (команда бегства), 4 нейрона DNa01+DNa02 (управление поворотом), 2 нейрона DNp09 (ходьба вперёд), 6 нейронов DNg11 (чистка), 4 нейрона MDN (ходьба назад, "лунная походка"), 6 нейронов DNp02/DNp04/DNp11 (манёвр бегства крыльями) и ещё 330 их сильнейших партнёров, включая проприоцептивные и чувствительные к ветру нейроны.
Бегство не заскриптовано: приближение курсора подаётся как визуальный сигнал угрозы на настоящие нейроны LC4/LPLC2, и муха взлетает только тогда, когда через реальные синапсы действительно срабатывает гигантское волокно. Около 1200 синапсов прямого торможения гасят сигнал при медленном приближении, поэтому муха не пугается плавных движений, а на резкий рывок курсора реагирует бегством примерно за 4 миллисекунды, как настоящее насекомое. Тело мухи при этом процедурное: коннектом FlyWire описывает только мозг, а не геометрию тела, поэтому походка, взмахи крыльев, полёт и позы для чистки и сна досочинены разработчиком поверх настоящей нейронной активности.
Окно мозга интерактивно: наведение курсора останавливает вращение, а клик по области "оптогенетически" стимулирует примерно 60 ближайших нейронов контура на 400 мс, клик по гигантскому волокну заставляет муху взлететь, по DNg11, почиститься, по одному из DNa01/DNa02, повернуться. Связь работает и в обратную сторону: ритм шагов мухи подаёт сигналы на проприоцептивные нейроны контура, а быстрое движение курсора возбуждает нейроны, реагирующие на "ветер".
Приложение реагирует и на окружение: верхние края окон служат мухе выступами, по которым она ходит и на которых садится, вплоть до того, что едет на перетаскиваемом окне и вздрагивает, если оно закрывается под её ногами; появление окна рядом трактуется как надвигающаяся угроза. Клики рядом с мухой пугают её через тот же "ветровой" путь к гигантскому волокну, а печать на клавиатуре ощущается как вибрация (приложение использует API простоя и знает только момент нажатия клавиш, но не какие именно). У мухи есть суточный ритм, пики активности на рассвете и закате, дневная сиеста, ночной покой и сон с медленным дыханием и повышенным порогом пробуждения; а поскольку мухи, как и другие насекомые, экзотермны, разогретый Mac делает муху быстрее.
Запуск требует macOS 13+ и Xcode Command Line Tools со Swift 5.9+; приложение не запрашивает у системы никаких разрешений, поскольку все данные, которые оно считывает, положение курсора, рамки окон, клики как касания, тепловое состояние процессора, доступны без специальных прав. В комплекте идут заранее подготовленные данные; при желании их можно пересобрать самостоятельно из исходных дампов FlyWire Codex объёмом около 60 МБ. У приложения есть встроенные проверочные режимы: тест инвариантов схемы и набор из 17 сквозных поведенческих проверок вида "стимулировали нейрон, тело отреагировало".
В разделе "честности" автор прямо оговаривает границы точности: коннектом FlyWire даёт только схему связей, а не физиологию. Динамика модели "утечка-интеграция-и-разряд", знаки нейромедиаторов, усиление на электрических синапсах и задержки, это стандартные модельные допущения, наложенные поверх реального графа связей; но всё, что касается того, кто с кем и как сильно связан после чувствительных нейронов, взято из настоящих данных FlyWire. Данные коннектома, лежащие в папке data/, распространяются отдельно от кода, по лицензии CC BY-NC 4.0, и автор просит при использовании ссылаться на две научные статьи 2024 года в Nature, описывающие построение коннектома FlyWire: Dorkenwald и соавторов "Neuronal wiring diagram of an adult brain" и Schlegel и соавторов "Whole-brain annotation and multi-connectome cell typing of Drosophila".
Ключевые факты
- DesktopFly, open source-приложение для macOS (лицензия MIT): 3D-муха живёт на рабочем столе, ходит по окнам, чистится, спит и убегает от курсора
- Поведением управляет не скрипт, а живая симуляция контура из 668 реальных нейронов дрозофилы с ~19 000 синапсов, взятая из коннектома FlyWire v783 (668 из 139 255 нейронов коннектома, окно мозга показывает 23 210 позиций сомы)
- Симуляция работает как модель "утечка-интеграция-и-разряд" с частотой 1 кГц; бегство запускается настоящим гигантским волокном (Giant Fiber) и занимает около 4 мс при резком приближении курсора, а около 1200 тормозных синапсов гасят реакцию на медленные движения
- Тело мухи, походка и позы процедурные и досочинены поверх реальной нейронной активности, поскольку коннектом описывает только мозг, а не тело, автор явно оговаривает это в разделе о честности данных
- Приложение не требует системных разрешений, окно мозга кликабельно для "оптогенетической" стимуляции нейронов, а данные коннектома (в отличие от кода) распространяются по CC BY-NC 4.0 со ссылкой на две статьи 2024 года в Nature
Почему это важно
DesktopFly, редкий пример того, как открытые научные данные (полный коннектом мозга дрозофилы FlyWire) превращаются в работающую интерактивную симуляцию у обычного пользователя на экране, а не остаются внутри исследовательских лабораторий. Это не имитация поведения мухи "на глаз", а буквальный запуск куска реального нейронного графа: щелчок по конкретному нейрону в окне мозга вызывает ровно то поведение, за которое этот нейрон отвечает у настоящего насекомого. Проект показывает, что коннектомика, построение полной карты связей мозга, дошла до стадии, когда её можно встраивать в обычный десктопный софт.
Кому это важно
В первую очередь, разработчикам и энтузиастам биологически правдоподобных симуляций и generative-art/desktop-pet проектов на macOS, а также нейробиологам и всем, кто интересуется коннектомикой дрозофилы: приложение, наглядная демонстрация того, что можно сделать с открытыми данными FlyWire. Полезно и как учебный пример того, как совмещать данные о связях нейронов (коннектом) с модельной динамикой (LIF-симуляция) для получения работающего поведения.
Как это применить
Проект, open source и бесплатный: код на GitHub (DenisSergeevitch/desktop-fly) под лицензией MIT, собирается из исходников через git clone и ./build.sh, требует macOS 13+ и Xcode Command Line Tools со Swift 5.9+, разрешений у системы не спрашивает. Готовые данные идут в комплекте, но их можно пересобрать из исходных дампов FlyWire Codex (~60 МБ). Сами данные коннектома в папке data/ лицензированы отдельно, CC BY-NC 4.0, то есть некоммерческое использование со ссылкой на источник; при цитировании автор просит ссылаться на статьи Dorkenwald и соавторов и Schlegel и соавторов 2024 года в Nature.
Можно ли доверять
Автор сам прямо оговаривает границы точности в отдельном разделе "честности": коннектом FlyWire задаёт только схему связей (кто с кем соединён), а не физиологию, динамика модели "утечка-интеграция-и-разряд", знаки нейромедиаторов и синаптические задержки, это стандартные модельные допущения поверх реального графа, а не измеренные величины. Тело мухи, походка и полёт тоже процедурные и никак не связаны с коннектомом, поскольку FlyWire описывает только мозг. При этом связи "кто с кем и насколько сильно" после чувствительных нейронов, это действительно данные FlyWire, а не выдумка автора; приложение поставляется с автоматическими тестами (проверка инвариантов схемы и 17 сквозных поведенческих тестов), что говорит в пользу аккуратности реализации.
Риски и подводные камни
Приложение работает только на macOS 13 и новее и требует сборки из исходников через Xcode Command Line Tools, готового установщика для рядового пользователя нет. Данные коннектома в папке data/ распространяются по некоммерческой лицензии CC BY-NC 4.0, отдельно от MIT-кода, это ограничивает коммерческое использование производных проектов. Наконец, стоит помнить об оговорке самого автора: реалистичность поведения мухи определяется не только реальными связями нейронов, но и модельными допущениями поверх них, так что воспринимать симуляцию как точную копию физиологии настоящей мухи не стоит.
«Коннектом даёт схему связей, а не физиологию.»
— из раздела "честности" в описании проекта DesktopFly