Hacker News new | past | comments | ask | show | jobs | submit login
Game of Life, simulating itself, infinitely zoomable (oimo.io)
1515 points by surprisetalk 11 months ago | hide | past | favorite | 243 comments



I think the coolest thing about this is the way time works. One step at each level is computed using a large number of steps at the level below. So as you zoom out you are sinking into an exponential vortex where each step takes days, years, millennia to change.

But ingeniously, the simulator smoothly scales its speed as you zoom, totally erasing the fact of time. I wish there was an indicator somewhere of how much game time was going by per real-life second.

EDIT: ...but in order to do that you'd have to declare one of the levels to be the "bottom" level, the one that runs in real time, and that would ruin the fractalness of it all...


The hows-it-done article describes the meta-pixel pattern concept then gives you the "clock-ratio" of the periodicity:

> In addition, the pattern has a period of 35328, so advancing 35328 generations will cause the generation at the meta level to advance by 1.

I would even say this time dilation is necessary because the pattern's self-similarity is across time, and if the two levels operate at different clocks, you need to slow down the next level as it comes up to the self-similar animated view of the prior level.

In other words, the structure at level n requires 35328 iterations of the self-similar structure at level n+1, so if you're bringing n+1 up to the self-similar view of n, you need to slow down n+1 as it's coming up to also hit the time-based self-similarity.

I wonder then if there's something like a time-invariant constant, maybe along the lines of the "computational complexity" of any view remains constant across all levels of zoom.


For some reason what really sticks out to me is how when you zoom out, you always come out of a different part of the circuit, so it doesn't feel like the normal repetitive fractal, you're seeing all the parts of the machine from different chronological angles or something.


Interestingly, the author's blog post [1] mentions that this is due to technical limitations and not specifically done by choice, although I do like the effect.

> When we zoom in, we discard the information of the largest meta-metapixel, so it is not always possible to reconstruct the same scene when we zoom out again.

> Since zooming in and out can be continued indefinitely, we also realize that we need infinite information to accurately represent "our current position".

[1] https://blog.oimo.io/2023/04/10/life-universe-en/


Todepond's "Screens in Screens" explores infinite zoomability!

https://www.youtube.com/watch?v=Q4OIcwt8vcE

"Another thing I know about screens is, you can go into them as far as you want forever. And you can come out of them too, but you might not end up in the same place that you started. You might get lost. Or you might not."


That's because gravity slows down time.

So the higher you go, the less you're impacted by gravity, the faster times goes.

See https://en.wikipedia.org/wiki/Gravitational_time_dilation


I suspect this simulation does not try to incorporate that ;)


Haha but it feels weirdly metaphysical, right? Like maybe there is some sort of deeper analogy there.


It's universes simulating universes all the way down?


Scale-free infinity.


Well you could just say the level you start at is real time and the second hand moves slower for lower levels and faster for higher levels?


Exactly - time is relative to our reference frame, so that would be the best arbitrary choice.


This is fun and has a great symmetry but my brain breaks at the idea of the infinitely fast and large computer that would be required to run it all :)





Imagination is fun. I'm pretty sure I can make your brain break a little bit more. Imagine they're all looped and there is no bottom level fastest super infinite computer.


The levels are stationary with respect to each other though, so in the same reference frame.


Since the grid is infinite, it should be possible for one level to to be completely identical in its history to the next level. Thus you could identify all levels with each other to really be the same level. Then both space and time are circular in their scale. (The now-single level could nevertheless still be non-repeating both in space and time!)


The most recent video from Space Time in YouTube talks about something like this related to the holographic principle.


Note that this is also how our own world works. Typical time scales of processes get faster as the length scales shorten. Somehow it feels inevitable for a dynamic multiscale structure.


In the real world, there is a limit set by the speed of light and the Planck scale. And more generally, physics is very much not scale-invariant.


armchair physicist moment: isn't this a straightforward outcome of c as a global "speed limit"? effects can't propagate faster than c, so I would expect that interaction "latency" decreases linearly with scale.


And of course, who is to say that Reality/the Omniverse isn't the same way? :)


I'm fairly sure it's all an illusion.


My read on the author's explanation story is he did actually solve the "consistency with time" and "consistency in position" problems that would make it a "rounds up to real-looking" at some zoom seam.

It's not cheating, but the trick is it's pre-computed.

Basically the structural patterns repeat, and you can pre-compute the patterns (which are also the sub-patterns), then basically tile the configurations and their transitions "across time". A naiive approach takes a few TB to store it all, but there's some clever optimizations that can bring it down. Finally once a "solution" through the tiling space was found, the author encoded it into a 4 mb png and built a display with some clever shaders.


I'm not saying it isn't technically impressive and super cool - but he clearly can't actually be computing infinitely recursive levels of GoL, so in that sense it's an illusion.


But it can be displayed, partially.


Uh, yeah clearly. We're looking at it.


Pardon my poor vocabulary to describe the following:

But if the patterns are precomputed at whatever timescales, the patterns repeat in a predicable interval, based on the scale of time..

So, I wonder what each layer of pattern looks at from a perspective of a prime or true prime number scale digit...

Like if real-time baseline is 1 - and if you look at the pattern in a still frame at position scale 1. What is the pattern look like at time scale of the primes and true primes?

Whereas the primes and true primes are known discretes, so one could think of them as discrete dimensions of timescale based on the pattern represented at timescale position 1 (real-time)

And what if timescale at position 1 is some reflection of the pattern at the primes and true prime timescales... (assuming a dimension simply means the rate at which times flow at that energy level)

Does that make sense?


Relevant xkcd: https://xkcd.com/505/


