ここから先は未踏
近傍の形を四角でなく六角(hex)にすると波面の対称性が変わる。全マス同時でなくランダムな順に1マスずつ更新する非同期にすると安定性が変わる。Lenia は状態も時間も空間も連続にして、近傍カウントをリング状のカーネルとの畳み込みに、生死の判定をなめらかな成長関数に置き換えたCA。整数の生死から始まったライフを連続にすると、泳ぐ生き物のようなパターン(オービウム)が出る。畳み込みが重くて小さい格子と相性が悪い。
このうち六角格子は、隣の住所をずらすだけで届く。マス目を一行ごとに半マスずらして敷き、各マスが接する隣を6つにする。下は中央の1マスから「立っている隣がひとつでもあれば自分も立つ」というルールで広げたもの。四角の8近傍が四角に育ったのに対し、六角の6近傍は六角形の波面で育つ。
六角格子では各セルが6つの隣と接し、どの隣とも中心間の距離が等しい。四角格子の8近傍は斜めの隣が上下左右より遠く、波面が正方形に歪むのに対し、六角格子は6方向が等距離なので波面が正六角形に近づき、向きによる偏りが小さい。隣の住所は行の偶奇でずれる。偶数行と奇数行で半マスずれた配置になるため、6つの近傍オフセットを行ごとに切り替える。
offsetsEven と offsetsOdd を行の偶奇で切り替えて6マスを足す。四角の8近傍を数えていた所を、この6方向に替えただけで、菱形でも正方形でもない六角形の波面が中央から広がる。hexNeighbors > 0 の閾値を上げると育ちが鈍り、cols を増やすとマスが細かくなる。非同期更新も Lenia も土台は同じで、近傍の形と更新の段取りを差し替える先にある。