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".
"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."
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.
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!)
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.
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.
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.
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)
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.
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.
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 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.
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.
> 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.
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..
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.
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).
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.
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.
> 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.
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.
> 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.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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”.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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].
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...
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.
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.
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.
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...