🪰 FlyBrain 數位雙生儀表板

展場模式:讓觀眾用自己的手機打開 /play 就能丟食物、戳觸角、切除迴路,大螢幕會同步反應。另外 /duel 是並排對照競技場:同一個亂數種子、同一張場地,完整大腦對上被切掉一條迴路的大腦,兩隻一起跑給觀眾看。

俯視小地圖

灰色=牆(兩端圓角),紅點=食物,黃色昆蟲的六隻腳會跟著步態擺動、淡色表示抬起。觸角顏色:綠=正常、橘=前方 15 公分內有牆(迫近感)、紅=碰到。藍線=最近 30 秒軌跡。視野固定,只有昆蟲跑出場地時才會擴大。

場地編輯:

神經迴路圖(訊號怎麼流)對照:FlyWire 連接組

由左到右:觸角機械感覺與迫近偵測 → 兩側興奮度(積分+指數衰減)→ 中央複合體的行為閘(三選一,黃框是贏家)→ 轉向量 → 下行神經元 → 腹神經索的節律產生器(CPG)→ 左右三足組的振幅。每個節點下方是即時數值,連線上的數字是傳出的訊號強度、越粗越強。顏色:觸角紅=碰到、迫近橘、興奮度紅色越深越高、轉向左藍右橘、飢餓橘、多巴胺綠、生理時鐘黃、閘門灰底黃框=贏家。

模型節點 ↔ 真實果蠅細胞類型(FlyWire 連接組對照表,點節點可開啟)
模型節點真實細胞類型神經區數量說明

3D 視圖(軟體投影,無外部函式庫)

跟小地圖同一份資料的立體呈現:地面格線、牆、食物、六足昆蟲。腳的膝蓋依真實馬達角度擺動,抬起的腳會離地。滑鼠拖曳可旋轉視角,滾輪縮放;相機自動跟隨昆蟲。本機 PyBullet 視窗只有在電腦上才有,這個在雲端也看得到。

視角:拖曳可轉到任何角度(含正上方),滾輪縮放。

控制

緊急停止會暫停並讓六顆伺服回中立位;之後按暫停/繼續恢復。

左/右觸角撞擊:模擬該側觸角被碰到,大腦立即啟動避障反射(實體與虛擬同步)。食物重生:把食物隨機放到新位置。暫停:凍結大腦與馬達,實體保持姿勢。滑桿放開時才生效,所有觀看者共用同一隻昆蟲。

消融實驗(切除迴路)方法:連接組模擬的神經元拔除

關掉一條迴路,看行為怎麼壞掉:這就是神經科學裡的「損傷實驗」。關避障→撞牆不轉;關趨味→找不到食物;關迫近感→更容易楔住;關承諾→轉向來回擺盪;關飢餓→動機不變;關習慣化→每次撞都全力反應;關多巴胺→不會獎懲調整;關雜訊→路線僵硬;關生理時鐘→活動度恆定。開關立即生效,所有人共用。

自動參數實驗

選一個參數與幾個數值,每個數值自動跑固定秒數、重複 N 次(每次隨機雜訊不同),記錄每分鐘覓食次數與撞牆數,顯示平均 ± 標準差與誤差棒,做成報告可用的對照表。跑完會把參數還原;「匯出報告」會把結果、參數快照與數位雙生一致率寫成 Markdown/CSV/JSON(本機在 runs/ 目錄,雲端可從 /run/ 下載)。

目前沒有實驗在跑。
數值n覓食/分 (平均±SD)撞牆 (平均±SD)

脈衝神經元 raster(最近 60 秒)對照:脈衝神經網路

果蠅腦是脈衝神經網路:神經元平常安靜,活性越高發射越密。這裡把模型裡 12 個節點的活性用 Poisson 過程轉成脈衝(最高 100 Hz),每一列一個神經元、每一點一次發射,右側是最近 1 秒的發射率。可以看到觸角一碰就密集發射、興奮度慢慢稀疏、贏家閘持續放電。

決策時間軸(最近 60 秒)

三條色帶由上到下:模式(藍=直走、綠=趨味、紅=避障且承諾右轉、深紅=避障且承諾左轉、紫=脫困)、左觸角(黃=接觸、橘=迫近)、右觸角;白色直線=吃到食物。下方曲線:紅/橘=左/右興奮度、黃=轉向量(中線為 0,上為右)、綠虛線=食物角度誤差(±180° 縮到滿幅)。由上而下就是「刺激 → 決策 → 結果」。

