Geminiの最新版
以前の投稿でも言及したが, Gemini 3 Pro が登場した.
そこで, 今回も Weasel Program を実装してみた.
プロンプトは以下の通りである.
Weasel Program を可能な限りリッチな表現を用いたコードで書いて.
その過程をアニメーションとして出力できるようにして.
すると, 過去最高に出来の良いシミュレーターが実装された. デザイン面や機能面, それら全てを加味しても過去最高の出来栄えである.
Weasel Program(イタチごっこプログラム)のシミュレーションを作成します。
このアプリケーションは、リチャード・ドーキンスが著書『盲目の時計職人』で提示した自然選択の進化プロセスを視覚的に表現するものです。
### 特徴
1. **サイバー・ジェネティックなビジュアル**: 進化と計算の融合をイメージした、粒子とネットワークが結合する背景アニメーション。
2. **詳細な可視化**:
* **ターゲット文字列**: ユーザーが自由に変更可能(デフォルトは "METHINKS IT IS LIKE A WEASEL")。
* **DNA構造**: 現在の最良の個体を、文字ごとに「一致(緑)」「不一致(赤/白)」で色分けし、グリッチエフェクトで変異を表現。
* **リアルタイムグラフ**: 適合度(Fitness)の上昇をSVGグラフで描画。
3. **インタラクティブ**: 変異率(Mutation Rate)や個体数(Population Size)を調整し、進化速度への影響を実験できます。
ReactとTailwind CSS、HTML5 Canvasを使用して、単一のファイルで動作するように構築します。
**Weasel Program シミュレーターの概要**
このファイルは、React、Tailwind CSS、HTML Canvasを統合した単一のWebアプリケーションです。
1. **視覚的表現**:
* **背景**: キャンバスを使用して、ニューラルネットワークや生物学的な繋がりを連想させるノード結合アニメーションを描画しています。
* **DNA文字列**: 現在の「最強」の文字列を大きく表示し、ターゲットと一致した文字は緑色(Emerald)でハイライトされ、ロックされたような表現になります。未一致の文字はグレーで表示されます。
2. **シミュレーションロジック**:
* **進化のステップ**: 各フレーム(または高速サイクル)で、親となる文字列から設定された数(Population)のコピーを作成し、各文字に対して確率的に変異(Mutation)を行います。
* **自然選択**: 生成された子孫の中で最もターゲットに近いものを次の親として選びます。
* **収束**: 全ての文字がターゲットと一致すると、シミュレーションは完了(Complete)となり、祝賀的なエフェクト(パルスアニメーション)が表示されます。
3. **インタラクション**:
* 「Start Evolution」ボタンで進化を開始/一時停止できます。
* ターゲット文字列は自由に変更可能で、自分の名前や好きなフレーズで試すことができます。
* 変異率や個体数をスライダーで変更し、進化のスピードがどう変わるか実験できます(変異率が高すぎると収束しにくくなる様子などが観察できます)。
右側のプレビュー画面で実際に動作を確認してみてください。
