# モデルと出典

共通の神経計算と、自由演奏（`free.html`）の変換ルールを記載しています。メロディー実験の入力・追加読み出し器・3Dは [メロディー実験ガイド](echo-guide.md) を参照してください。

## 実際のデータ

- [MaleCNS v1.0](https://male-cns.janelia.org/) はオスのショウジョウバエの中枢神経系（脳と腹側神経索）の再構築データです。
- FlyEM / HHMI Janelia、University of Cambridge、MRC LMB、Google Research。データは [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)。
- このアプリでは [Xenova / fruit-fly-simulation](https://huggingface.co/spaces/Xenova/fruit-fly-simulation) の版 `776d115ee5aa934578a87fd6d260d138084f59c1` の圧縮済み配列を使用しています。
- 非nullのsuperclassを持つ注釈を採用した誘導部分グラフ。166,700神経、25,582,938有向接続、124,177,617シナプス接触。元データの全生物学的接続を回復したという意味ではありません。
- アプリ側でさらなる神経・接続の間引きは行いません。位置図の表示点のみ約30分の1へ間引きます。直近の活動表示は上位200細胞です。
- `public/data/manifest.json` に一次配布元のURLとハッシュ、`public/data/provenance.json` に実際に使う圧縮ファイルのSHA-256を記録しています。

## 神経の計算

`vendor/brain.js` は上記版のJavaScript CPU実装をそのまま収録しています（MIT、`vendor/LICENSE`）。[Shiu et al., 2024](https://www.nature.com/articles/s41586-024-07763-9) を参照した簡略化LIFの別データへの移植です。論文の検証結果をこのアプリの生物学的妥当性として転用しません。

時間刻み0.1 ms、静止電位−52 mV、閾値−45 mV、膜時定数20 ms、シナプス時定数5 ms、伝達遅延1.8 ms、通常の不応期2.2 ms。シナプス接触数×0.275が入力の強さを決めます。配列に格納されたfastSignを使用し、AChを興奮、GABA/グルタミン酸を抑制、その他を高速電流0とする粗い近似です。

上流実装固有の仮定も保持しています。外部刺激対象（rates > 0）では発火後の不応期を0にし、発火後に入力電流も0へ戻します。不応期中は膜とシナプス電流の更新を凍結します。これらを忠実な生理現象とは扱いません。神経調節、受容体差、ギャップ結合、細胞ごとの詳細な特性、神経配線自体の学習はモデル化していません。メロディー実験では、この固定回路とは別の線形読み出し器を学習させます。

LC9への刺激は視覚の画像を再現する入力ではなく、名前で指定した神経を直接駆動します。左・右は同側のLC9とDNa02、LC4は両側のLC4が対象です。刺激の長さは神経時間200 ms。神経時間と演奏・描画時間は別です。

## 音楽への人工的な変換

集団は視覚（ol_* / visual_*）、脳内部（cb_*、motorを除く）、下行性（descendingを含む）、運動（motorを含む）、その他の5群です。

20 msの計算区間で1回以上発火した集団は、八分音符1つを鳴らします。音階内の位置は `(集団番号 + floor(3 * log2(1 + 発火数))) % 5`。基準音はMIDI 48、視覚群は12半音上げます。ベロシティは `min(105,32 + round(7 * log2(1 + 発火数))))`。音価は0.82ステップで、音色はsine/triangleです。

音楽的に聞こえる構造の一部はこの変換が与えています。これは入力と配線に依存するソニフィケーション／生成音楽実験で、ハエの作曲能力を示すものではありません。

## 身体の人工的な変換

歩行の読み取りはDNp09/DNg100/DNg97、旋回はDNa02/DNa11/DNg13の左右差、羽はDNp01。発火率をクリップして描画上の速度、方向、羽の開きに変換します。イラストは独自作成。脚の軌道は描画用で、筋肉・接触・空力は計算しません。身体から脳への感覚フィードバックもありません。

計算停止中は身体を凍結。OSの動きを減らす設定では移動アニメーションを抑え、値と音で観察できます。

## 比較と再現性

再実行は初期状態から同じシード、配線、刺激時刻を使います。ブラウザとNodeで同じJSのCPU計算を使用します。「伝播なし」は神経の接続先への伝達だけを止めます。外部刺激は同じなので、直接刺激による発火と動きは残りえます。

MIDIとWAVは演奏中の音符イベントから生成。WAVは標準音色を指定テンポで再合成したものです。ライブ描画やCPU遅延はファイルへ含みません。