連線狀態

M5Stack:收到實體韌體心跳時亮綠(雲端展示沒有實體,恆為紅)。PyBullet:物理模擬運作中。WebSocket:瀏覽器與大腦的即時連線,括號內是同時觀看人數。t 是模擬經過的秒數。

M5Stack 實體(心跳)
PyBullet 模擬
WebSocket(0 個連線)
t = 0.0 s

感覺輸入(大腦感知到的世界)腦區:觸角 Johnston 器官 / AMMC迫近:LC4 / LPLC2方向:中央複合體 E-PG

羅盤:黃色箭頭是身體航向(永遠朝上),紅色箭頭是食物方向;兩者夾角就是「角度誤差」,正值=食物在左。氣味:食物散出高斯氣味場,兩根觸角尖端各聞到一個濃度,大腦只用「左減右」決定轉向(嗅覺趨性,關掉嗅覺才退回理想羅盤)。迫近=觸角尖端 15 公分內有牆;接觸=觸角碰到。

角度誤差 – 距離 – m
氣味 左 0.00 右 0.00
左迫近 右迫近
左接觸 右接觸

行為選擇(winner-take-all)腦區:中央複合體

五條驅力互相競爭,最強的接管轉向,優先順序固定:避障(反射)> 社交(雄性看到同類)> 趨味(氣味或羅盤)> 記憶(蕈狀體記得的好地方)> 直走。承諾條:避障一旦選邊,會維持到興奮度消退或時效到期才換邊。

避障 0.00
趨味 0.00
記憶 0.00
社交 0.00
直走 0.25
承諾 —
等待大腦資料…

中央複合體羅盤:E-PG 環狀吸引子腦區:橢圓體 EBP-EN・Delta7

果蠅沒有 GPS。牠在橢圓體的 16 個楔形上維持一個活動小丘(bump),小丘的位置就是牠自己認為的朝向。P-EN 神經元把身體轉動量推著小丘沿環移動,看得到地標時小丘被拉回校正,看不到就盲飛並慢慢漂移 —— 漂移是真果蠅也有的特性,不是程式錯誤。外圈亮起來的格子=該楔形的活性,藍線=環估計的朝向,黃線=真實朝向,兩者夾角就是誤差。

估計朝向 – 真實 –
羅盤誤差 – 確信度 –
地標狀態
誤差歷程(最近 30 秒)

內在狀態與生理機制多巴胺:蕈狀體飢餓 NPF・生理時鐘 PER/TIM

同樣的刺激,不同的內在狀態會做出不同決策。飢餓:沒吃到食物會慢慢上升,放大趨味、提高冒險;吃到食物就下降並釋放多巴胺(獎勵,暫時再放大趨味)。撞牆會累積懲罰訊號,放大避障。習慣化:同側觸角反覆被碰,反應逐次變小,休息後恢復。生理時鐘:一「天」600 秒、早晚兩個活動高峰,活動度只調探索雜訊。

飢餓 0.00
多巴胺(獎勵) 0.00
懲罰訊號 0.00
左觸角習慣化 0.00
右觸角習慣化 0.00
時鐘相位 0° 活動度 1.00
探索雜訊 +0.00

位置記憶(蕈狀體式聯想學習)腦區:蕈狀體 Kenyon 細胞・多巴胺

場地切成 4×3 個「位置細胞」。吃到食物時多巴胺把目前格子的價值寫高(綠),撞牆則寫低(紅),價值以 2 分鐘時間常數慢慢淡忘。沒有氣味也沒有目標時,大腦會往價值最高的格子探索(記憶驅力)。這是紀錄裡說「虛擬果蠅沒有」的後天學習,黃框=目前所在格子。

社交迴路(求偶/攻擊,性別差異)腦區:fruitless / doublesex・P1

