Software Documentation  /  Ver. 1.0

BioSim
Engine

生命・工学 統合シミュレーションエンジン

生物学・生命科学・流体力学の主要現象を、数学的モデルとインタラクティブな可視化によってリアルタイムに体験できる統合型シミュレーションプラットフォーム。6つの独立モジュールが単一アプリケーションに統合されています。

12 · 人工生命進化 13 · DNA変異 14 · 感染症拡散 15 · 脳神経ネットワーク 16 · 生態系 17 · 流体力学
01   Overview

科学を、触れる
体験に。

BioSim Engine は、複雑な自然現象を支配する数理モデルを、視覚的かつインタラクティブに探索できるよう設計されたシミュレーションソフトウェアです。

遺伝的アルゴリズムによる人工生命の進化から、ナビエ–ストークス方程式に基づく流体シミュレーションまで、生物・生命・工学の各分野にわたる6つのモジュールを搭載しています。

外部ライブラリに依存せず、標準のHTML5 Canvas APIのみで実装されており、ブラウザ上で即座に動作します。すべてのパラメータはスライダーで動的に調整でき、現象の変化をリアルタイムで観察することができます。

"Simulation is the telescope of the mind — it lets us see what equations alone cannot reveal."
— BioSim Engine Design Principle

// Technology Stack

HTML5 Canvas API — リアルタイム描画エンジン
Vanilla JavaScript — 依存ゼロの軽量実装
CSS Variables — 一貫したデザインシステム
requestAnimationFrame — 60fps ループ制御
Float32Array — 高速数値演算バッファ
ImageData API — ピクセル単位レンダリング
ファイル構成 単一HTMLファイル(約1,300行)
外部依存 Googleフォントのみ(機能に非必須)
対応ブラウザ Chrome / Firefox / Safari / Edge(最新版)
最適解像度 1280px 以上推奨(レスポンシブ対応)
シミュレーション数 6 モジュール(生物3 + 生命2 + 工学1)
並列実行 タブ切替による独立実行(メモリ共有なし)
02   Simulation Modules
MODULE 12   生物・生命

Artificial Life
Evolution Engine

人工生命進化エンジン

遺伝的アルゴリズムをベースに、複数の個体が「速度」「視野」「空腹係数」「旋回バイアス」などのDNA情報を持ち、食物を探索・摂取しながら自然選択の圧力を受けて世代を重ねます。エネルギーが十分に蓄積された個体は自律的に繁殖し、突然変異率に応じて形質が変化します。個体群が絶滅すると再起動し、累積絶滅回数が記録されます。

Genetic Algorithm Natural Selection Point Mutation Emergent Behavior 食物探索 AI 世代追跡
制御パラメータ
個体数 / 突然変異率 / 速度上限 / 感知範囲 / エサ密度
観測指標
世代数 · 生存数 · 平均適応度 · 平均速度 · 絶滅回数
計算複雑度
数理モデル
遺伝子ベクトル:
(speed, vision, hue, hungerRate, turnBias)
MODULE 13   生物・生命

DNA Mutation
Simulator

DNA変異シミュレーター

塩基配列(A・T・G・C)の4種の塩基からなるDNA鎖を生成し、点突然変異(置換)・挿入・欠失の3種類の変異を確率的に適用して世代を進化させます。各世代の配列は履歴として保存され、塩基表示・コドン表示・変異ヒートマップの3種類のビジュアライゼーションモードで観察可能です。さらに2つの配列を任意の位置で組み合わせる交叉(クロスオーバー)操作もサポートします。

A ↔ T(アデニン–チミン)
G ↔ C(グアニン–シトシン)
コドン: 3塩基 → アミノ酸単位
点突然変異 挿入 / 欠失 交叉(Crossover) コドン表示 変異ヒートマップ
制御パラメータ
配列長 / 点突然変異率 / 挿入率 / 欠失率 / 世代数
観測指標
各塩基の出現割合 · 配列長の変化 · 世代間差分
計算複雑度
表示モード
塩基表示 / コドン / ヒートマップ
MODULE 14   生命 · COVID-19

Epidemic Spread
Model (SEIR)

感染症拡散モデル

古典的SEIRモデルを拡張し、死亡コンパートメントDを加えたSEIRD微分方程式系を数値積分(前進オイラー法・日次ステップ)で解きます。COVID-19の3つの変異株(原株・デルタ・オミクロン)のパラメータプリセットを搭載。ワクチン接種率による初期免疫集団の設定、ピーク感染者数・累計死亡者数のリアルタイム計算、粒子シミュレーションによる感染拡大の視覚化も同時に表示します。

