gene46には、進化させるアートのスタイルとして「線画モード(Line Art)」と「モザイクモード(Mosaic Art)」の2つが用意されています。どちらも遺伝的アルゴリズム(GA)で進化するという基本原理は同じですが、内部のDNA構造(遺伝子配列の設計)と描画アルゴリズムが根本的に異なります。
本記事では、それぞれのモードがどのようなDNAパラメータで構成され、それがCanvas上でどのように視覚的な模様として描画されるのかを技術的に解説します。
1. 線画モード(Line Art)のDNA構造
線画モードでは、HTML5 Canvas上に複数のベジェ曲線(Bézier Curve)を描画することでアートを生成します。各個体のDNAは、以下のような実数値パラメータの配列として構成されています:
- 線の本数: 1つの個体が持つベジェ曲線の総数。
- 始点・終点の座標: 各曲線の開始位置(X, Y)と終了位置(X, Y)。0.0〜1.0の正規化された座標値で表現されます。
- 制御点の座標: ベジェ曲線の曲率を決定する制御点(Control Point)のX, Y座標。二次ベジェ曲線の場合は1つ、三次ベジェ曲線の場合は2つの制御点が存在します。
- 線の太さ(Stroke Width): ピクセル単位で線の太さを指定する実数値。
- 色情報(RGBA): 赤・緑・青の各チャンネル(0〜255)と透明度(Alpha: 0.0〜1.0)の4つの実数値。
- 描画合成モード: CanvasのglobalCompositeOperation(通常描画、加算合成、乗算合成など)を数値で指定。
これらのパラメータがすべて一次元の数値配列として直列化され、「1個体のDNA」を構成しています。交叉ではこの配列の各位置で親Aと親Bの値がブレンドされ、突然変異ではランダムな位置の値がガウスノイズで摂動されます。
2. モザイクモード(Mosaic Art)のDNA構造
モザイクモードは、線画モードとは全く異なるアプローチを採用しています。Canvas上の各ピクセル(または一定サイズのグリッドセル)の色を、座標値を入力として受け取る数理関数のネットワークによって決定します。
- 入力ノード: ピクセルの正規化X座標、Y座標、中心からの距離(r)などが入力として与えられます。
- 中間ノード(隠れ層): sin、cos、tanh、abs、ガウス関数などの数理関数ノードが複数層に積まれ、入力を非線形変換します。
- 出力ノード: R(赤)、G(緑)、B(青)の3つの出力値を0.0〜1.0で生成します。
- 接続の重み: ノード間の接続には実数値の「重み(Weight)」が設定されており、この重みがDNAの主要な構成要素です。
この仕組みはCPPN(Compositional Pattern-Producing Network)と呼ばれ、ケネス・スタンレー教授が2007年に提唱した手法に基づいています。CPPNは、シンプルな数理関数の組み合わせだけで、フラクタル的な自己相似パターンや対称的な幾何学模様を自然に生成できるという優れた特性を持っています。
3. 両モードの進化特性の違い
進化の速度と収束の傾向
- 線画モード: パラメータ空間が比較的滑らかであるため、交叉と突然変異による変化が緩やかで予測しやすいです。初期世代から徐々に美しい曲線が形成されていく「漸進的な進化」が特徴です。
- モザイクモード: 関数ノードの接続構造が変わると出力が劇的に変化するため、世代間の変化が大きくなりやすいです。突然変異によって一気に全く別のパターンが出現する「非連続的な進化」が起きやすい特徴があります。
4. どちらのモードを選ぶべきか?
初心者には線画モードがおすすめです。進化の過程が直感的に理解しやすく、「自分が選んだ結果、曲線や色がこう変わった」というフィードバックが明確に感じられます。
一方、モザイクモードは予測不可能な驚きに満ちています。「何がどう変わるかわからないが、突然すごいパターンが出現する」という、セレンディピティ(偶然の発見)を楽しみたいプレイヤーに向いています。
5. まとめ
線画とモザイクはDNAの構造が根本的に異なりますが、どちらも遺伝的アルゴリズムの選択・交叉・突然変異という同じ進化メカニズムで駆動されています。異なる遺伝子設計が異なる進化のダイナミクスを生み出す——この多様性こそが、gene46を何度でも楽しめるゲームにしている要素です。
📚 参考文献・一次情報源(Citation & References)
- MDN Web Docs — ベジェ曲線とパスグラフィックス描画 — MDN Web Docs (SVG Paths)
- Kenneth O. Stanley (2007), CPPN: Compositional Pattern-Producing Networks — EPLEX Lab, University of Central Florida
- HTML5 Canvas 2D Context API 仕様 — MDN Web Docs (Canvas API)
この記事の執筆・監修
gene46 運営・開発チーム (GA研究ユニット)
遺伝的アルゴリズム(GA)を用いた自律進化型ジェネレーティブアートの挙動および最適化について研究・開発を行っているプロジェクトチームです。