My subconscious reaction when first zooming in was: “f—— you.” They’ve taken something I’ve been familiar with for 20+ years and completely blown my mind. One of the coolest things I’ve seen on here in a long time.


Folks, this is one where you really have to try it not just read the comments (as I usually just do).

I nearly clicked away but went in and was fricken mesmerized by this.

It’s incredible.


I mainly read comments too... :)


Indeed. Just looking at and zooming around is incredibly thought-provoking.


Agree with you about needing to click the site and about reading comments. I always read the comments first to see if the link is worth the click (paywall, waste of time, huge banners, scam site, etc.) Big shout out to those folks who are reading the articles and leaving comments for the rest of us. I am guilty of not commenting much on this platform mostly because even with all my experience rarely will my comment add to the discussion.

I have made the game of life at least a dozen times in every new language I learn and am already thinking about how this is done. Even having a few example patterns the user can start with is sometimes a hassle depending on the implementation. This site has almost still life’s, oscillators and spaceships combined into an infinite number of layers (not sure it has all did not verify). The pattern does appear to be repeated but just getting the base layers is very impressive.


highly recommend the song "darude - sandstorm" while scrolling through.


Site hugged to death. :/

Will try in a few days.


If you're in firefox, try disabling Enhanced Tracking Protection.


Absolutely incredible.


Interesting to see it's written in Haxe, a language I've never heard before. I've been looking for a "hacker's language" which could fit in practically any niche and this might just be it. With optional static typing, compilation to multiple targets (notably C++) I really don't understand why it's not more popular. Seems like a really pragmatic language whose designers understood the needs of developers.


I believe Haxe was made to replace flash. Not sure why it isn't more popular, but it has a lot of folks from the game community that use it.


I was a big believer in Haxe, it seemed perfect. The main issue I and many people had at its inception was that the ecosystem was very fragmented. The promise was "write once, run everywhere" (which is what we had with Flash), but each platform you wanted to actually compile on was a whole process, often undocumented, with lots of caveats, and having to hunt for third party community wrappers to do the native integrations you want etc.

This was ~10 years ago, I'm sure the current state of the ecosystem is very different (no idea), but this is the reason why I was never able to adopt it, and I heard the same thing from dozens of Flash creators at the time.


Dead Cells was made in Haxe.


Haxe is pretty established, but not well known. Perpetually the underdog. And totally awesome. It also has macros where you can transform the AST! You can do some amazing compile time stuff that very small number of languages support, and the features are pretty mature. If you want a hacker's language but don't want a lisp give Haxe a shot.


Same reason why most really neat things aren't. The people who are good at crafting neat things are bad at creating hype for it. Meanwhile, the bullshit bingo bros come up with convoluted, marketable stuff and manage to generate hype.


Haxe is pretty neat, and worth playing with if you haven't. I don't do games so I haven't done much, but it kind of feels like "What if ActionScript 3 was allowed to break out of the Flash world, and keep evolving?".

At some point I should really do more with it and make a game or something.


It looks neat. Reminds me of a lot of ideas I had of making a way to tightly couple classes/logic between PHP (server side) and JS (client side) when making websites and web apps.

It came up a lot when making HTML-based forms. I’d define them all in PHP, but the experience is best without a page load, so typically I define some typescript object to send the form via Ajax. I got tired of having to define all the field names in both places (awful for maintenance), so instead typescript uses AJAX to ask the server for the list of inputs it needs to grab and send.

It sounds like Haxe could be a much nicer way to do stuff like that: https://haxe.org/use-cases/web/


> I got tired of having to define all the field names in both places (awful for maintenance)

Haxe might be overkill for that. Usually (unless youre doing a SPA) you use PHP or a templating language to dynamicly render the form server side based on either data or metadata.

Haxe can indeed be useful for more complicated versions of that situation, where you need a complicated state machine or algorithm in more than one language.


Sounds like a job for HTMX


It was often talked about here on HN because (I think) player or part of system of justin.tv (twitch today) was written in it, and it being a part of YC..


This is amazing, more detail about how it works: http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1


And by the author of this version: https://blog.oimo.io/2023/04/10/life-universe-en/


That’s so clever. Nothing stands as particularly revolutionary but the author brilliantly solved all the problems to deliver the final product. They are only a undergraduate student as well, they have a bright future ahead.


Why do you write that they're only an undergraduate student? They just finished their PhD https://twitter.com/shr_id/status/1770769090719731873


If you're curious why the document was issued in "year 6":

https://en.wikipedia.org/wiki/Reiwa_era


Thank you! I still don't understand the relationship between "year 6" and undergraduate, or where does it say "year 6". I'm honestly wondering as I don't know anything about Japan


Nothing to do with undergrad/PhD - I was just commenting on the way the date was written (2024-03-21 in Chinese/big-endian format, 21.03.2024 in European/small-endian format, 03/21/2024 in the muddled US format):

At the bottom of the document, it says "令和 6 年 3 月 21 日“, where the first two characters denote the Reiwa era which started in 2019 (=year 1 of the Reiwa era). 2024 then is year 6 of that era. And that's just what the next two characters denote: "6 年" = year 6. "3 月" is month 3 (the character symbolises a moon), and "21 日" is day 21 (the character symbolises a sun).


Dang this is super cool - here is the github link for anyone to see how it works: https://github.com/saharan/works/tree/main/life


A few other nice simulations on that repo, but this is by far the best, and most amazing Life idea I have seen for a long while.


I sometimes wonder if our own universe is kinda like that. We keep looking for the most basic particles, but maybe there are none. Maybe it’s all just infinitely zoomable and we’re only aware of our own level. Stuff is made of stuff which is made of other stuff, infinitely. And maybe there’s life in different levels. Like, inside the electron. Or maybe we’re all living inside of much larger life forms.