加入第二隻昆蟲後,兩隻都能感知對方的方位與距離(費洛蒙/視覺)。同樣的輸入,依性別走不同迴路:雄性遇到雌性 → 求偶追逐;雄性遇到雄性 → 攻擊逼近;雌性 → 忽略。這對應 2026 年雄性全中樞神經系統連接組(MaleCNS)的發現:多數神經元類型雌雄同型(8,069 種相同、138 種有差異、289 種雄性專有),性別差異集中在高階腦中樞,只靠少數「開關」神經元切換求偶/攻擊等行為。第二隻沒有覓食驅力,純粹當社交對象。

主角性別 第二隻性別
主角模式–
第二隻模式–
兩者距離 (m)–
社交驅力 主 / 第二– / –

神經狀態

模式:FORWARD 直走、TAXIS 朝食物趨近(氣味或羅盤)、MEMORY 往記憶中的好地方探索、COURT 求偶追逐、AGGRESS 攻擊逼近、AVOID 觸角受刺激的避障反射、ESCAPE 卡住時的脫困動作。turn 轉向量:−1 全力左轉、+1 全力右轉、0 直行。興奮度:觸角受刺激後的神經活性,碰撞時跳到 1,之後依時間常數指數衰減;哪一側高就往另一側轉。

模式 FORWARD   turn = 0.00
左側興奮度 0.00
右側興奮度 0.00

六腳步態波形(藍 = 三足組 A:L1 L3 R2,橘 = 三足組 B:L2 R1 R3)腦區:腹神經索 CPG

六顆馬達的角度隨時間的變化(中立 90°)。兩組三腳相位相差 180°,一組著地推進時另一組抬起前收,這就是昆蟲的三足步態。轉彎時內側那一組振幅縮小甚至停住。

CPG 相位振盪器腦區:腹神經索

脊髓層的節律不需要大腦下指令:相位持續旋轉,六隻腳依相位表輸出。三足步態時藍點與橘點永遠相差 180°;四足波步態時分成三組相差 120°。大腦唯一能改的是左右振幅(下方兩條):轉向量為正時右側縮小,身體就向右彎。

相位 0° 頻率 1.5 Hz 步態 tripod

步頻低於 1 Hz 自動換成四足波步態(tetrapod):三對對角腳相差 120°、隨時有四隻腳著地,像真果蠅慢走時一樣。把步態頻率滑桿拉到 1 以下就能看到。

左側振幅 100%
右側振幅 100%

觸角狀態腦區:AMMC

黃燈=該側觸角正在碰觸:實體微動開關按下、虛擬觸角撞牆、或用控制區按鈕手動觸發。

左觸角
右觸角

數位雙生一致率(實體 ↔ 虛擬)

同一顆大腦同時驅動實體與虛擬昆蟲,兩邊的觸角撞擊應該在同一時刻發生。這裡把實體微動開關事件與虛擬觸角事件在 0.5 秒內同側配對:一致率=配對數 ÷ 所有事件數,延遲=兩者時間差。雲端展示沒有實體,面板會顯示「無實體連線」;本機 twin 模式才有數據。

無實體連線(twin 模式且 M5Stack 心跳正常時才會累積)。

硬體自檢(M5Stack 韌體)

自動跑操作手冊 §6 的檢查清單:心跳、觸角狀態回報、送馬達指令後控制器是否還活著(電流突波會讓 M5Stack 重啟)、校正指令、最後請你按左右觸角各一下。結果會寫進事件日誌與匯出報告。雲端沒有實體會直接顯示失敗。

回放模式

把過去某一輪錄下的遙測載回儀表板重播:小地圖、神經狀態、時間軸等面板會顯示當時的資料。可暫停、拖時間軸。評審問「那一刻大腦在想什麼」時可以倒回去看。回放時不會動到即時模擬。

0.0 s

即時指標

抵達食物:吃到食物的次數(食物會隨機重生)。平均抵達秒數:從上一個食物走到下一個的平均時間。撞擊總數:觸角碰撞事件數,同側 0.5 秒內只算一次。路徑長:累積走過的距離。

抵達食物0
平均抵達秒數–
撞擊總數0
路徑長 (m)0.00

事件日誌

最新在最上面。hit_sim 虛擬觸角撞牆、hit_web 網頁按鈕、hit_gui 3D 視窗按鈕、hit_hw 實體開關、food_reached 吃到食物、escape 脫困動作、reset 卡住太久傳回起點、param_change 調參、ablation 迴路開關、experiment_* 實驗、pause/resume 暫停與繼續。