创新工场 / 开发说明

求偶环路:雄蝇大脑里的油门与刹车

基于 2026 年最新的雄果蝇完整中枢连接组仿真。关掉一个神经元类型,看求偶歌变强还是变弱,找出藏在环路里的油门与刹车。

开始玩

作品简介与玩法

《求偶环路》把一次真实的果蝇连接组仿真做成四关侦探游戏。雄果蝇碰到雌蝇时会振翅“唱”求偶歌,这个动作由下行神经元 pIP10 驱动。玩家先比较“触碰雌蝇”和“激活 pC1 求偶枢纽”两种输入,再用有限的静默次数找出环路里的油门与刹车,最后切换雌雄视角,看性别特有神经元如何决定这条通路。

鼠标或触屏点击操作,键盘可用 Tab 选择、Enter 或空格确认。声音默认关闭。

依据:fly-brain/README.md、fly-brain/game.js。

制作工具与技术栈

  • 数据:Janelia 公开的雄性完整中枢连接组(Berg 等,Cell 2026,CC-BY 4.0),从 Google Cloud 直接下载 feather 表格,无需登录。
  • 仿真:Shiu 等(Nature 2024)开源的全脑漏积分发放(LIF)模型,Python + Brian2,在 Mac 本地运行。
  • 分析与编排:Claude Code 负责下载数据、改写模型输入、校准参数、跑筛选实验与整理结果。
  • 游戏开发:Codex CLI 根据实验数据编写游戏;Claude Code 试玩、补全数据与接入栏目。
  • 游戏本体:原生 JavaScript ES 模块 + CSS,无构建步骤、无外部资源;Web Audio 合成翅振声;Node.js 内置测试。

制作步骤

这是本作品真实的制作过程。

  1. 先在雌性全脑上跑通方法。用 FlyWire 雌性大脑复现 Shiu 模型:激活 21 个糖味神经元,进食运动神经元 MN9 放电 83.8 Hz;再逐个静默下游神经元,找到一个抑制性“刹车”。
  2. 换到最新的雄性中枢数据。下载神经元标注、神经递质预测与 1.1 GB 连接权重,保留 165,122 个已追踪神经元;GABA 与谷氨酸能神经元设为抑制性,转换成模型需要的连接表。
  3. 发现参数不能照搬。沿用雌性脑的突触强度 0.275 mV 时,任何刺激都会带动约 2.1 万个神经元。扫描 0.2 / 0.15 / 0.1 / 0.07 mV 后选定 0.1 mV:激活 pC1 招募 1,383 个神经元,其中 42% 为性二态,pIP10 仍为 105.4 Hz;激活腿部 ppk23 时 pIP10 为 0。
  4. 做静默筛选。持续激活 126 个雄性特有 pC1,按细胞类型(左右两侧一起)静默最活跃的 40 类,每类 5 次。AVLP717m 静默后 pIP10 降 37%(油门),AVLP710m 静默后升 18.9%(刹车),其余多数在 ±3% 以内。
  5. 把结果交给 Codex 做游戏。需求里给出全部真实数值、四关设计与“标注为模型预测”的要求。
  6. 试玩与数据补全。逐关点击验证目标能否达成;Codex 起初拿不到冗余节点的逐项数值,按 0% 示意,后改为筛选 CSV 中的实测百分比,并附上原始数据文件。
# 游戏本地运行
cd fly-brain && python3 -m http.server 8000
# 运行测试
npm test

关键实现要点

  • 浏览器不跑全脑仿真。model.js 用乘法速率模型复现实验结果:pIP10 = 105.4 × ∏(1 + 静默变化百分比 / 100),下限为 0;pC1 未激活时恒为 0。
  • AVLP717m 与 AVLP710m 的系数直接用 66.4 / 105.4 和 125.3 / 105.4 校准,保证单独静默时与仿真数值一致。
  • 关卡目标写成可测试的纯函数:第二关需静默 AVLP717m 且低于 75 Hz,第三关需静默 AVLP710m 且高于 120 Hz。
  • 雌性视角是单独的示意分支,直接隐藏雄性特有节点,不冒充雌性仿真。
  • data/ 目录附带 40 类静默筛选与参数校准的原始 CSV,页面上的每个数字都能追溯。

依据:fly-brain/model.js、fly-brain/tests/model.test.js、fly-brain/data/。

局限说明

  • 所有结论都是连接组模型的预测,没有湿实验验证。模型只用布线和统一的神经元参数,不含神经调质、电突触和可塑性。
  • 每类神经元只跑了 5 次,±3% 以内的差异属于噪声。
  • 突触强度 0.1 mV 是按招募规模挑选的,换一个值,排名靠后的节点可能变化。
  • 多个节点同时静默时按乘法相乘,这是假设,没有实际仿真联合静默。
  • 雌性视角只根据论文的性别二态标注做示意,不是雌性全脑模拟。

给 AI 的需求示例

下面是本作品委托 Codex 时需求的精简版。

做一个单文件夹静态网页游戏,原生 JS + Canvas,无外部资源,中文界面。
主题:雄果蝇求偶环路的油门与刹车。
真实数据(本地仿真结果,页面上标注为模型预测):
- 激活 pC1 → pIP10 105.4 Hz;激活 ppk23 → 0 Hz
- 静默 AVLP717m → 66.4 Hz(油门);静默 AVLP710m → 125.3 Hz(刹车)
四关:触碰不等于求爱 / 找到油门 / 找到刹车 / 雌雄对比。
加“真实科学”面板、README 和 node --test 测试。

小练习

打开 data/pc1_pip10_screen.csv,找出影响排第三的神经元类型 DNp13(−4.3%)。把它的数值和噪声范围比一比,写一句话判断:它值得在游戏里当成第二个“油门”吗?再在 model.js 里试着静默 AVLP717m 和 DNp13 两个节点,算一算歌声会降到多少 Hz。