Few thoughts:

1. What happens if we artificially change the value for a cell? I imagine it would ensue chaos and the changes would eventually propagate to every level. Would love to see this.

2. Would it be possible to have each cell be a different stimulation while still acting as Conways Game of Life in a greater zoom. I imagine yes, so long as the simulation respects its boundaries and turns on and off at the correct times. I wonder what limits there are to this.


The level you change the cell in will be destroyed by a wave of chaos radiating outward from the original damage, leaving boring 'ash' patterns in its wake.

The levels below that one will be unaffected, faithfully simulating the chaos happening above them using their unbroken technology.

The levels above that one will no longer be simulating the Game of Life. The broken part of the levels below will appear as a faded spot, neither white nor black, growing forever but exponentially slower each level you go up.


But isn’t a “cell” composed of infinitely many cells on infinitely many levels? So changing a “cell” should change all cells on all lower levels, not just the visible level.


Sure, lower levels will change, but instead of the chaos above they’ll just continue to simulate upper levels in perfect order (even if different).

Edit: putting some effort to be more precise (though I may be on the wrong track): since the period of the pattern is 35328, it depends at which tick we introduce the change. Since we're changing a cell at a certain level N it makes sense to consider tick 1 out of 35328 for level N-1 (zooming in).

If we introduce a change at any other tick (out of the 35328), what we are really doing is a big change in level N-1 rather than a single cell change in level N.


I dont think thats correct. Any change on a lower level will effect the greater cell.

Each cells behavior is the composition of all its lower cells after all.

Im sure there are various compositions that lead to the same outcome, so it should be possible for each cell to be something else, but most changes would change the greater cell. For an easy example image a cell turned from on to off at 2x slower than normal.


Reminds me of false vacuum decay.


> What happens if we artificially change the value for a cell? I imagine it would ensure chaos and the changes would eventually propagate to every level. Would love to see this.

Is this analogous to cancer? Would be interesting to see it develop and even if any ‘correction’ or ‘immune system’ type effects happens.


I suppose in a sense it would. Would be really interesting to explore that with different input values and see what happens. I imagine some changes would result in the whole thing eventually collapsing and others would maybe get self corrected. My guess is a any single change would collapse it either entirely or at least break the simulation of the game of life, while two changes might self correct each other.

I also wonder what happens if we make changes not just to the initial configuration but at different iterations. After iteration 2, change x. It'd be like interweaving functions.

Hmm really getting curious about trying this out myself.


I don’t think a change with effects rippling out would be a cancer.

Cancer self-replicates whereas this would simply be either fast catastrophic failure for all levels above, or a change whose effect got suppressed (either died out, or maintained but doesn’t change next level behavior) and only had limited temporary impact.


I think he meant it in the sense that its a mutation that propagates indefinitely. But yeah its a loose analogy.


Why would you expect corrective effects to occur?


This is beautifully executed.

Game of Life must be the first simulation I ever took on as a programmer — and have revisited it over the years.

To this day it continues to come up in my mind when people muse about things like consciousness. Is there a magic dust to us? Or are we the result of simple rules playing out in a grand stage?


You might enjoy watching the emergent behavior in the execution of this 256 byte program - a mind is born [0].

[0] https://www.youtube.com/watch?v=sWblpsLZ-O8


As the laws of physics do not seem to stop at the borders of a skull, there is no sovereignty of the Self. But no one minds a thought thinking itself its own thinker, as there is no one at all. Just a thought.


https://en.wikipedia.org/wiki/Hard_problem_of_consciousness

> As the laws of physics do not seem to stop at the borders of a skull

There doesn't need to be a magic dust for consciousness, it could still be a primitive compatible with existing physics. See what Roger Penrose worked on.


Or not a primitive but just emergent phenomena.

I.e. an intelligent computing engine which learns to model both its environment and itself, with some degree of access and control of its internal processes including when it considers itself.

At the point of clear, continuous practical self-awareness, how could it not be “conscious”? It will experience it’s self’s awareness of it’s self-awareness.


Cognitive services are disabled (or have bugs injected) when consciousness is pointed at itself.


Or are the simple rules themselves the "magic dust". These turing complete structures show up everywhere and are in many ways equivalent.

Perhaps this underlying structure is the foundation of our metaphysics and our reality is just one node of it's permutative potentiality. The simple rules of GoL are just an emergent reflection of the fundemental nature of meta-reality. These types of relfections within our neural and semantic structures may be the necessary "magic dust" for consciousness to emerge.


There is a cool 3D visualization of the game where each previous timeframe is layered sequentially below like roots growing and animated from an isometric perspective. It looks super cool --- nothing fractal like this, but definitely a shared art meets science vibe.

AlecsForum : https://www.instagram.com/reel/C2hoRnFsmQW/


Does not work for me in Firefox: `Uncaught TypeError: c[b[k]] is undefined`. Opens normally in the other major browser.


I had to disable Enhanced Tracking Protection AKA ETP from firefox to run it.Otherwise it is stuck on loading screen.

Though it is working with uBlock origin(default settings)..


I've downloaded saharan's repo and poked around the Life Universe project in Chrome and FF— it seems that the pixels representing the compressed animation are retrieved through a Context2D::drawImage call, and are different in Firefox and other browsers.

It makes sense that ETP would mess with the pixels output from a drawImage call, to fight fingerprinting.

Maybe the ImageLoader can be replaced with a more direct PNG decoder stapled to a fetch(). If I can make that work tonight, I'll create a pull request; this is how I meet the coolest people.


