Об этом проекте
flybrain-sdk — это Python SDK на стадии альфа-версии (0.4), предназначенный для запуска симуляций небольших коннектомов и их интеграции в игры, аудио-демо и эксперименты. Он намеренно ориентирован на CPU: эталонным бэкендом является среда выполнения leaky integrate-and-fire (LIF) на базе NumPy с использованием списков ребер float64, поэтому настройка GPU или CUDA не требуется. Единственными требованиями к среде выполнения являются Python 3.9+ и NumPy; импорт пакета или загрузка встроенной игрушечной модели работают в автономном режиме.
Основной API. Сессия начинается с FlyBrain.load("toy", backend="cpu"), который принимает встроенные данные, путь к локальному JSON-файлу модели или объект Connectome. Далее stimulate(name, strength, duration_ms) планирует конечный импульс тока на следующий тик, step(n) продвигает симуляцию на n фиксированных тиков и возвращает неизменяемое конечное состояние, а action() считывает интенсивность независимых моторов без продвижения по времени. save()/restore() записывают и перезагружают чекпоинт, содержащий модель, конфигурацию, динамику и ожидаемые стимулы; advance(duration_ms=...) предлагает вариант на основе длительности. Игрушечные сенсорные каналы включают food, looming_left, looming_right и touch; моторные каналы — walk, turn_left, turn_right и jump, каждое из которых принимает значение от 0 до 1 и описывается как эвристические значения управления, а не вероятности или измеренные скорости. Перемещение в игре и рендеринг остаются на усмотрение хост-приложения.
Бэкенды. Реализован только cpu. Имена wasm и cuda существуют как зарезервированные интерфейсы, которые вызывают BackendUnavailableError; в проекте указано, что среды выполнения CUDA и WASM не реализованы.
Модели. Встроенное автономное демо представляет собой созданную вручную цепь из 12 нейронов. Отдельная модель MaleCNS (male-cns-escape-v1) размером около 3,8 МБ запускает 313 реальных исходных нейронов и 20 607 анатомических ребер с явно заданными параметрами LIF, задокументированными в карточке модели с воспроизводимым рецептом. Автономный каталог можно просмотреть с помощью list_models() и model_info(); fetch_model() выполняет явный сетевой запрос, кэширует ресурсы локально и возвращает пути к файлам. Эквиваленты CLI включают "python -m flybrain models list|info|download". Биологические модели требуют явного флага download=True. Wheel-пакет не содержит больших моделей, а необработанные ресурсы Feather/NPY пока нельзя передавать напрямую в FlyBrain.load().
Считывание и вмешательство. Пользователи могут выбирать популяции нейронов (например, по cell_type), наблюдать такие поля, как rates_hz, привязывать пользовательские имена считывания к группам, воздействовать на выбранные клетки током заданной амплитуды, длительности и единиц, а также заглушать группы через слой вмешательства, который можно отключить. Пример open_circuit и руководство по воспроизведению MaleCNS демонстрируют этот рабочий процесс.
Демо-комплекты и браузерные инструменты. Цикл Session поддерживает заменяемые кодировщики признаков, считывание частоты и среды, а также чекпоинты и верифицированное воспроизведение обратной связи. Команды "python examples/demo_session.py dodge" и "... tones" создают записи, чекпоинты и автономный HTML для воспроизведения, при этом шаблон tones также экспортирует WAV. Браузерная лаборатория цепей работает в реальном времени, позволяя посетителям стимулировать игрушечные или реальные клетки, заглушать выходы, проверять частоты и скачивать редактируемый HTML-демо; просмотрщики галереи воспроизводят записанные запуски Python. В репозитории присутствует пакет TypeScript CPU runtime.
Установка и сборка. Пакет не опубликован в PyPI, поэтому установка производится из GitHub (pip install "flybrain-sdk @ git+https://github.com/freeman-1984-coder/flybrain-sdk.git") или из клона с помощью pip install -e ., опционально с dev-дополнением для pytest. Артефакты распространения создаются с помощью python -m build и проверяются с помощью twine check.
Область применения и примечания. Авторы описывают SDK как «инструментарий» для экспериментов, а не как валидированную эмуляцию мухи: одна лишь структура связей не определяет физиологические параметры, эффекты рецепторов, сенсорное кодирование, моторное декодирование, тело или обучение; в демо отсутствует пластичность, морфология, реалистичное зрение или выведенное биологическое поведение. Производительность CPU в реальном времени для всего мозга не установлена. Код и исходные игрушечные данные распространяются под лицензией MIT; сторонние наборы данных сохраняют свои лицензии и требования к цитированию. Проект заявляет о своей независимости и отсутствии связи с Janelia, FlyWire, Google или авторами наборов данных. Области для вклада включают версионированные источники моделей с метаданными лицензии и целостности, импортеры FlyWire, адаптеры Godot/Unity и WASM-порт эталонной динамики.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.