This is really cool, leaves me wondering about the fabric of the universe itself
Could we be living in a infinitely recursive simulation?
This is really cool, leaves me wondering about the fabric of the universe itself
Could we be living in a infinitely recursive simulation?
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.
It can't have a finite number of layers because of an argument very similar to the uncountability of reals.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
More intuitive if you zoom out: https://www.youtube.com/watch?v=xP5-iIeKXE8
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.
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...
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.
Its the universe! https://m.youtube.com/watch?v=ycvlJ9XMd94&pp=ygUWc2ltcHNvbnM...
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.
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?
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.
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.
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.
Weird, I viewed it on firefox with no issue. MacOS, latest version of firefox, mostly just privacy blocking extensions.
Does not work for me either, Firefox on Windows. But I'm getting a different error: this.frames.vb[k] is undefined
Weirdly it works fine for me in Firefox but just stays loading forever in Chrome.
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.
Same, does not work for me on Android Firefox
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.
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 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?
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.
unfortunately it doesn't load: Uncaught TypeError: c[b[k]] is undefined add https://oimo.io/works/life/main.js:49 yg https://oimo.io/works/life/main.js:37 kf https://oimo.io/works/life/main.js:60 onload https://oimo.io/works/life/main.js:223 Ug https://oimo.io/works/life/main.js:223 kf https://oimo.io/works/life/main.js:60 R https://oimo.io/works/life/main.js:59 R https://oimo.io/works/life/main.js:60 Cb https://oimo.io/works/life/main.js:33 Vg https://oimo.io/works/life/main.js:73 <anonymous> https://oimo.io/works/life/main.js:242 <anonymous> https://oimo.io/works/life/main.js:242
I'm getting the same error in Firefox
I get the same error on Firefox 124.0. It works on Chrome 121 to 123.
Works on Safari for me.
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?
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.
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”?
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…
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.
People have built explicit turing machines in GoL, so it certainly is Turing-complete.
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.
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.
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.
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.
Absolutely incredible.
Indeed. Just looking at and zooming around is incredibly thought-provoking.
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?
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.
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.
This proves it won’t take much to simulate reality.
Indeed. Life and universe and everything is 42
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.
Works on Edge but doesn't appear to be working on Firefox
works fine for me on ff/w10
Watching some squares advance in this universe reminds me of the corporate grind.
So, do you think this was a twinkle in the back of Conways mind when he was scheming and coming up with the game?
very beautiful application of games of life as computational tools, simulations of simulations of simulations.
you're hired
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.
Previous discussion: https://news.ycombinator.com/item?id=33978978
Im mindblown and deeply thinking about existence now. Will probably end up with a headache if I continue so
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.
Okay, this is amazingly cool.
ERROR> https://oimo.io/works/life/main.js(37): Uncaught Error: assertion error
Does this count as a quine?
Is this the simplest construction of a self-simulating game of life?
Stuff like this always makes me think: what super structure do our brains form? Always end up concluding it’s the economy
Reminds me of the animations in The Animatrix
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)
That is an absolutely beautiful bit of work.
This gave me a feeling of infinite computing power.
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?
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...
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
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.
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.
My thought is that ‘things just exist’ and the problem is the dimension we experience things in.
Does that make any sense?
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.
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
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.
https://en.wikipedia.org/wiki/Turtles_all_the_way_down
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.