無限に拡大可能な自己シミュレーション「Game of Life」 (oimo.io) 1 ポイント 投稿者 GN⁺ 2024-03-24 | 1件のコメント | WhatsAppで共有 関連記事 1Dコンウェイのライフゲームで長さ37億セルの1Dグライダーが完成 1 ポイント · 1件のコメント · 2025-12-04 AMA: 偶然 Conway のライフゲーム専門家になった Dave Greene 2 ポイント · 1件のコメント · 2024-04-24 生命の大きさ 1 ポイント · 1件のコメント · 2025-12-11 OpenpilotでGTA Vゲーム内の自動運転を行う 5 ポイント · 3件のコメント · 2020-05-13 「Particle Life」技術 1 ポイント · 1件のコメント · 2023-12-30 1件のコメント GN⁺ 2024-03-24 Hacker News のコメント この作品で一番すごいのは、時間の動き方だと思う。 各レベルの1ステップが、その直下のレベルの膨大なステップとして計算されるので、ズームアウトするほど、1ステップが何日、何年、何千年もかかる指数的な渦に落ちていくような感覚になる。 それなのにシミュレーターがズームに合わせて速度を滑らかに調整し、時間の存在そのものを消してしまうところが巧妙。 現実の1秒あたりゲーム内時間がどれだけ進むのか表示があるといいけれど、そのためにはどこか1つのレベルを「底」のレベル、つまりリアルタイムで動くレベルに決める必要があり、全体のフラクタル性が崩れそう。 実装解説の記事では、メタピクセルパターンの概念を説明したあと、周期性の「クロック比」を示している。 「このパターンの周期は35328なので、35328世代進めるとメタレベルの世代が1進む」という具合。 こうした時間遅延は必要だとさえ言える。パターンの自己相似性が時間にまたがっていて、2つのレベルが異なるクロックで動作するなら、次のレベルが前のレベルの自己相似なアニメーションビューに合わせて現れるとき、速度を落とさなければならないから。 つまり n レベルの構造は n+1 レベルの自己相似構造の35328回の反復を必要とするので、n+1 を n の自己相似ビューとして引き上げるとき、時間ベースの自己相似性まで合わせるには n+1 も遅くなる必要がある。 そうなると、すべてのズームレベルで、あるビューの「計算複雑性」が一定に保たれるような時間不変定数のようなものがあるのかも気になる。 ズームアウトするたびに、いつも回路の別の部分から抜け出してくるところが特に印象的。 だから単調に繰り返すフラクタルのようには感じず、機械のさまざまな部分を、それぞれ違う時間的角度から見ている感じが残る。 重力が時間を遅くするから。 高く上がるほど重力の影響が小さくなり、時間は速く進む。 参考: https://en.wikipedia.org/wiki/Gravitational_time_dilation 開始したレベルをリアルタイムにして、秒針が下のレベルではより遅く、上のレベルではより速く動く、と決めればいいんじゃないかと思う。 格子が無限なので、どこか1つのレベルが次のレベルと全履歴まで完全に同一であることも可能なはず。 そうすればすべてのレベルを互いに同一視して、実質的に同じレベルと見なせるし、空間と時間の両方がスケール上で円環状になる。 その単一レベルは、それでも空間と時間の両方で反復しない可能性がある。 初めてズームインしたとき、無意識に「何だこれ」と反応してしまった。 20年以上慣れ親しんできたものを完全にひっくり返していて、久しぶりに見た中でも最高にクールな部類に入る。 これはコメントだけ読まずに、実際に動かしてみるべきタイプのもの。 危うくそのまま閉じるところだったけれど、開いてみたら完全に見入ってしまった。 本当にすごい。 見て、あちこちズームするだけでも、考えることがものすごく増える。 リンクをクリックすべきだという点に同意。 自分もたいてい先にコメントを読んで、ペイウォール、時間の無駄、巨大なバナー、詐欺サイトのようなものかを確認してからクリックするか判断する。 その代わり、記事を読んで残りの人のためにコメントを残してくれる人たちにはとても感謝している。 新しい言語を学ぶたびにコンウェイのライフゲームを少なくとも十数回は作ってきたし、もうこれがどう実装されているのか考え始めている。 実装によっては、ユーザーが開始できるサンプルパターンをいくつか入れるだけでも面倒なのに、このサイトはほとんどの固定物、振動子、宇宙船を無限のレイヤー数で組み合わせているように見える。 パターンは繰り返しているように見えるが、基本レイヤーを構成しただけでも非常に印象的。 スクロールしながら「darude - sandstorm」を流しておくのを強くおすすめする。 サイトがトラフィックに押しつぶされているようだ。 数日後にまた試してみるつもり。 Haxeで書かれているというのが興味深い。 初めて聞いた言語だけれど、ほとんどどんなニッチにもはまる「ハッカーの言語」を探していて、これがそうかもしれない。 オプションの静的型付け、複数ターゲット(特に C++)へのコンパイルを見ると、なぜもっと人気がないのかよく分からない。 開発者のニーズをよく理解した設計者たちが作った、非常に実用的な言語に見える。 Haxe は Flash の代替として作られたものだと理解している。 なぜもっと人気がないのかは分からないが、ゲームコミュニティでは使っている人がかなり多い。 Haxe はかなり定着した言語だが広く知られているわけではなく、いつも弱者のポジションにいる。 それでも完全に素晴らしい。 抽象構文木(AST)を変換できるマクロもあり、コンパイル時に驚くようなことができる。 こうした機能を成熟した形でサポートしている言語はごく少ない。 Lisp は嫌いだがハッカーの言語が欲しいなら、Haxe を試す価値がある。 本当に良いものがたいてい人気がない理由と同じ。 すごいものをうまく作る人たちは、それを盛り上げるのが苦手で、逆に大げさに売り込むのが得意な人たちは、複雑だが売りやすいものを作って過剰な注目を生み出す。 Haxe はかなりいい感じで、使ったことがないなら触ってみる価値がある。 ゲームを作らないのであまり使い込んではいないが、「ActionScript 3 が Flash の世界を離れて進化し続けていたら?」という感じ。 いつかもっと使って、ゲームのようなものも作ってみたい。 WebサイトやWebアプリを作るとき、PHP サーバー側のクラス/ロジックと JS クライアント側を強く結合する方法を作りたいと思っていた昔のアイデアを思い出す。 HTML ベースのフォームを作るときに特によくあったのだが、PHP でフォームを定義しても、ページロードなしで動くほうがユーザー体験は良いので、通常は TypeScript オブジェクトを定義して Ajax でフォームを送る。 フィールド名を両側に定義しなければならないのは保守上ひどいので、代わりに TypeScript が Ajax でサーバーに必要な入力一覧を要求して取得するようにした。 Haxe ならこうした作業をずっときれいにできそうだ: https://haxe.org/use-cases/web/ 本当に驚いた。 仕組みについての詳しい内容はこちらにある: http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1 このバージョンの作者が書いた記事もある: https://blog.oimo.io/2023/04/10/life-universe-en/ ものすごくクール どう動いているのか見たい人向けのGitHubリンク: https://github.com/saharan/works/tree/main/life そのリポジトリにはほかにもいくつか良いシミュレーションがあるけれど、これは群を抜いて最高 久しぶりに見たライフゲームのアイデアの中でいちばん驚かされた ときどき、私たちの宇宙もこういう仕組みなのではないかと思う 最も基本的な粒子を探し続けているけれど、もしかするとそんなものは存在しないのかもしれない もしかするとすべては無限にズーム可能で、私たちは自分たちのレベルだけを認識しているだけなのかもしれない 物質はさらに別の物質でできていて、その物質もまた別の物質でできている、という具合に無限に続いている そして別のレベルにも生命が存在するかもしれない 電子の中とか、あるいは私たちがはるかに巨大な生命体の内部で暮らしているとか 関連動画: https://youtu.be/DoCYY9sa2kU?t=441 いくつか考えが浮かぶ セルの値を人為的に変えたらどうなるだろう? カオスが生じて、その変化が最終的にすべてのレベルへ伝播しそうだが、実際に見てみたい それから、各セルが互いに異なるシミュレーションでありながら、より大きくズームアウトしたレベルでは依然としてConwayのライフゲームのように動作させることはできるだろうか? 境界を守り、正しいタイミングでオン・オフするなら可能そうで、限界がどこにあるのか気になる セルを変えたそのレベルは、最初の損傷地点から外へ広がるカオスの波によって壊れ、後には退屈な「灰」のパターンが残るはず その下のレベルは影響を受けず、壊れていない技術で上で起きているカオスを忠実にシミュレートする その上のレベルは、もはやライフゲームをシミュレートしなくなる 下位レベルの壊れた部分は白でも黒でもないぼんやりした点のように見え、上に行くほど指数関数的に遅くなりながら永遠に大きくなっていくはず セルの値を人為的に変えたときにカオスが生じ、変化がすべてのレベルへ伝播するなら、これはがんに似た比喩なのだろうか? それが展開していく様子や、何らかの「修復」や「免疫系」のような効果が生じるのかを見ると面白そう 本当に美しく実装されている ライフゲームは、私がプログラマーとして最初に試したシミュレーションだったはずで、その後も何年にもわたって何度も戻ってきた 今でも意識のようなものについて人々が思索しているのを見るたびに思い浮かぶ 私たちには魔法の粉のような何かがあるのか、それとも巨大な舞台で単純なルールが展開された結果にすぎないのか この256バイトプログラムの実行で現れる創発的な振る舞いを見るのは楽しいかもしれない 心が生まれる場面: https://www.youtube.com/watch?v=sWblpsLZ-O8 物理法則が頭蓋骨の境界で止まらないのと同じように、自我の主権のようなものもない だが、ある思考が自分自身を自分の思考する主体だと見なしても、誰も気にしない そもそも誰もおらず、ただ思考があるだけ もしかすると、単純なルールそのものが「魔法の粉」なのかもしれない こうしたチューリング完全な構造は至るところに現れ、多くの面で互いに等価 もしかすると、この基底構造が私たちの形而上学の土台であり、現実はその順列的な可能性の中の1つのノードにすぎないのかもしれない ライフゲームの単純なルールは、メタ現実の根本的な本性が創発的に映し出されたものかもしれない こうした反映が私たちの神経構造と意味構造の中に存在することこそ、意識が生まれるために必要な「魔法の粉」なのかもしれない ライフゲームを3Dで可視化した素晴らしいバージョンもある 以前の時間フレームが根が伸びるように下方向へ順に積み重なり、等角投影の視点でアニメーションとして見える この作品のようなフラクタルではないが、芸術と科学が交わる雰囲気は確かに共有している AlecsForum: https://www.instagram.com/reel/C2hoRnFsmQW/
1件のコメント
Hacker News のコメント
この作品で一番すごいのは、時間の動き方だと思う。
各レベルの1ステップが、その直下のレベルの膨大なステップとして計算されるので、ズームアウトするほど、1ステップが何日、何年、何千年もかかる指数的な渦に落ちていくような感覚になる。
それなのにシミュレーターがズームに合わせて速度を滑らかに調整し、時間の存在そのものを消してしまうところが巧妙。
現実の1秒あたりゲーム内時間がどれだけ進むのか表示があるといいけれど、そのためにはどこか1つのレベルを「底」のレベル、つまりリアルタイムで動くレベルに決める必要があり、全体のフラクタル性が崩れそう。
「このパターンの周期は35328なので、35328世代進めるとメタレベルの世代が1進む」という具合。
こうした時間遅延は必要だとさえ言える。パターンの自己相似性が時間にまたがっていて、2つのレベルが異なるクロックで動作するなら、次のレベルが前のレベルの自己相似なアニメーションビューに合わせて現れるとき、速度を落とさなければならないから。
つまり n レベルの構造は n+1 レベルの自己相似構造の35328回の反復を必要とするので、n+1 を n の自己相似ビューとして引き上げるとき、時間ベースの自己相似性まで合わせるには n+1 も遅くなる必要がある。
そうなると、すべてのズームレベルで、あるビューの「計算複雑性」が一定に保たれるような時間不変定数のようなものがあるのかも気になる。
だから単調に繰り返すフラクタルのようには感じず、機械のさまざまな部分を、それぞれ違う時間的角度から見ている感じが残る。
高く上がるほど重力の影響が小さくなり、時間は速く進む。
参考: https://en.wikipedia.org/wiki/Gravitational_time_dilation
そうすればすべてのレベルを互いに同一視して、実質的に同じレベルと見なせるし、空間と時間の両方がスケール上で円環状になる。
その単一レベルは、それでも空間と時間の両方で反復しない可能性がある。
初めてズームインしたとき、無意識に「何だこれ」と反応してしまった。
20年以上慣れ親しんできたものを完全にひっくり返していて、久しぶりに見た中でも最高にクールな部類に入る。
これはコメントだけ読まずに、実際に動かしてみるべきタイプのもの。
危うくそのまま閉じるところだったけれど、開いてみたら完全に見入ってしまった。
本当にすごい。
自分もたいてい先にコメントを読んで、ペイウォール、時間の無駄、巨大なバナー、詐欺サイトのようなものかを確認してからクリックするか判断する。
その代わり、記事を読んで残りの人のためにコメントを残してくれる人たちにはとても感謝している。
新しい言語を学ぶたびにコンウェイのライフゲームを少なくとも十数回は作ってきたし、もうこれがどう実装されているのか考え始めている。
実装によっては、ユーザーが開始できるサンプルパターンをいくつか入れるだけでも面倒なのに、このサイトはほとんどの固定物、振動子、宇宙船を無限のレイヤー数で組み合わせているように見える。
パターンは繰り返しているように見えるが、基本レイヤーを構成しただけでも非常に印象的。
数日後にまた試してみるつもり。
Haxeで書かれているというのが興味深い。
初めて聞いた言語だけれど、ほとんどどんなニッチにもはまる「ハッカーの言語」を探していて、これがそうかもしれない。
オプションの静的型付け、複数ターゲット(特に C++)へのコンパイルを見ると、なぜもっと人気がないのかよく分からない。
開発者のニーズをよく理解した設計者たちが作った、非常に実用的な言語に見える。
なぜもっと人気がないのかは分からないが、ゲームコミュニティでは使っている人がかなり多い。
それでも完全に素晴らしい。
抽象構文木(AST)を変換できるマクロもあり、コンパイル時に驚くようなことができる。
こうした機能を成熟した形でサポートしている言語はごく少ない。
Lisp は嫌いだがハッカーの言語が欲しいなら、Haxe を試す価値がある。
すごいものをうまく作る人たちは、それを盛り上げるのが苦手で、逆に大げさに売り込むのが得意な人たちは、複雑だが売りやすいものを作って過剰な注目を生み出す。
ゲームを作らないのであまり使い込んではいないが、「ActionScript 3 が Flash の世界を離れて進化し続けていたら?」という感じ。
いつかもっと使って、ゲームのようなものも作ってみたい。
HTML ベースのフォームを作るときに特によくあったのだが、PHP でフォームを定義しても、ページロードなしで動くほうがユーザー体験は良いので、通常は TypeScript オブジェクトを定義して Ajax でフォームを送る。
フィールド名を両側に定義しなければならないのは保守上ひどいので、代わりに TypeScript が Ajax でサーバーに必要な入力一覧を要求して取得するようにした。
Haxe ならこうした作業をずっときれいにできそうだ: https://haxe.org/use-cases/web/
本当に驚いた。
仕組みについての詳しい内容はこちらにある: http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1
ものすごくクール
どう動いているのか見たい人向けのGitHubリンク: https://github.com/saharan/works/tree/main/life
久しぶりに見たライフゲームのアイデアの中でいちばん驚かされた
ときどき、私たちの宇宙もこういう仕組みなのではないかと思う
最も基本的な粒子を探し続けているけれど、もしかするとそんなものは存在しないのかもしれない
もしかするとすべては無限にズーム可能で、私たちは自分たちのレベルだけを認識しているだけなのかもしれない
物質はさらに別の物質でできていて、その物質もまた別の物質でできている、という具合に無限に続いている
そして別のレベルにも生命が存在するかもしれない
電子の中とか、あるいは私たちがはるかに巨大な生命体の内部で暮らしているとか
いくつか考えが浮かぶ
セルの値を人為的に変えたらどうなるだろう? カオスが生じて、その変化が最終的にすべてのレベルへ伝播しそうだが、実際に見てみたい
それから、各セルが互いに異なるシミュレーションでありながら、より大きくズームアウトしたレベルでは依然としてConwayのライフゲームのように動作させることはできるだろうか? 境界を守り、正しいタイミングでオン・オフするなら可能そうで、限界がどこにあるのか気になる
その下のレベルは影響を受けず、壊れていない技術で上で起きているカオスを忠実にシミュレートする
その上のレベルは、もはやライフゲームをシミュレートしなくなる
下位レベルの壊れた部分は白でも黒でもないぼんやりした点のように見え、上に行くほど指数関数的に遅くなりながら永遠に大きくなっていくはず
それが展開していく様子や、何らかの「修復」や「免疫系」のような効果が生じるのかを見ると面白そう
本当に美しく実装されている
ライフゲームは、私がプログラマーとして最初に試したシミュレーションだったはずで、その後も何年にもわたって何度も戻ってきた
今でも意識のようなものについて人々が思索しているのを見るたびに思い浮かぶ
私たちには魔法の粉のような何かがあるのか、それとも巨大な舞台で単純なルールが展開された結果にすぎないのか
心が生まれる場面: https://www.youtube.com/watch?v=sWblpsLZ-O8
だが、ある思考が自分自身を自分の思考する主体だと見なしても、誰も気にしない
そもそも誰もおらず、ただ思考があるだけ
こうしたチューリング完全な構造は至るところに現れ、多くの面で互いに等価
もしかすると、この基底構造が私たちの形而上学の土台であり、現実はその順列的な可能性の中の1つのノードにすぎないのかもしれない
ライフゲームの単純なルールは、メタ現実の根本的な本性が創発的に映し出されたものかもしれない
こうした反映が私たちの神経構造と意味構造の中に存在することこそ、意識が生まれるために必要な「魔法の粉」なのかもしれない
ライフゲームを3Dで可視化した素晴らしいバージョンもある
以前の時間フレームが根が伸びるように下方向へ順に積み重なり、等角投影の視点でアニメーションとして見える
この作品のようなフラクタルではないが、芸術と科学が交わる雰囲気は確かに共有している
AlecsForum: https://www.instagram.com/reel/C2hoRnFsmQW/