Research
Publications
査読付き国際会議で発表した論文。
Geometry-Driven Selectivity in Macrocyclization via Rigid-Body Simulation
In Big Data Analytics in Astronomy, Science, and Engineering (BDA 2025, Aizu, Japan, Dec 15–17, 2025), Lecture Notes in Computer Science, Springer Nature Switzerland, 2026, pp. 55–71.
環状化合物の自己組織化で、なぜ完璧な選択性で四角形だけが生成するのか。分子を単純な剛体モデルに置き換えて、形と結合ルールだけから現象が再現できるかを剛体物理シミュレーションで検証しました。実装、シミュレーション、解析、論文執筆を主に自分が担当しました。
剛体物理を組み立てて挙動を観察する作業は、ゲームの物理演算・衝突・拘束・群衆 AI を設計する作業と、ほとんど同じ思考を要求されます。「単純なルールから複雑な振る舞いが生まれる」というテーマも、プロシージャル生成やゲーム AI と重なる部分が多いです。
研究テーマ:自己組織化による環状化合物の選択的生成のシミュレーション
研究の背景・目的
特定の分子が自発的に集まり、秩序だった構造を形成する「自己組織化」という現象がある。本研究では、ある化学反応において、なぜ完璧な選択性で四角形の環状化合物だけが生成するのか、その起源を明らかにすることを目指している。
- なぜ直線やその他の構造ではなく、四角形だけが選択的に作られるのか。
- なぜ原料の濃度を高くしても、選択性が落ちずに効率よく反応が進むのか。
※選択性とは?
化学反応における「選択性」とは、いくつかの反応が起こりうる状況で、特定の化合物だけが優先的に作られる性質のことである。
アプローチ
本研究における私の役割は、この化学現象を再現するためのシミュレーションモデルを設計し、C++ と物理演算ライブラリ PhysX を用いて実行・分析することである。複雑な化学反応のメカニズムを解明するため、現実の分子を単純な剛体モデルに置き換え、それらが空間内でどのように振る舞うかをシミュレーションで観察する。
具体的には、現実の分子を単純なモデルに置き換え、いくつかの物理的な制約(ルール)を与えた状態でシミュレーションを行う。ユニット同士の相互作用と構造形成の過程を追跡することで、化学的な詳細ではなく「形」と「結合ルール」だけから何が再現できるかを切り分けている。
このシミュレーションで分かること
本シミュレーションの重要な点は、「単純なルールだけで、現実世界で観測されるような高い選択性が再現できるか」を検証することにある。シンプルなモデルでも四角形構造が優先的に生成されれば、完璧な選択性は分子の複雑な化学的性質ではなく、基本的な「形」と「結合ルール」に起因するという強力な証拠になる。
また、シミュレーション空間内のユニットの密度を変化させることで、「高濃度でも選択性が落ちない理由」についても、物理的な観点から明らかにできると期待している。
研究で開発したソフトウェア
研究遂行の過程で書いた、公開可能な範囲のリポジトリ。論文の数値結果はこれらのコードで生成している。
macrocycle-rigid-body-sim
論文の本体となる物理シミュレータ。大環状分子を剛体粒子の鎖として近似し、結合長・結合角・二面角といった幾何条件を D6Joint で課して時間発展させる。Iwamoto ら(2024)が提示した解析モデルを数値的に検証するために書いた。
GitHub: mogmog-0110/macrocycle-rigid-body-sim →
Tech Stack
- C++17 / CMake
- NVIDIA PhysX 5.6.1(剛体ダイナミクスと D6Joint)
- OpenGL + freeglut(リアルタイム可視化)
- RAII を徹底した構造、ヘッダ分離、Warnings-as-Errors(/W4 /WX)でコンパイル
実装している主な機能
- 剛体粒子の鎖と、結合長・結合角・二面角を保つ D6Joint compliant mode の組み合わせ
- 26 個のゴーストアクターによる周期境界条件(PBC)の近似
- 結合グラフを UnionFind で解析し、環の連結性・サイクル数をフレーム毎にトラッキング
- MSER による定常状態の自動検出と、定常区間に絞った統計量算出
- マルチレプリカ・バッチ実行と乱数シード制御による再現可能なアンサンブル
- 独自バイナリフォーマット
.pxrf(Adler-32 CRC 付き)でトラジェクトリを保存 - 記録済みトラジェクトリのリプレイ機能(描画用と解析用を分離)
- JSON 設定ファイルからシナリオを駆動するランナー
- ヘッドレス実行モード(CI と長時間計算用)
品質と再現性
- 112 ユニットテスト(GoogleTest)でジョイント・PBC・グラフ解析・MSER の各レイヤを検証
- 固定シードと決定論的ステップで、論文の図表をそのまま再生成できるようにしてある
- 厳格コンパイル設定と静的解析で、リリースビルドでも警告ゼロを維持
mser-cpp
上記シミュレータの解析側として書いた、MSER(Marginal Standard Error Rule)の単独実装。シミュレーションが定常状態に達したフレームを統計的に判定するためのアルゴリズムで、長時間トラジェクトリから過渡状態を捨て、定常区間だけを集計する処理を自動化している。スタンドアロンのライブラリとして切り出してあるので、他のシミュレーション系プロジェクトからも使い回せる。