PR submitted!


There's more going on here. I added the website to the exception list for ETP and I'm still stuck on the loading screen.


Does work on FF, MacOS 14.3.1 (Sonoma :-/)

(Some extensions conflict with some webpages, too...)

One day we will get it together so every computer program works on every computer, if we don't collapse our ecosystem first.


Does not work for me either, Firefox on Windows. But I'm getting a different error: this.frames.vb[k] is undefined


Weird, I viewed it on firefox with no issue. MacOS, latest version of firefox, mostly just privacy blocking extensions.


For me it never loads on Android Chrome.


Firefox it shows "Loading..." but never goes on. On Chrome the page never even loads. Weird.


Weirdly it works fine for me in Firefox but just stays loading forever in Chrome.


Same, does not work for me on Android Firefox


Same in Brave.



This reminds me of nested dreams, where you wake up from a dream in your bed, only to slowly realize you’re still dreaming and wake again in the same bed.


Heh, I think my record is three level deeps (dream inside of a dream inside of a dream). Inception ftw.


Sometimes I have them at seemingly infinite levels of depth. Also the time dilation feels enormous. It feels like I've been dreaming for days.


Can you elaborate more about the time dilation?

I've had dreams about waking up in succession, but have not experienced a time dilation.

Do you dream you are falling asleep, having an inner dream, and waking up again to the outer dream, to discover less time has passed than expected?


It just feels like the span of time of the dream is longer than I have been sleeping. I could sleep for an hour and dream for a day. But it's not really that I go through a day long dream, it's just that it feels like a day has passed.

My theory is that the memory of a dream is actually formed instantaneously in the brain, not over whatever span of time you feel like has passed in the dream.

Have you ever dreamed that you've spent an hour trying to turn off your alarm clock, but in real life you wake up and it's 1-minute past the alarm time? How can you have had this long complicated dream involving an alarm clock that won't turn off, but you've only really slept 1-minute through the alarm? My answer is, as I said, the dreams happen instantly but your brain just thinks time is passing in them because it's a false memory.


That's a good point. I've definitely had that alarm experience before, but not in the context of dreams within dreams.

I think the idea of each inner dream happening faster than the outer one is probably just an Inception thing.

Fast dreams might not need to be an "instant" false memory. It seams possible that a dream could actually happen much, much faster than your "normal" sense of time, it's entirely synthetic so there is no sensory bottleneck. But it would take more energy to experience it this way.

I'm basing this theory off of the time I had several long, detailed dreams in the 9 minutes between pressing snooze and the second alarm. I woke up bewildered and worn out, as though I had been up all day. Worst "snooze" ever.


This honestly sounds concerning. I would get mad if I regularly experienced seemingly days long sleep interspersed with fake awakenings.


They're not regular. Just whenever I do experience a dream-in-a-dream loop, it's never just one loop and it feels like it's taking forever to actually wake up. During the dream, I do experience the emotion of impatience and annoyance. Sometimes there is also a feeling of urgency and fear because the in dream I am trying to escape some danger and I know that I can escape it by waking up ... but when I do wake up, I'm still in a dream.

I've on a few very rare occasions been awake/conscious in real life, but also still dreaming. That's really weird when that happens. To explain: once I was awoken by my wife getting ready for work, I said some words to her, while in the back of my mind the dream was still happening. I then went back to sleep and returned to the same dream in progress. It wasn't like I was talking to her in my sleep and didn't remember it. I was fully awake and making new memories, while still dreaming.

The best analogy that I can make that you might be able to understand is. I have multiple streams of consciousness. One level I use to think about what I'm going to say when speaking to someone, but at the same time I could be counting in my other stream of consciousness. I assume that's how most people's brains work. I think when the dreaming-awake thing happened, the dream was in one stream and the awareness was in the other.


I've had this as well. When I'm really tired, I can wake up then fall asleep and resume my dream.


Maybe you are lucid dreaming but you don't know how to control it yet.


I've done lucid dreaming a couple of times. My trick to test if I'm in a dream is to stick my dream finger through my hand, or phase through a wall.

It's a strange feeling to be aware that you're in a dream. I've never really managed to get complete control of the dream.


Looking at a Digital Clocks also work for me. For some reason those always seem to “bug out”, showing or hiding random lines and sometimes even showing an unreadable time.


I've noticed something similar. If I try to look at a piece of dream text, it looks all garbled. Just like how some AI art generators make text.

Except, I can't remember if my dream text look that way before I was exposed to AI art, or if my dreams were influenced by my memories of AI art text.


The worst is when this happens when you need to use the toilet. After walking to the toilet for the nth time, how do you know for sure you won't wet the bed?


This is awesome and very mesmerising.

Is the ability to do this tied to the fact that Game of Life is Turing-complete, or is there a weaker/stronger property that allows for this?

Also, does this count as a “quine”?


It can't be a stronger property, the essence of Turing-completeness is that a Turing-complete automaton can simulate any other Turing-complete automaton, including itself.

Whether an automaton, capable of scale-invariant self-simulation, but not exhibiting Turing-completeness, is even possible, is a very interesting question. I don't know the answer.


People have built explicit turing machines in GoL, so it certainly is Turing-complete.


> Is the ability to do this tied to the fact that Game of Life is Turing-complete

sounds like GP is aware of that fact :)


I think that was edited in. Not sure at this point.


You can think of it like that. I think that makes sense.

You can build structures within the GoL rules that implement the GoL rules, so…


I'd say it's certainly in the spirit of a quine. I feel like Hofstadter would love this if he isn't already aware of it.


