Гайды

flybrain: мозг мухи управляет симуляцией buttplug.io-устройства

Разбираем файл vibe-gui.py из репозитория paoloo/flybrain: как нейронные пулы мозга дрозофилы раскладываются по актуаторам и как это проверить у себя.

Редакция НейроДвижа. Проверено 26 сентября 2026.

AI-иллюстрация: Кот-космонавт на розовой планете

Редакционная иллюстрация создана с помощью ИИ. Это вымышленная сцена, а не результат тестирования инструмента.

Что это за файл

vibe-gui.py — один файл на 325 строк и 13,5 КБ в публичном репозитории paoloo/flybrain. Как заявляет автор в докстринге, это realtime simulation of a complex buttplug.io toy driven by the fly brain: окно на tkinter, где canvas одновременно служит схемой устройства. На отрисованном валу показаны два вибромотора, ротатор (вал вращается), колеблющийся наконечник, линейный толкатель, три сжимающихся кольца и полоса температуры.

Все актуаторы симулируются физически на 50 Гц: в модели учтены запаздывание моторов, интегрирование вращения, разгон толкателя, релаксация колец и нагреватель. Симуляция обновляется каждые 20 мс — это соответствует 50 Гц обновления панели.

Как мозг мухи связан с актуаторами

Автор описывает управление как автономное:MaleCNS-мозг мухи выдаёт сигналы через нисходящие нейронные пулы, а маппер VibeMapper превращает их в состояние устройства. В докстринге приведена явная таблица соответствия: DNg100 forward — вибрация базы и наконечника, DNa02/DNg13 turn — вращение со знаком, DNp01/DNp10 rate — колебания наконечника, jump burst — смещение позиции (толкатель), forward вместе с фазой — перистальтическое сжатие колец, а общая активность — нагреватель.

В тике каждые 20 мс мозг получает кадр мира (FlyingWorld), шагает, состояние передаётся в SimDevice, физика продвигается, и всё перерисовывается. В интерфейсе справа видны прогресс-бары пулов forward, turn_left, turn_right, jump и телеметрия команд — это удобная точка для наблюдения за тем, какая активность во что превращается.

Как проверить на своей задаче

Запуск, по докстрингу: conda run -n mcp python vibe-gui.py для полного MaleCNS (загрузка около 20 секунд). Есть режим --fixture: 4k-cell brain, загрузка мгновенная — с него разумно начинать. Флаг --server зеркалит управление на реальную игрушку: аргумент описан как websocket URL Intiface Central, подключение идёт через ButtplugSink, а в примере указан ws://127.0.0.1:12345.

Совет редакции: сначала прогоните облегчённый режим и понаблюдайте за пулами и задержками на экране, затем убедитесь, что Intiface Central запущен и слушает тот адрес, который вы передали в --server. Кнопка pause останавливает цикл и отключает зеркалирование, reset world сбрасывает мир.

Ограничения

Важно не путать заявленное с проверенным. Автор описывает симуляцию и её физику, а также возможность зеркалирования на устройство — но в самом файле нет ни данных о совместимости с конкретными моделями игрушек, ни оценок безопасности, ни сценариев использования. Репозиторий небольшой (на момент просмотра 2 звезды и 0 форков), так что на поддержку сообщества рассчитывать не стоит.

Код — это демонстрация связки «модель мозга → маппинг → актуаторы», а не готовый продукт. Прежде чем подключать физическое устройство, проверьте его работу в симуляции, оцените задержки и убедитесь, что понимаете, какой пул что включает.