这个项目能做什么
flybrain-sdk 是一个处于 alpha 阶段 (0.4) 的 Python SDK,用于运行小型连接组模拟,并将其集成到游戏、音频演示和实验中。它刻意采用 CPU 优先设计:参考后端是基于 float64 边列表的 NumPy 漏电积分-发放 (LIF) 运行时,因此不涉及 GPU 或 CUDA 设置。运行环境仅需 Python 3.9+ 和 NumPy,导入包或加载内置的 toy 模型可在离线状态下工作。
核心 API:会话通过 FlyBrain.load("toy", backend="cpu") 开始,该函数可接收内置数据、本地模型 JSON 路径或 Connectome 对象。随后,stimulate(name, strength, duration_ms) 为下一个 tick 调度一个有限的电流脉冲;step(n) 推进 n 个固定模拟 tick 并返回一个不可变的最终状态;action() 读取独立的运动强度而不推进时间。save()/restore() 用于写入和重新加载包含模型、配置、动力学和待处理刺激的检查点;advance(duration_ms=...) 则提供基于持续时间的变体。toy 感觉通道包括 food, looming_left, looming_right 和 touch;运动通道包括 walk, turn_left, turn_right 和 jump,取值在 0 到 1 之间,被描述为启发式控制值而非概率或测量速度。游戏的移动和渲染由宿主应用程序处理。
后端:目前仅实现了 cpu。wasm 和 cuda 作为预留接口存在,调用时会抛出 BackendUnavailableError;项目声明 CUDA 和 WASM 尚未实现运行时。
模型:内置的离线演示是一个手工编写的 12 神经元电路。一个单独的约 3.8 MB 的 MaleCNS 模型 (male-cns-escape-v1) 运行 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。浏览器电路实验室支持实时运行,允许访问者刺激 toy 或真实细胞、静默输出、检查速率并下载可编辑的 HTML 演示;画廊查看器可回放记录的 Python 运行结果。仓库中包含一个 TypeScript CPU 运行时包。
安装与构建:该包未发布在 PyPI 上,因此需从 GitHub 安装 (pip install "flybrain-sdk @ git+https://github.com/freeman-1984-coder/flybrain-sdk.git") 或通过克隆使用 pip install -e .,可选安装用于 pytest 的 dev 额外依赖。分发产物通过 python -m build 产生,并使用 twine check 检查。
范围与诚实说明:作者将该 SDK 描述为实验的“管道”,而非经过验证的苍蝇模拟:仅凭布线无法确定生理参数、受体效应、感觉编码、运动解码、身体或学习,且演示版不具备可塑性、形态学、真实视觉或推断的生物行为。全脑实时 CPU 性能尚未确立。代码和原始 toy 数据采用 MIT 许可;第三方数据集保留其自身的许可和引用要求。项目声明其独立运行,与 Janelia, FlyWire, Google 或数据集作者无关。列出的贡献领域包括带有许可和完整性元数据的版本化模型源、FlyWire 导入器、Godot/Unity 适配器以及参考动力学的 WASM 移植。
评论
0 评分人数达到10人后显示
登录后参与讨论。