[HN Gopher] Game of Life, simulating itself, infinitely zoomable
       ___________________________________________________________________
        
       Game of Life, simulating itself, infinitely zoomable
        
       Author : surprisetalk
       Score  : 906 points
       Date   : 2024-03-23 13:24 UTC (9 hours ago)
        
 (HTM) web link (oimo.io)
 (TXT) w3m dump (oimo.io)
        
       | zenmaster10665 wrote:
       | Wow that is so cool. Fractal game of life! Is this just a very
       | specific configuration that repeats in a fractal way?
        
         | monitron wrote:
         | 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.
        
       | a-ungurianu wrote:
       | 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"?
        
         | dartos wrote:
         | 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...
        
         | Filligree wrote:
         | People have built explicit turing machines in GoL, so it
         | certainly _is_ Turing-complete.
        
           | moritzwarhier wrote:
           | > 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 :)
        
             | Filligree wrote:
             | I _think_ that was edited in. Not sure at this point.
        
         | OscarCunningham wrote:
         | 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.
        
         | SamBam wrote:
         | 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.
        
         | samatman wrote:
         | 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.
        
       | inthemiddle wrote:
       | Previous discussion:
       | https://news.ycombinator.com/item?id=33978978
        
       | nico wrote:
       | This is really cool, leaves me wondering about the fabric of the
       | universe itself
       | 
       | Could we be living in a infinitely recursive simulation?
        
         | a-r-t wrote:
         | 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
        
           | hackinthebochs wrote:
           | Oh no what have you done
        
         | kossTKR wrote:
         | 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.
        
           | mentos wrote:
           | My thought is that 'things just exist' and the problem is the
           | dimension we experience things in.
           | 
           | Does that make any sense?
        
           | a13o wrote:
           | 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.
        
           | a_cardboard_box wrote:
           | 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.
        
         | TomSwirly wrote:
         | 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...
        
           | mseepgood wrote:
           | Since when is the universe finite?
        
             | krapp wrote:
             | 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.
        
               | Kranar wrote:
               | 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
        
             | dekhn wrote:
             | 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.
        
               | Kranar wrote:
               | 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.
        
               | krapp wrote:
               | The observable universe _is_ the universe, for all
               | intents and purposes.
        
               | Kranar wrote:
               | 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.
        
           | Kranar wrote:
           | 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.
        
           | mistermann wrote:
           | > 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.
        
         | politician wrote:
         | PBS SpaceTime just did a piece on the theory of a holographic
         | universe yesterday.
         | 
         | https://youtu.be/DoCYY9sa2kU
        
         | SigmundA wrote:
         | https://en.wikipedia.org/wiki/Turtles_all_the_way_down
        
         | breuleux wrote:
         | 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.
        
         | HarHarVeryFunny wrote:
         | 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.
        
         | monktastic1 wrote:
         | Obligatory: https://qntm.org/responsibility
        
       | screamingninja wrote:
       | Does not work for me in Firefox: `Uncaught TypeError: c[b[k]] is
       | undefined`. Opens normally in the other major browser.
        
         | tedivm wrote:
         | Weird, I viewed it on firefox with no issue. MacOS, latest
         | version of firefox, mostly just privacy blocking extensions.
        
         | Cheer2171 wrote:
         | Same, does not work for me on Android Firefox
        
         | TomSwirly wrote:
         | 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.
        
         | kleiba wrote:
         | Does not work for me either, Firefox on Windows. But I'm
         | getting a different error: this.frames.vb[k] is undefined
        
         | hetman wrote:
         | Weirdly it works fine for me in Firefox but just stays loading
         | forever in Chrome.
        
         | nalinidash wrote:
         | 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)..
        
           | rezmason wrote:
           | 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.
        
         | monktastic1 wrote:
         | For me it never loads on Android Chrome.
        
           | matsemann wrote:
           | Firefox it shows "Loading..." but never goes on. On Chrome
           | the page never even loads. Weird.
        
         | kilroy123 wrote:
         | Same in Brave.
        
       | nojs wrote:
       | This is amazing, more detail about how it works:
       | http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1
        
         | waitforit wrote:
         | And by the author of this version:
         | https://blog.oimo.io/2023/04/10/life-universe-en/
        
           | destring wrote:
           | 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.
        
             | Recursing wrote:
             | Why do you write that they're only an undergraduate
             | student? They just finished their PhD
             | https://twitter.com/shr_id/status/1770769090719731873
        
       | kzrdude wrote:
       | 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.
        
       | HackerLemon wrote:
       | Works on Edge but doesn't appear to be working on Firefox
        
         | dreen wrote:
         | works fine for me on ff/w10
        
       | jader201 wrote:
       | 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".
        
         | teraflop wrote:
         | 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.
        
           | TomSwirly wrote:
           | 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.
        
             | teraflop wrote:
             | 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
        
               | ShamelessC wrote:
               | 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.
        
               | Kranar wrote:
               | 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.
        
               | samatman wrote:
               | 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.
        
               | Aurelius108 wrote:
               | 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.
        
               | karmakaze wrote:
               | 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.
        
               | breuleux wrote:
               | 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.
        
               | thatguysaguy wrote:
               | 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).
        
               | EdwardCoffin wrote:
               | 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
        
         | nolist_policy wrote:
         | More intuitive if you zoom out:
         | https://www.youtube.com/watch?v=xP5-iIeKXE8
        
         | epiccoleman wrote:
         | 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/
        
         | spacebacon wrote:
         | It feels like cheating due to the first generation grid already
         | being a complex pattern of spaceships, pulsars, breeders and
         | replicators I think.
        
       | mvcalder wrote:
       | 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.
        
         | dbdudbdiddjc wrote:
         | What does that mean
        
           | rpastuszak wrote:
           | 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).
        
         | supriyo-biswas wrote:
         | 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.
        
           | adrianmonk wrote:
           | 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.
        
         | 4ad wrote:
         | It can't have a finite number of layers because of an argument
         | very similar to the uncountability of reals.
        
           | adrianmonk wrote:
           | If there is a pattern that repeats, that pattern can have a
           | finite length.
        
             | 4ad wrote:
             | Such patterns are of measure zero due to the uncountability
             | of the reals.
        
               | lostmsu wrote:
               | So they still can exist. I don't think they meant that
               | any such configuration would run, just one.
        
               | 4ad wrote:
               | The empty board is a repeating pattern of length one.
        
               | svara wrote:
               | 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.
        
               | lostmsu wrote:
               | 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.
        
               | adrianmonk wrote:
               | 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.
        
           | samatman wrote:
           | To dispose of this briefly, the cardinality of computable
           | functions is 0, 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.
        
         | ordu wrote:
         | 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.
        
       | grugagag wrote:
       | Im mindblown and deeply thinking about existence now. Will
       | probably end up with a headache if I continue so
        
       | indrex wrote:
       | This proves it won't take much to simulate reality.
        
         | p0w3n3d wrote:
         | Indeed. Life and universe and everything is 42
        
       | xyst wrote:
       | Watching some squares advance in this universe reminds me of the
       | corporate grind.
        
       | aidos wrote:
       | That is an absolutely beautiful bit of work.
        
       | dvh wrote:
       | ERROR> https://oimo.io/works/life/main.js(37): Uncaught Error:
       | assertion error
        
       | nbittich wrote:
       | 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
        
         | doug_durham wrote:
         | Works on Safari for me.
        
         | linkergames wrote:
         | I get the same error on Firefox 124.0. It works on Chrome 121
         | to 123.
        
         | y-c-o-m-b wrote:
         | I'm getting the same error in Firefox
        
       | state_less wrote:
       | 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.
        
         | rolisz wrote:
         | Heh, I think my record is three level deeps (dream inside of a
         | dream inside of a dream). Inception ftw.
        
           | waltbosz wrote:
           | 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.
        
             | jessekv wrote:
             | 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?
        
             | maxcoder4 wrote:
             | This honestly sounds concerning. I would get mad if I
             | regularly experienced seemingly days long sleep
             | interspersed with fake awakenings.
        
         | jessekv wrote:
         | 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?
        
       | CHMODX wrote:
       | 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?
        
       | vbezhenar wrote:
       | Incredible. Looks like DNA.
       | 
       | For some reason I want the ability to put a pixel and watch how
       | it destroys the world :)
        
         | mickdarling wrote:
         | 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.
        
       | monitron wrote:
       | 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...
        
         | px43 wrote:
         | 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.
        
           | Mogzol wrote:
           | 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/
        
         | dontreact wrote:
         | 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?
        
           | hateful wrote:
           | Exactly - time is relative to our reference frame, so that
           | would be the best arbitrary choice.
        
             | monitron wrote:
             | 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 :)
        
               | mickdarling wrote:
               | 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.
        
               | andoando wrote:
               | Its the universe! https://m.youtube.com/watch?v=ycvlJ9XMd
               | 94&pp=ygUWc2ltcHNvbnM...
        
               | ForHackernews wrote:
               | Reminds me of https://www.youtube.com/watch?v=0fKBhvDjuy0
        
               | mistermann wrote:
               | Or this:
               | 
               | https://youtu.be/4TI1onWI_IM?si=uBt9Gob0gqnFk8lP
        
             | layer8 wrote:
             | The levels are stationary with respect to each other
             | though, so in the same reference frame.
        
         | sfn42 wrote:
         | I'm fairly sure it's all an illusion.
        
           | floatrock wrote:
           | 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.
        
             | samstave wrote:
             | 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?
        
         | floatrock wrote:
         | 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.
        
         | jhrmnn wrote:
         | 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.
        
           | leetcrew wrote:
           | 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.
        
           | layer8 wrote:
           | 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.
        
         | edwinjm wrote:
         | 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
        
         | layer8 wrote:
         | 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!)
        
       | gregorymichael wrote:
       | 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.
        
       | archibaldJ wrote:
       | 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 Anatta (not-self)
       | 
       | https://en.m.wikipedia.org/wiki/Anatta
        
       | gdubs wrote:
       | 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?
        
         | anvandare wrote:
         | 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.
        
           | cscurmudgeon wrote:
           | 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.
        
             | Nevermark wrote:
             | 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.
        
             | mistermann wrote:
             | Cognitive services are disabled (or have bugs injected)
             | when consciousness is pointed at itself.
        
         | voiceblue wrote:
         | 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
        
       | MrYellowP wrote:
       | This gave me a feeling of infinite computing power.
        
       | gbolcer wrote:
       | Okay, this is amazingly cool.
        
       | whartung wrote:
       | So, do you think this was a twinkle in the back of Conways mind
       | when he was scheming and coming up with the game?
        
         | samatman wrote:
         | 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".
        
       | asow92 wrote:
       | Reminds me of the animations in The Animatrix
        
       | PhilipRoman wrote:
       | 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.
        
         | zengid wrote:
         | 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.
        
           | OmarShehata wrote:
           | 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.
        
         | tombert wrote:
         | 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.
        
         | LeftHandPath wrote:
         | 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/
        
           | zilti wrote:
           | Sounds like a job for HTMX
        
         | earslap wrote:
         | 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.
        
       | waltbosz wrote:
       | 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.
        
         | posix86 wrote:
         | It's not complicated though
        
           | catlifeonmars wrote:
           | That's the beauty of cellular automata. Simple interactions
           | can give rise to complex effects.
        
           | waltbosz wrote:
           | 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.
        
             | samatman wrote:
             | 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.
        
       | andoando wrote:
       | 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.
        
         | jamiek88 wrote:
         | > 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.
        
           | andoando wrote:
           | 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.
        
           | Nevermark wrote:
           | 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.
        
             | andoando wrote:
             | I think he meant it in the sense that its a mutation that
             | propagates indefinitely. But yeah its a loose analogy.
        
           | catlifeonmars wrote:
           | Why would you expect corrective effects to occur?
        
         | OscarCunningham wrote:
         | 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.
        
           | jiggawatts wrote:
           | Reminds me of false vacuum decay.
        
       | jamiek88 wrote:
       | 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.
        
         | hesdeadjim wrote:
         | Absolutely incredible.
        
         | canjobear wrote:
         | Indeed. Just looking at and zooming around is incredibly
         | thought-provoking.
        
         | J_cst wrote:
         | I mainly read comments too... :)
        
       | drewfis wrote:
       | 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.
        
         | jordanpg wrote:
         | [Stephen Wolfram sits up.]
        
         | catlifeonmars wrote:
         | Does it matter, if they have no discernible difference or
         | effect than our current "simpler" models?
        
           | OscarCunningham wrote:
           | 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.
        
       | catlifeonmars wrote:
       | Does this count as a quine?
        
       | canjobear wrote:
       | Is this the simplest construction of a self-simulating game of
       | life?
        
         | OscarCunningham wrote:
         | 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.
        
       | mattxxx wrote:
       | very beautiful application of games of life as computational
       | tools, simulations of simulations of simulations.
       | 
       | you're hired
        
       | brrrrrm wrote:
       | Stuff like this always makes me think: what super structure do
       | our brains form? Always end up concluding it's the economy
        
       | fnordpiglet wrote:
       | This simulates my layman's understanding of the holographic
       | principle.
        
       | for_i_in_range wrote:
       | Whelp, there goes my afternoon.
        
       | ordu wrote:
       | 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.
        
         | ziofill wrote:
         | 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.
        
       | davelondon wrote:
       | Oh my lord this is amazing.
        
       | scotty79 wrote:
       | 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.
        
       | darreninthenet wrote:
       | Think my brain just exploded
        
       | anoncow wrote:
       | That entire website is something.
        
       | cochleari_major wrote:
       | 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.
        
         | SamBam wrote:
         | 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.
        
       | Snoupy wrote:
       | 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
        
       | blendergeek wrote:
       | 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.
        
       | reactordev wrote:
       | 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!!!
        
       | andrewfromx wrote:
       | the designer version:
       | https://www.tiktok.com/@alirezashahbazi.art/video/7122391438...
        
       | chrsw wrote:
       | Fascinating
        
       | GalaxyNova wrote:
       | Wow! This is one of the coolest things I've seen in a while.
        
       | cdchn wrote:
       | I mean this in the best way possible, this is the best mind-trip
       | I've seen in weeks.
        
         | cryptoegorophy wrote:
         | There is a video by veritasium that concludes with this
         | animation. It gives you goosebumps.
        
       | wigster wrote:
       | coincidentally bumped into this time axis GoL animation today:
       | https://www.instagram.com/reel/C2hoRnFsmQW
        
       | imranq wrote:
       | 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
        
       | flockonus wrote:
       | 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?
        
       ___________________________________________________________________
       (page generated 2024-03-23 23:00 UTC)