It needs to be able to compute, but also to be able to place cells in such a way as to 'display' the result one level up.


I’m assuming this is only achieved by “cheating” in some way? That is, I don’t see how giant pixels can come and go, at a zoomed in level, without breaking the rules of Conway’s game of life?

Still cool, but more curious to understand how this works, and if it’s actually able to pull it off “legitimately”.


Yes, this is legitimate, and there's no cheating.

If you zoom in sufficiently, you can see that the "giant pixels" are really streams of spaceships, arranged in carefully positioned rows and columns that annihilate each other along the pixel's diagonal. These streams can be turned on or off to form the "display" component of each pixel, which is controlled by other parts of the pattern that do the actual computation.

As you zoom in or out, the simulation speed changes. A pixel seems to undergo a discrete state change when zoomed out, but when you zoom in and slow down, you can see how that change is actually executed by many underlying computational steps.

Other links in this thread go into more detail about how it works. The cleverest part is that the simulation is done in (more or less) "constant time" per frame, no matter how deeply you zoom or how fast you accelerate time.


That is a good summary, but of course, there is "cheating" to do the infinite amounts of work required in a finite time!

The board appears as if there exist at any time infinite levels of cellular automata going all the way down running things. In fact, they only compute one level deep and then short-circuit to using the "hardcoded" rules of Conway's life, and simply pop up the higher or lower levels on demand.