dS/dt = −β·S·I/N
dE/dt = β·S·I/N − σ·E
dI/dt = σ·E − γ·I − μ·I
dR/dt = γ·I  /  dD/dt = μ·I
SEIRD Model COVID-19 Parameters 変異株プリセット ワクチン効果 粒子シミュレーション R₀計算
制御パラメータ
感染率β / 潜伏期間σ⁻¹ / 回復率γ / 致死率μ / ワクチン率 / 人口規模
変異株
原株 R₀ ≈ 2.5
デルタ R₀ ≈ 5.0
オミクロン R₀ ≈ 10
計算複雑度
MODULE 15   生命 · 神経科学

Neural Network
Visualization

脳神経ネットワーク可視化

スパイキングニューロンモデルにより、各ニューロンが膜電位を積算し閾値を超えると発火(Action Potential)し、シナプスを通じて興奮性・抑制性信号を隣接ニューロンへ伝播します。ネットワーク構造はランダム・階層型・リング型・スモールワールドの4種類から選択可能。ヘッブ則的な学習(重みの更新)も部分的に実装されており、外部刺激ボタンで局所的な興奮波を手動で誘発できます。

V(t+1) = V(t) × τ + Σ(w_ij × spike_j)
if V(t) ≥ θ : FIRE → V = 0, refractory
Spiking Neurons Hebbian Learning スモールワールド 興奮性 / 抑制性 不応期 同期率計測
制御パラメータ
ニューロン数 / 接続密度 / 発火閾値 / 減衰定数 / 外部刺激率
ネットワーク構造
ランダム / 階層型 / リング型 / スモールワールド
計算複雑度
観測指標
発火数/秒 · 同期率 · 総発火回数 · 活性ニューロン数
MODULE 16   生態学

Ecosystem
Simulator

生態系シミュレーター

ロトカ=ボルテラ方程式の精神をAgent-Basedモデルとして実装。植生・草食動物・肉食動物の三者が空間上でリアルタイムに相互作用します。草食動物は植生を探して食べ、天敵から逃走し、エネルギーが蓄積すると繁殖します。肉食動物は草食動物を追跡・捕食し、飢えると死滅します。個体数の時系列グラフにより、ロトカ=ボルテラ振動(被食–捕食の位相差サイクル)をリアルタイムで観察できます。

dN/dt = αN − βNP (被食者)
dP/dt = δNP − γP (捕食者)
Lotka-Volterra Agent-Based Model 捕食 / 逃走行動 三者食物連鎖 時系列グラフ 環境災害イベント
制御パラメータ
草食動物数 / 肉食動物数 / 植生密度 / 繁殖率α / 捕食率β / 死亡率γ
特殊機能
「環境災害」ボタンで個体群を強制減少させ、生態系の回復力(レジリエンス)を観察できます。
計算複雑度
MODULE 17   工学 · 流体力学

Fluid Dynamics
Simulator

流体シミュレーター

Jos Stamの安定流体法(Stable Fluids, 1999)に基づき、非圧縮性粘性流体をリアルタイムで計算します。拡散ステップ(線形ソルバー)・移流ステップ(バックトレース法)・圧力投影(連続の式の保持)の3ステップによりナビエ–ストークス方程式を近似。速度場・圧力場・密度場・渦度場の4種類のカラーマップ表示、マウスによるインタラクティブな流体操作、カルマン渦・管内流・乱流の3つの自動プリセットを搭載します。

ρ(∂v/∂t + v·∇v) = −∇p + μ∇²v
∇·v = 0  (非圧縮条件)
Jos Stam Stable Fluids (1999)
Navier-Stokes Stable Fluids カルマン渦 渦度可視化 マウス操作 Float32Array GPU最適化
制御パラメータ
粘性μ / 拡散率 / 外力強度 / カラーマップ / 流れパターン
プリセット
カルマン渦:障害物後方の渦列
管内流:ポアズイユ流
乱流:ランダム外力場
計算複雑度
グリッド解像度
80 × 80 = 6,400セル(リアルタイム60fps目標)
03   Mathematical Foundations

数理的基盤

MODULE 14 — SEIR Epidemiology
dS/dt = −βSI/N
dE/dt = βSI/N − σE
dI/dt = σE − (γ + μ)I
dR/dt = γI  /  dD/dt = μI

感受性(S)・潜伏(E)・感染(I)・回復(R)・死亡(D) の5コンパートメントモデル。基本再生産数 R₀ = β/γ が1を超えると感染が拡大する。

β感染率(接触率 × 感染確率)
σ潜伏期間の逆数(発症率)
γ回復率(感染期間の逆数)
μ疾患起因死亡率
MODULE 17 — Navier-Stokes
ρ(∂v/∂t + v·∇v) = −∇p + μ∇²v
∇·v = 0

