[](https://youtu.be/c_0FlYSoioQ)
Вы пишете сообщение. Муха оставляет газету, идёт к компьютеру, печатает и отвечает в чат. Пока продолжается переписка, она остаётся за компьютером; после паузы может вернуться в кресло. Рядом видно активность нейронной модели, управляющей её действиями.
Это исходники проекта из ролика **[«Научил МУХУ вести бизнес (реально)»](https://youtu.be/c_0FlYSoioQ)**. Скачайте, запустите на своём компьютере и попробуйте сами.
## Что внутри
- **138 639 моделируемых нейронов** и около **15 млн направленных связей** по данным FlyWire v783, подготовленным для модели Philip Shiu и соавторов.
- **3D-кабинет:** ходьба, разворот к компьютеру, посадка, чтение газеты и печать.
- **Живая визуализация мозга:** активность модели, выбор нейрона нажатием, просмотр связей и изменение размеров панелей.
- **Чат в стиле Saleon:** отправка сообщения запускает поведение мухи. Никакие платные API для демо не нужны.
В публичной версии на любое сообщение приходит **одно приветствие со ссылкой на Saleon**. Нейронное управление действиями и моментом отправки сохранено. Сервис Saleon к этой сборке не подключён; текст не генерируется мозгом мухи.

## Запустить у себя
**Проверено на macOS / Apple Silicon в Google Chrome.** Для других систем готового установщика нет. На Linux команды аналогичны, но эта сборка там не проверялась; для Windows потребуется адаптация окружения.
Понадобятся:
| Что | Для чего |
| --- | --- |
| [Python **3.13**](https://www.python.org/downloads/) | Расчёт нейронной модели. Версии 3.12 и 3.14 не поддерживаются этой сборкой. |
| [Node.js **22.14+**](https://nodejs.org/) и npm | Однократная сборка интерфейса. |
| C++-компилятор | Brian2 компилирует вычисления при первом запуске. На Mac: `xcode-select --install`. |
| **16 ГБ RAM рекомендуется** | Проверка окружения требует минимум 8 ГБ, но комфортная работа на 8 ГБ не проверялась. Оставьте несколько ГБ места для зависимостей и локальных записей. |
| [Google Chrome](https://www.google.com/chrome/) | 3D-графика с включённым аппаратным ускорением. |
### 1. Скачать
Через Git:
```bash
git clone https://github.com/ul1dev/leadsfly.git
cd leadsfly
```
Или нажмите **Code → Download ZIP**, распакуйте архив и откройте Терминал в папке `leadsfly-main`.
### 2. Установить — один раз
```bash
bash scripts/setup.sh
```
Скрипт создаст `.venv`, установит зависимости, загрузит около **105 МБ** исходных данных с проверкой контрольных сумм и соберёт интерфейс. На этом шаге нужен интернет. Готовые веса контроллера и 3D-модели уже входят в проект: **обучение запускать не нужно**.
Если команда `python3.13` не найдена, установите Python 3.13 или укажите путь:
```bash
LEADSFLY_PYTHON=/путь/к/python3.13 bash scripts/setup.sh
```
### 3. Запустить
```bash
bash scripts/start.sh
```
Откройте две вкладки:
- **Чат:** [http://127.0.0.1:8765/chat](http://127.0.0.1:8765/chat)
- **Кабинет и мозг:** [http://127.0.0.1:8765/office](http://127.0.0.1:8765/office)
Отправьте «Привет, Муха!» в чат и наблюдайте за кабинетом. Первое сообщение запускает загрузку и компиляцию модели — дождитесь исчезновения надписи «Загружаем нейронную модель». На первом запуске это дольше обычного ответа. Дальше модель работает в том же процессе.
После ответа напишите ещё: муха продолжит переписку. Примерно через **12 секунд активного ожидания без новых сообщений** отдых становится доступен; момент возвращения выбирает контроллер. Это не обещание ухода ровно по таймеру.
**Остановка:** `Ctrl+C` в терминале. Для следующего запуска снова выполните `bash scripts/start.sh`. Новую сессию можно начать через меню `⋯` в кабинете. Обычное обновление вкладки сессию не сбрасывает.
## Как это работает — простыми словами
```text
Сообщение в чате → признаки ситуации → симуляция нейронов
↓
обученный «переводчик»
↓
действия мухи + управление движением
↓
3D-сцена, активность мозга и ответ
```
Мы используем карту соединений реального мозга мухи и вычисляем активность упрощённых нейронов. Состояние кабинета превращается во входные сигналы. Обученный считыватель преобразует получившуюся активность в команды и параметры движения. Сам граф связей при этом фиксирован.
Текст сообщения не превращается в понимание человеческой речи. Офис, клавиатура, газета и их смысл заданы нашей программой. Движения соединяют выход нейронного контроллера с готовой кинематикой; это не полная физическая симуляция мышц и не «сознание мухи в компьютере».
Подробнее: **[устройство проекта](docs/public/ARCHITECTURE.md)** · **[источники и лицензии](THIRD_PARTY_NOTICES.md)** · **[что проверено](docs/public/VERIFICATION.md)**.
## Если что-то не запускается
| Симптом | Что проверить |
| --- | --- |
| `python3.13: command not found` | Нужен именно Python 3.13; переоткройте терминал после установки. |
| Ошибка компилятора на Mac | Выполните `xcode-select --install`, дождитесь установки и повторите команду. |
| `Address already in use` | Остановите старый сервер или запустите `LEADSFLY_PORT=8766 bash scripts/start.sh` и откройте адрес с портом 8766. |
| Вместо интерфейса ошибка / нет файлов | Выполните установку до конца; интерфейс создаётся командой `npm --prefix web run build`. |
| Долго загружается первое сообщение | Идёт подготовка полного графа и компиляция. Посмотрите терминал; не запускайте несколько серверов одновременно. |
| 3D тормозит | Используйте Chrome с аппаратным ускорением, подключите питание, закройте тяжёлые приложения. Уменьшите размер окна и не запускайте несколько экземпляров симуляции. |
| Проверка данных не проходит | Не отключайте контрольные суммы. Удалите повреждённый файл из `data/upstream/shiu/` и повторите установку. |
Нейронная симуляция использует CPU и не гарантирует одинаковую скорость на любом компьютере. После установки она работает локально; сайт Saleon и YouTube открываются только по нажатию ссылок. Сервер слушает `127.0.0.1` — это демо для своего компьютера, без авторизации и многопользовательского режима.
Чат и записи эксперимента сохраняются в локальной папке `runs/`, исключённой из Git. Для очистки завершите сервер и удалите эту папку. Кэш компиляции в `data/cython-cache/` можно оставить для быстрого старта.
## Для разработчиков
```bash
# После scripts/setup.sh:
.venv/bin/python -m pytest -m "not integration"
npm --prefix web test
npm --prefix web run build
```
- `src/leadsfly/` — модель, контроллер, движение, API и доставка сообщений.
- `web/src/` — интерфейс, 3D-сцена и отображение активности.
- `configs/` — параметры и готовые веса.
- `web/public/` — модели, координаты мозга и изображения.
- `scripts/` — установка, запуск и подготовка публичных исходных данных.
Изменить приветствие можно в [`src/leadsfly/generation.py`](src/leadsfly/generation.py), константа `STUB_TEXT`. После изменения перезапустите сервер. При правках интерфейса повторите `npm --prefix web run build`.
## Авторы и ссылки
**[ul1dev на YouTube](https://www.youtube.com/@ul1dev)** — видео и эксперименты.
**[Saleon](https://crm.saleonbot.ru)** — ИИ-ассистенты для бизнеса.
Проект опирается на открытые работы **FlyWire**, **Philip Shiu и соавторов**, **Brian2** и **flybody**. Ссылки, авторство и условия использования сторонних данных и моделей собраны в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
Собственный код проекта — [MIT](LICENSE). Эта лицензия не меняет условия сторонних данных, моделей и логотипов.