Game of Life, simulating itself, infinitely zoomable
oimo.io
oimo.io
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...
> 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".
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."
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.
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?
> 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.
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 nearly clicked away but went in and was fricken mesmerized by this.
It’s incredible.
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.
Will try in a few days.
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.
At some point I should really do more with it and make a game or something.
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/
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.
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).
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.
Is this analogous to cancer? Would be interesting to see it develop and even if any ‘correction’ or ‘immune system’ type effects happens.
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.
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.
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.
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.
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.
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 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.
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.
AlecsForum : https://www.instagram.com/reel/C2hoRnFsmQW/
(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.
Though it is working with uBlock origin(default settings)..
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.
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?
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.
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.
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.
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.
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.
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 build structures within the GoL rules that implement the GoL rules, so…
sounds like GP is aware of that fact :)
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.
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.
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.
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.
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.
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.
I mean, I don't really understand how a glider gun works.
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.
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.
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.
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).
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.
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.
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.
> 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".
"https://www.googletagmanager.com/gtag/js?id=G-K6BVDSF3MT" is blocked and that causes the site to fail? If so, this is bad design.
computationally, what appears as the experience of “consciousness” is thus Anattā (not-self)
Firefox
For some reason I want the ability to put a pixel and watch how it destroys the world :)
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
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.
Let alone they coded it, how do you go about debugging and unit testing such code?
So the answer is yes the whole structure depends on those border regions (which overlap neighbiring metapixel by one pixel.
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.
Would also make a nice screensaver.
you're hired
Could we be living in a infinitely recursive simulation?
.. 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.
Does that make any sense?
My challenge to people chasing 'aha', is to see how long you can stay in the present moment.
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.
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...
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:
This simulation is a finite amount of information being used to describe an infinitely large simulation.
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.
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.