非圧縮性粘性流体の運動方程式。左辺は慣性力(移流加速)、右辺は圧力勾配力と粘性拡散力のバランスを表す。Jos Stam (1999) の安定流体法により実時間計算を実現。

ρ流体密度
v速度ベクトル場
p圧力場
μ動粘性係数
MODULE 16 — Lotka-Volterra
dN/dt = αN − βNP
dP/dt = δNP − γP

被食者(N)と捕食者(P)の個体数ダイナミクス。両者の個体数は周期的振動(ロトカ=ボルテラ振動)を示し、位相がずれながら共存する。Agent-Basedモデルで空間的に実装。

α被食者の自然増加率
β捕食による被食者減少率
δ捕食による捕食者増加率
γ捕食者の自然死亡率
MODULE 15 — Spiking Neuron
V(t+1) = τ·V(t) + Σ_j w_ij·s_j(t)
if V ≥ θ : fire, V → 0, ref_period

漏れ積分発火モデル(LIF近似)。膜電位Vがシナプス入力を積算し、閾値θを超えると発火(スパイク)し膜電位がリセットされる。興奮性・抑制性シナプスの両方を実装。

V膜電位
τ時定数(減衰係数)
w_ijシナプス結合荷重
θ発火閾値
04   Architecture

設計
原則

BioSim Engine は「単一ファイル・ゼロ依存」を核心設計方針とします。すべてのシミュレーションロジック、UIコンポーネント、スタイリングが1つのHTMLファイルに完結しており、インターネット接続なしでも(フォントを除き)完全動作します。

各モジュールは即時関数式(IIFE)でスコープを分離し、モジュール間の状態汚染を防止。Canvas APIを直接操作することでフレームワーク抽象化のオーバーヘッドを排除し、最大パフォーマンスを実現します。

モジュール分離IIFE(即時実行関数)によるスコープ隔離
レンダリングCanvas 2D Context / ImageData API
アニメーションrequestAnimationFrame ループ
数値計算Float32Array による高速バッファ
UI制御イベントリスナー + CSS変数
状態管理クロージャによるローカル状態
レスポンシブCSS Grid + ResizeObserver
01
ナビゲーション層
上部タブ型ナビゲーションで6モジュールを切り替え。各パネルはCSSのdisplay制御で表示/非表示を管理。アクティブなシミュレーションのループのみが実行されます。
02
コントロール層
280px固定幅のサイドパネルにスライダー・セレクター・ボタンを配置。input/changeイベントで即時パラメータ反映。スライダー値はsliderSetup()ヘルパーで一元管理。
03
レンダリング層
HTML5 Canvasに直接描画。流体シミュレーターではImageDataによるピクセル単位書き込みで80×80グリッドを効率的にレンダリング。FPS計測と統計表示を内蔵。
04
シミュレーション層
各モジュールが独自の物理/生物モデルを実装。クラスベース(Agent, Prey, Predator, Particle, Neuron)とデータ配列(SEIRの数値積分)を使い分け。
05
可視化層
折れ線グラフ(SEIR/生態系)、粒子システム(感染症)、ネットワークグラフ(神経)、速度ベクトル場(流体)など、モジュールごとに最適な可視化手法を採用。
06
デザインシステム
CSS カスタムプロパティ(変数)により全体の色・スペーシング・タイポグラフィを一元管理。ダークテーマ(サイエンス端末風)で統一されたビジュアル言語を実現。
05   How to Use

使い方

BioSim Engine はHTMLファイルをブラウザで開くだけで即座に起動します。インストール・設定は一切不要です。

01
ファイルを開く
bio_sim.html をChromeやFirefoxなどのモダンブラウザにドラッグ&ドロップするか、直接ダブルクリックして開きます。
02
モジュールを選択
上部のタブナビゲーションから観察したいシミュレーションを選択します。各タブには番号(12〜17)とタイトルが表示されています。
03
パラメータを調整
左側のコントロールパネルでスライダーを操作し、パラメータをリアルタイムに変更します。変更は即座にシミュレーションに反映されます。
04
実行・観察
「▶ START」ボタンで開始、「⏸ PAUSE」で一時停止できます。流体シミュレーターはマウスのドラッグで直接流体を操作できます。
感染症モデル
ワクチン率を0→0.7に変化させてR₀の低下とピーク感染者数の減少を観察。変異株切り替えでβの変化が曲線形状に与える影響を比較。
生態系シミュレーター
捕食率βを徐々に上げると草食動物が激減し、続いて肉食動物も飢え死にするカスケード崩壊を観察できます。「環境災害」で強制的に引き起こすことも可能。
流体シミュレーター
粘性μを最小にしてカルマン渦プリセットを選択すると、障害物後方に規則的な渦列が形成される様子を観察できます。渦度カラーマップが最も視覚的に明瞭です。