На рабочем столе macOS теперь можно поселить трехмерную плодовую мушку, которая ходит по краям окон, чистится, спит и улетает при резком движении курсора. DesktopFly интереснее обычного виртуального питомца: часть поведения мухи рассчитывает нейронная модель, собранная по реальной карте мозга дрозофилы FlyWire. В симуляцию вошли 668 нейронов и около 19 тысяч синаптических связей, участвующих в обнаружении приближающейся угрозы, бегстве, ходьбе, поворотах, движении назад и груминге.
DesktopFly не воспроизводит весь мозг взрослой самки дрозофилы. Полная карта FlyWire включает 139 255 нейронов и более 50 млн синапсов, а программе нужен только небольшой фрагмент набора данных FAFB v783. Еще 23 210 нейронов показаны в интерактивной трехмерной модели мозга исключительно для анатомического контекста и не участвуют в расчете поведения. Пользователь может вращать модель, рассматривать активную нейронную цепь и стимулировать отдельные ее участки, после чего наблюдать реакцию мухи.
Нейронную активность DesktopFly рассчитывает тысячу раз в секунду с помощью модели leaky integrate-and-fire. По-русски принцип проще всего описать как нейрон с утечкой и пороговым срабатыванием. Модель постепенно накапливает входящие сигналы, часть накопленного потенциала со временем теряется, а после достижения заданного порога нейрон генерирует импульс. Leaky integrate-and-fire относится к упрощенным математическим моделям нейрона и не воспроизводит всю биохимию настоящей нервной клетки.
Курсор в DesktopFly фактически играет роль объекта, который замечает зрительная система виртуальной мухи. Программа переводит движение мыши в сигналы для нейронов LC4 и LPLC2. Нейроны LPLC2 у дрозофил действительно участвуют в обнаружении быстро увеличивающихся в поле зрения объектов, например приближающейся угрозы. Чем быстрее курсор движется к насекомому, тем резче меняется входной сигнал.
Дальше возбуждение распространяется по связям, взятым из карты FlyWire, и доходит до двух нейронов DNp01, связанных с быстрым запуском реакции бегства. Если активность достигает порога, симуляция генерирует импульс, а трехмерная муха взлетает. Медленное приближение курсора часто не приводит к той же реакции.
Разницу между медленным и резким движением формирует сама нейронная цепь. В выбранном фрагменте находится около 1200 тормозных синапсов. В модели DesktopFly тормозные связи подавляют постепенно нарастающее возбуждение, поэтому плавное приближение может остаться без ответа. Резкий сигнал способен быстро преодолеть торможение и вызвать импульс в системе бегства примерно за четыре миллисекунды.
Четыре миллисекунды не следует воспринимать как измеренную скорость реакции живой дрозофилы. Значение получили внутри программной реализации DesktopFly во время диагностических тестов. Разработчик проверяет не биологическую точность времени реакции, а работу созданной вычислительной схемы.
Для проверки поведения в проект добавили 17 сквозных тестов. Каждый тест соединяет стимуляцию определенного участка нейронной модели с конкретным действием трехмерной мухи. Проверки охватывают груминг, повороты, бегство и другие движения. Благодаря тестам можно проследить всю цепочку: нейрон получает сигнал, активность проходит через модель, после чего программа запускает нужную анимацию.
Реальные нейроанатомические данные и программные допущения в DesktopFly разделены. FlyWire дает координаты и идентификаторы нейронов, карту их соединений и количество синапсов. Все остальное добавлено на уровне приложения: правила изменения электрического потенциала, фоновая активность нейронов, задержки передачи сигнала, усиление электрических связей и преобразование движения мыши в сенсорный вход.
Поэтому DesktopFly нельзя считать цифровой копией мозга дрозофилы. Коннектом показывает, какие нервные клетки соединены между собой, но одной схемы соединений недостаточно для полного воспроизведения работы нервной системы. Программе приходится отдельно задавать физиологические параметры, которых в карте FlyWire нет.
Тело мухи тоже создано отдельно от коннектома. FlyWire картирует мозг, а не механику лап, крыльев и корпуса животного. Походка, взмахи крыльев, движения во время чистки и положение во сне генерируются процедурно. Нейронная модель определяет часть действий, а графическая система переводит команды в движения трехмерного насекомого.
Средой для цифровой мухи служит интерфейс macOS. DesktopFly получает геометрию открытых окон и превращает их края в поверхности для ходьбы и посадки. Муха может сесть на верхнюю границу окна, продолжить движение вместе с окном при перетаскивании и отреагировать на исчезновение опоры.
События на рабочем столе тоже превращаются в раздражители. Появление нового окна программа воспринимает как приближающийся объект. Щелчок мыши поблизости имитирует механический толчок поверхности, а быстрое движение курсора используется как аналог воздушного потока. Часть окружающей среды мухи поэтому формируется не внутри отдельной игры, а из обычных действий владельца компьютера.
Режим активности зависит от времени суток. Утром и вечером муха двигается активнее, днем замедляется, ночью переходит ко сну. DesktopFly учитывает и температуру компьютера: чем сильнее нагревается Mac, тем быстрее двигается насекомое. Правило основано на зависимости активности холоднокровных животных от температуры, но конкретную связь между нагревом компьютера и скоростью мухи придумали для приложения. FlyWire подобных данных не содержит.
Для запуска требуется macOS 13 или более новая версия системы и Swift 5.9. Готового установочного пакета пока нет. Пользователю нужно клонировать репозиторий и собрать программу с помощью прилагаемого сценария.
После запуска трехмерная муха размещается в прозрачном слое поверх обычных приложений. Слой пропускает щелчки мыши к расположенным ниже окнам, поэтому насекомое не должно мешать работе с интерфейсом. Управление вынесено в строку меню: там можно поставить муху на паузу, открыть трехмерную модель мозга или вручную подать тестовый сигнал быстрого приближения.
DesktopFly не запрашивает разрешения macOS на универсальный доступ и мониторинг ввода. Для взаимодействия с рабочим столом программа использует доступные ей сведения о расположении окон и события, необходимые для собственной логики поведения.
Исходный код опубликован по лицензии MIT. Производные данные FlyWire распространяются отдельно по лицензии CC BY-NC 4.0, которая сохраняет некоммерческие ограничения исходного научного набора.
При разработке использовался ИИ для программирования. В первом коммите Claude Fable 5 указан среди соавторов, а файл CLAUDE.md содержит описание архитектуры, требований к тестированию и ошибок, обнаруженных на предыдущих этапах работы над симуляцией. Репозиторий не позволяет определить, какие фрагменты написал человек, а какие сгенерировала модель.
DesktopFly в итоге соединяет очень разные уровни моделирования. Синаптические связи берутся из измеренного коннектома, электрическая активность рассчитывается по упрощенной математической модели, движения тела создаются программно, а роль окружающей среды играет рабочий стол macOS. Поэтому муха не получает цифровой мозг целиком, но часть ее реакций действительно проходит через цепь, построенную на соединениях настоящих нейронов дрозофилы.