That's a fair point, but I don't consider that "cheating" any more than Hashlife [1] (which it's based on) is cheating. It's an ingenious trick that guarantees that what's displayed is exactly the same pattern as if all of the infinitely-many higher and lower levels had been simulated, in finite time. The rules of the cellular automaton are never broken, only elided.

In a metaphorical way, it reminds me of the "tying the knot" trick in pure functional languages like Haskell, to turn an infinite computation into a finite data structure.

[1]: https://en.wikipedia.org/wiki/Hashlife


Agreed, I think the key here is that the Game of Life is structured enough that many computational steps can be elided in this way. If it was more chaotic, this couldn't happen. The realization that GoL can be used to run one GoL cell in isolation is the brilliance here I think. Once you can decompose one single cell into GoL, you can also compose GoL into one cell and save computational cycles. Then suddenly it can be GoL all the way down.


A digression for anyone interested in Hashlife: I want to recommend Gosper's original paper [1] over the various other explanations of it. It is brief (6 pages), lucid, and was the paper that finally made me understand how hashlife works.

[1] https://www.lri.fr/~filliatr/m1/gol/gosper-84.pdf


Welllll, there seems to at least be some mathematical cheating in that this is representing a non-well-founded set. (Declare each pixel to be the set of subpixels at the next level down defining it, this forms an infinite descending chain).


I don't know the "tying the knot" trick, but I imagine it to be something like a proof by induction of self-simularity being exploited to share computation at different zoom levels.


I might be missing something, but I don't think you even need Hashlife for this. The pattern is regular enough that you could just flat out store a static (x, y, t, state) map of a single cell and apply it fractally in order to compute the state of any part of the map at any time in constant time. You don't even need to simulate it at all.


You may not consider it as cheating, but that's a reasonable interpretation barring pedantry and is likely what the parent comment was referring to.


It's no more cheating than the fact that 1 = 1/2 + 1/4 + 1/8 + 1/16 + ...

Despite the fact that you can never actually add up an infinite number of terms one by one, you can however, compute what the limit of the sum will be in a finite amount of time. The same principle applies to this simulation, in which it is computing the limit of the process.


Eliding intermediate strings of a term rewriting system when you can prove the answer without them isn't cheating in any sense of the term.


My point was that while it’s not cheating, you can easily infer “what they meant”, and as such don’t need to defend it’s lack of cheating.


There's a seriously incredible article on the guy's site where he explains how it works! It's very much worth a read, really cool stuff.

https://blog.oimo.io/2023/04/10/life-universe-en/


More intuitive if you zoom out: https://www.youtube.com/watch?v=xP5-iIeKXE8


It feels like cheating due to the first generation grid already being a complex pattern of spaceships, pulsars, breeders and replicators I think.


Makes me wonder if there's even smaller building blocks of the universe. Smaller than Photons, Gluons, Neutrinos, Electrons, Quarks and we just can't 'zoom in' enough to know about them.


[Stephen Wolfram sits up.]


Does it matter, if they have no discernible difference or effect than our current “simpler” models?


If our 'fundamental' physics is actually emergent from a lower layer then we might expect that our laws are actually leaky abstractions. Very occasionally things at the lower level will happen in an unusual way that causes the laws of physics to be broken at our level.


That is in fact what quantum physics showed.


I wonder how this app is perceived by people who under stand the rules of Game of Life, verses people who don't understand the rules.

I showed it to my kids and they were amazed and mesmerized, but I know they can't grasp the complicated cellular automata that is happening.


It's not complicated though


That’s the beauty of cellular automata. Simple interactions can give rise to complex effects.


The rules of the game are simple enough to explain, when I said complicated I meant the interactions of the system as a whole.

I mean, I don't really understand how a glider gun works.


Glider guns have a period of 30, so you could work them out on one tablet of graph paper if you wanted. Or just let a computer do it frame by frame and pay attention.

This isn't a rebuke at all btw, it's a suggestion, this is a fun and edifying way to spend some time. Don't know if your kids are old enough for it yet, or have the interest to play along, but you might enjoy it.


Watching some squares advance in this universe reminds me of the corporate grind.


Is it possible to build a macro simulation of the world of quantum mechanics? And then macro-macro...

BTW I think it is not possible but what is the difference between GoL and QM that makes QM so narrowly bound to a nanoscale.


Physicist here: yes, it is theoretically possible, but practically impossible because the complexity of a classical simulation of a quantum system scales exponentially in the physical size of the system.

It would be practically possible if the problem has useful symmetries, like only allowing 2-dimensional Hilbert spaces (qubits), and a set of possible transformations (e.g. Clifford+T gates) as we do in quantum computing. In fact one of the things we actually do that resembles what you are describing is quantum error correction, where codes are concatenated until the rate of logical errors becomes low enough.


Out of all the ways to replicate a game of life inside a game of life, there has to exist a "most efficient" one for a given size and speed. Something maybe akin to Carnot efficiency. I wonder if aspects of the maximum ratio of scale for space and speed apply to all "simulation inside simulation". And does it say something about our reality? Maybe Planck length is the smallest unit of length and lightspeed is the maximum speed irl and that tells us about what we can simulate and could be simulated from lol


For the experts in the house: would it be possible for this to wrap around, so the highest and lowest level join? A torus of GoLs? Can such a thing, assuming it exists, have a finite number of layers? Just curious, this is amazing.


At a very high level, this is simulating the Game of life at the appropriate resolution level based on an algorithm whose input parameters are the zoom level and your location in the space, similar to a fractal pattern. So I'm not sure what you mean by a "torus" of GoLs.


Have you heard of the thought experiment where a 2D plane is finitely sized instead of infinitely sized, but as you travel within the 2D plane, if you get to one edge, you wrap around to the opposite edge? Even though its size is finite, you can pick a direction and go that way forever.

If you sit in 3D space and look at this finite 2D plane, then it looks like (say) a rectangle. That's displeasing because from inside the plane, it's continuous, but from the outside, it looks discontinuous.

One way to get rid of that annoyance is to map the plane onto a torus. Then it looks continuous from the outside. It's no longer flat, which is un-plane-like, but you can't have everything in life.

Anyway, the zoom level of game of life is an infinite number line. But what if it repeats and can be represented as something that wraps around? You could think of it as a line segment that you wrap around into a circle (to join the two ends). So the same concept as mapping the plane onto a torus, except 1D instead of 2D.


Well... if we wrap around without meddling with time, it will be impossible. On the lowest level cells are switching much more frequently than on the highest level.

But if we allow ourselves to bend time, then probably... It would be like you zoom out and go back in time. My guess it is possible, but I still cannot wrap my head around infinite spatial dimensions of the field. We need infinity for that because without it will hit the problem of different cell count on the lowest level and the highest (which are represent the same sequences of states of GoL). I see no possible problems to buils such a "torus" but to be sure one needs to really prove it.


What does that mean


I guess what they mean is that the "zoom" would be cyclic, e.g. at the same time the game zoomed at 1x would look like the game zoomed at 101x, zoomed at 2x would look like 102x etc...

Totally different thing, but this makes me think of looping procedural animations, which are achieved by sampling noise on a circle (or walls of a cylinder in a 3d noise space).


It can't have a finite number of layers because of an argument very similar to the uncountability of reals.


To dispose of this briefly, the cardinality of computable functions is ℵ₀, and Life is a computable function. Although the parent question is underspecified (some good guesses as to what specifically is meant in sibling comments), no variation on that question could increase the ℵ number of the result.


If there is a pattern that repeats, that pattern can have a finite length.


Such patterns are of measure zero due to the uncountability of the reals.


I believe the comment above is talking about the game running as a simulation within another instance of the game. Each instance of the game has a state. Game G1 has state S1, game G2 has state S2, etc. I think they're asking if there's any S1 that can be chosen so that S2 = S1.

You might need 2 or more layers, so whatever number of layers you need (if this is possible, you'd have some sequence infinite sequence (moving through layers) like (S1, S1, S1, ...) or (S1, S2, S1, S2, ...) or (S1, S2, S3, S1, S2, S3, ...).

The length of the repeating pattern (subsequence) is going to be a positive integer, so I don't think real numbers are relevant, if that's the question.


So they still can exist. I don't think they meant that any such configuration would run, just one.


The empty board is a repeating pattern of length one.


The question was related to the simulation of game of life linked by the OP. E.g. Can a full simulation of game of life simulate itself.


Yes but the question is whether there are repeating non empty patterns. I don't think you've answered this? I don't know but I think that's a fascinating question.


Stuff like this always makes me think: what super structure do our brains form? Always end up concluding it’s the economy


So, do you think this was a twinkle in the back of Conways mind when he was scheming and coming up with the game?


Probably not! I draw your attention to a paragraph from Gardner's column which introduced the Game of Life:

> Conway conjectures that no pattern can grow without limit. Put another way, any configuration with a finite number of counters cannot grow beyond a finite upper limit to the number of counters on the field. This is probably the deepest and most difficult question posed by the game. Conway has offered a prize of $50 to the first person who can prove or disprove the conjecture before the end of the year. One way to disprove it would be to discover patterns that keep adding counters to the field: a "gun" (a configuration that repeatedly shoots out moving objects such as the "glider," to be explained below) or a "puffer train" (a configuration that moves but leaves behind a trail of "smoke"). I shall forward all proofs to Conway, who will act as the final arbiter of the contest.

https://www.ibiblio.org/lifepatterns/october1970.html

A related question is whether, after Bill Gosper won that conjecture a month later with the Gosper Glider Gun, did Conway then suspect that Life could be simulated in Life. I haven't been able to dig up a definitive answer but I suspect it's "yes".


I moved the time multiplier slider to 0.2x and scrolled quickly out. When I did I got stuck in this slow outward zoom that allowed time to tick and it presented the most beautiful infinitum simulation of life I've ever seen. My gosh this is cool. It just goes on and on and on forever!!!


This is mind blowing; I'm lucky that I've seen hashlife and life in life before, that these additional layers by themselves don't leave me stunned for days.


With Brave Shields turned on, this never loads ...

"https://www.googletagmanager.com/gtag/js?id=G-K6BVDSF3MT" is blocked and that causes the site to fail? If so, this is bad design.


Very beautiful. Could someone share a simple intuition how the infinite zoom works for computation? I'd imagine it is computing for only those pixels rendered on the screen, but cannot fully wrap what is happening (especially the smoothness here of the zooming in and out).


i think the freedom of zooming in and out is what deeper level of meditation feels like

computationally, what appears as the experience of “consciousness” is thus Anattā (not-self)

https://en.m.wikipedia.org/wiki/Anattā


> Uncaught TypeError: c[b[k]] is undefined

Firefox


For me this is an illustration that the simulation hypothesis is silly. Lower level of simulation doesn't need to have any api-s or system calls. There is no way to hack anything about underlying simulation nor learn anything about it or even about it's existance.


Incredible. Looks like DNA.

For some reason I want the ability to put a pixel and watch how it destroys the world :)


Adding one pixel at any level is the equivalent of adding me or infinite numbers of pixels, smaller and smaller levels. However, I think if you add in the pixel in a empty space at its level, it would simply disappear. I don't think it would cause any havoc. But, this is not an actual game of life. This is a PNG of many steps in a game of life. The computation power for actually making it a real game of life would be pretty big.


I find the following asymmetry interesting: if you pick a random spot and start zooming out, you will pass through interiors of both dead and living cells in some ratio. But if you start zooming in, pretty much all of the cells you pass through will be dead.


Yes, this is inconsistent. When you zoom in 10 levels and then zoom out 10 levels again, pretty much all cells you see will be dead. But if you continue to zoom out further than 10 levels, you will see some mix of live and dead cells again.

Zooming in is easily defined: when you zoom into an on-state OTCA metapixel, you can check which pixels that make up the metapixel are on and which are off [1]. Same deal for zooming into an off-state OTCA metapixel. The reason you are seeing mostly dead pixels is that most pixels inside an OTCA metapixel are off, so the chance of hitting a pixel that is on is slim.

Zooming out is more tricky: when zooming out of an on-state pixel, that pixel could be at many possible positions inside an on-state or off-state OTCA metapixel. In their blog post the author says that they randomly select from the possible options in a way that adds "diversity" [2]. I think this could be improved to align with the statistics of zooming in.

[1]: https://conwaylife.com/wiki/OTCA_metapixel [2]: https://blog.oimo.io/2023/04/10/life-universe-en/#fnref5


Except that even in dead space when you zoom in you find the borders of all cells, and each of those borders is just as alive as any other live cell. I kept feel like, if I zoomed in to either an always-on cell or an always-off cell I would enter into something noticeably more static, but actually each one was just as alive as any of the universe around it.


Yeah I found the same thing, does anyone have an explanation for that?


Flick the scroll wheel a few times and it will zoom out continuously. Amazing!

I want this (continuously zooming out) as a screensaver 20+ years ago (or today, I can probably figure out how to enable screensavers on a modern Linux system). It would be amazing.



coincidentally bumped into this time axis GoL animation today: https://www.instagram.com/reel/C2hoRnFsmQW


I was trying to figure out how they coded the game in the game, and it seems all code is "running" from the grid's lines..

Let alone they coded it, how do you go about debugging and unit testing such code?


Think my brain just exploded


ERROR> https://oimo.io/works/life/main.js(37): Uncaught Error: assertion error


This simulates my layman’s understanding of the holographic principle.


Just a heads-up, I think it needs WebGL. By default I turn it off on Firefox because I have a weird bug where sometimes Google Maps turns black. On Vivaldi it ran fine.


This is 100% one of the coolest things I've seen for a while.. It's amazing to see the structures that happens as you zoom out over and over again.


Is it necessary for the grid lines to be composed of the little moving things? At the next level up only the filled-in pixels are visible.


Found the answer. The OTCA metapixel is the invention from 2006 that allows Life pixels to be represented by nested Life structures.

So the answer is yes the whole structure depends on those border regions (which overlap neighbiring metapixel by one pixel.


I love this. Does this use a technique similar to what Noita devs did, and I guess most game devs, to only process visible areas?


Wow that is so cool. Fractal game of life! Is this just a very specific configuration that repeats in a fractal way?


Yes! The delightful reason why this configuration can repeat within itself is that this Game of Life pattern is a machine with the rules of Game of Life built into it. It's calculating and displaying the game step-by-step. If you watch the machinery you can see the "data" flying around between cells and then the cells turning on and off.

This pattern isn't unique – you could certainly come up with infinitely many more machines in Game of Life that do the same thing. But yes, most Game of Life patterns aren't fractal like this.


Im mindblown and deeply thinking about existence now. Will probably end up with a headache if I continue so


Please implement the ability to link to a particular viewport (insensitive to exact viewing hardware)


That entire website is something.


Is this the simplest construction of a self-simulating game of life?


No. The centre of each meta-cell is full or empty to display the state of the cell. You could remove all that and it would still be simulating the Game of Life, it would just be hard to tell what was happening without zooming in.


Wow! This is one of the coolest things I've seen in a while.


Works on Edge but doesn't appear to be working on Firefox


works fine for me on ff/w10


This gave me a feeling of infinite computing power.


This proves it won’t take much to simulate reality.


Indeed. Life and universe and everything is 42


Reminds me of the animations in The Animatrix


This is so awesome :heart_eyes:!!


That is an absolutely beautiful bit of work.


thats really interesting, so cool how people seem to always add interesting features to the game of life


Impressively cool!

Would also make a nice screensaver.


Whelp, there goes my afternoon.


Okay, this is amazingly cool.


Oh my lord this is amazing.


Does this count as a quine?


Fascinating


I mean this in the best way possible, this is the best mind-trip I've seen in weeks.


There is a video by veritasium that concludes with this animation. It gives you goosebumps.


very beautiful application of games of life as computational tools, simulations of simulations of simulations.

you're hired



I get the same error on Firefox 124.0. It works on Chrome 121 to 123.


I'm getting the same error in Firefox


Works on Safari for me.


This is really cool, leaves me wondering about the fabric of the universe itself

Could we be living in a infinitely recursive simulation?


If anyone is interested in reading about this idea, I recommend Stephen Wolfram's "A New Kind of Science" [0] and Max Tegmarks's "Our Mathematical Universe" [1].

[0] https://www.wolframscience.com/nks/

[1] https://space.mit.edu/home/tegmark/mathematical.html


Oh no what have you done


The Computational Beauty of Nature, too among:

https://github.com/gwf/CBofN


PBS SpaceTime just did a piece on the theory of a holographic universe yesterday.

https://youtu.be/DoCYY9sa2kU


I agree that this is really cool, but this is a very contrived situation where the entire universe is arranged in such a way as to form a sort of fixed point. The vast majority of configurations of the Game of Life or of the real world are not fixed points and would break the clever tricks that are used to make this.

Also, because the simulation is infinite and speeds up and simplifies itself as you zoom out, you don't properly appreciate the fact that every layer is a thousand times slower than the layer that simulates it and contains a thousand times less cells (I don't know if it's a thousand). If you transposed this to the real world, it would take one kilogram of computing substrate an hour to simulate one gram of matter for 3.6 seconds and that's kind of useless.


Requiring infinite amounts of information to explain a finite universe? Occam's Razor comes down pretty hard on the side of "no".

People have tried to explain the universe with cellular automata and so far none of these systems has even been consistent with our current observations of the universe, let alone predicting some new behavior that would allow us to prove or disprove that the theory was true. (If your theory doesn't predict anything new, it's not a new theory at all!)

Requiring infinite recursion of cellular automata would seem to make the whole problem much harder...


> Requiring infinite amounts of information to explain a finite universe? Occam's Razor comes down pretty hard on the side of "no".

A system whose fundamental nature can be modified / controlled by ideas spawned within the system itself would be extremely cool.

I think a decent argument could be made that we may be in just such a system.


One of the interesting takeaways of this simulation is that it isn't built upon an infinite amount of information.

This simulation is a finite amount of information being used to describe an infinitely large simulation.


Since when is the universe finite?


Most current models of the universe suggest that it occupies a volume and has a finite number of particles. But these are just models based on observations and constraints.


There is no dispute that the observable universe is as you describe, but there is absolutely no consensus as to whether the universe is finite or infinite.


The observable universe is the universe, for all intents and purposes.


That's not true in the context of big bang cosmology. It's true that today we would not be able to observe things beyond the observable universe by definition, and so there's not much purpose in reasoning beyond today's observable universe, but the observable universe changes over time and when reasoning about the early universe there would be differences between a finite universe and an infinite universe.


The Big Bang involved a finite amount of energy and created a finite amount of matter. New energy cannot be created. Therefore the universe is finite.


You're kind of just making stuff up here. In particular the assertion that the big bang involved a finite amount of energy is entirely unfounded.

It's not that your statement is false, but that there is absolutely no consensus on the matter.

Some physicists make strong arguments that at the big bang the total energy of the universe was 0:

https://en.wikipedia.org/wiki/Zero-energy_universe


Well, we don't have the tech to build such a simulator ourselves, so we'd have to be a leaf node of the simulation tree, that has yet to run long enough to discover how to spawn the next levels. But I guess not all leaves are successful at spawning - some just self-destruct.


Seems most likely, but why is there anything at all to begin with?

.. a feeling deep in the pit of my stomach.

Does anyone else sometimes get these "intuitive flashes of insight" - like your brain configures itself in a pattern that "lifts the veil".

I've been thinking of starting meditating to stabilise or cultivate this state if possible because i've feel like i've been losing this slightly psychedelic ability since i was a kid.

Most often i get it in the hypno/hypopompic phases, sudden flashes of eureka that disappears just as fast, like a loud echo of "wow this is existance", "time is unbelievably deep", "demensions and perspective are bizarre in essence", "is this just a fraction of a shared dream" etc.


Why shouldn't stuff be allowed to spontaneously come into existence? Why should there be any rules at all to begin with? If there is truly nothing, then there isn't any rule to force the nothing to stay nothing. So the question becomes "how was the universe chosen to be this way, rather than some other way?". The choice must be made, but there is no objective reason to prefer any option over any other. "Nothing exists" is a simple answer, but simplicity is not objectively preferred.

I think the presence of this subjective choice forces a subjective experience into existence with the free will to decide it. Though I haven't a clue how the characteristics of the experience are chosen - that's also a subjective choice. It's subjective choices all the way down.


If you wanna get really lost, consider how the 'aha' feeling could itself be illusory and indicative of nothing at all. Similar to how everything in a dream is convincingly real. Or how ideas sound better when you're high. 'Aha' is not a reliable narrator.

My challenge to people chasing 'aha', is to see how long you can stay in the present moment.


My thought is that ‘things just exist’ and the problem is the dimension we experience things in.

Does that make any sense?






Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: