先月から取り組んでいる、FlexNeuroAI の Unreal Engine 5 の C++ への実装作業が完了しました。
速いです!
兎に角速い!!
まだ限界を試してはいませんが、私のデスクトップ PC 上で恐らく Ant ロボットを 100 体からもしかすると 1,000 体くらいは同時にリアルタイムで物理シミュレーション + AI 進化シミュレーションが可能なのではないかと思います。
少なくとも、動画に有りますように、36 体は完全に余裕でした。
モーター角度制御 + モーター速度制御で動いています。
上の動画ではまだ進化の最初の世代ですので、Ant ロボットはデタラメな動きしかしていませんが、暫く進化させれば歩行を始める筈です。
因みに Ant ロボットは 強化学習フレームワークの MuJoCo で使われていたものを参考に、3DCG 編集アプリの Blender でモデリング + ボーン仕込みを行い、 Unreal Engine 5 に取り込んで物理アセットを設定しています。
早くこれをゲームに組み込みたいところです。
[2025年5月9日追記]
FlexNeuroAI の人工ニューラル ネットワークの順伝播処理などが Unreal Engine 5 のゲーム スレッドで動作していた為、全ての個体についてシングルスレッド処理になっていました。
その為、36 体の脳神経ネットワークのニューロンやシナプスがそれぞれ数千個に達すると処理が重くなってしまいました。
それを解決すべく、Unreal Engine 5 特有の TMap などの使用をやめ、C++ の汎用のコードに変更し、マルチスレッディングに移行しました。
マルチスレッディングへの移行にはかなりの労力を要し、数日間 ChatGPT と格闘し、最終的には最強の o3 モデルを使い倒してどうにかコードを書き終え、完全な動作を実現しました。
上記の動画はマルチスレッディング版に差し替えました。
コメント