Create Artificial Life From Simple Rules - Particle Life

Sdílet
Vložit
  • čas přidán 9. 06. 2024
  • Source Code and Program:
    github.com/hunar4321/particle...
    Click here for a live demo:
    hunar4321.github.io/particle-...
    This project was inspired by: Jeffery Ventrella's Clusters www.ventrella.com/Clusters/ I don't have access to Ventrella's code but I guess the main difference of my project with the other particle life projects is that I didn't implement collision detection and this has simplified the simulation. Also, I added GUI controls to change the parameters in real-time. This allows easy fine-tuning & exploration, hence, I was able to find some never-seen-before patterns emerge form some extremely simple models of relations.
    The code here is probably an order of magnitude simpler than any other Artificial Life codes out there because I started this solely as an educational material for non-programmers and the general audience.
    Other related videos:
    Simulation Hypothesis: • Create a Universe From...
    Local Maxima: • Who Wins in a Simulati...
    Related topics:
    #programming #game #simulator #alife #life #evolution
    Particle Life Simulation
    Primordial Soup - Evolution
    Conway's game of life
    Cellular automata
    Self organizing patterns
    JavaScript programming
    ❌ Disclaimer: Please know that we do not place any of the ads on this video. Since we use copyright-protected music, ads are placed by CZcams automatically to generate revenue for the license holders of the music.
    Music in the video:
    Cjbeards - Fire and Thunder
    Death Note - Low of Solipsism
    Firefly in a Fairytale - Gareth Coker
    Buried Desire - Divine
    00:00 Simulation Demo
    02:40 Code Walkthrough
    08:28 The Program
    09:08 Explanation
    11:25 More Demos
  • Věda a technologie

Komentáře • 1,2K

  • @clfleishman
    @clfleishman Před rokem +1741

    If you came up with this you’re a genius. Even if you got inspiration from other projects making something with that little code that can simulate these complex emergent properties is a huge achievement

    • @brainxyz
      @brainxyz  Před rokem +567

      Thanks for the compliment. This project was inspired by Ventrella's Clusters (the link is in the descriptions). Once I wrote the code, I spent the entire month trying to make the code as concise as possible and as educational as possible. Hopefully, this presentation inspires more work on investigating emergent patterns from very simple rules.

    • @christianremboldt7028
      @christianremboldt7028 Před rokem

      czcams.com/video/makaJpLvbow/video.html

    • @HardcoreMontages
      @HardcoreMontages Před rokem +21

      no, this isn't an original idea.
      Code Parade did it first.

    • @reversev9778
      @reversev9778 Před rokem +167

      @@HardcoreMontages code parade was nowhere near the first

    • @commenturthegreat2915
      @commenturthegreat2915 Před rokem +258

      Guys, these things have existed for decades. Nearly every youtube coding series out there is drawing upon earlier research and isn't a breakthrough in of itself. The beauty here isn't "being original", it's presenting things in a simple and accessible way.

  • @ecliptic2ecliptic111
    @ecliptic2ecliptic111 Před rokem +538

    I've never seen an algorithm of this simplicity granting such lifelike behavior. Truly Impressive

    • @Mushele
      @Mushele Před rokem +13

      game of life

    • @estebanod
      @estebanod Před rokem +19

      @@Mushele game of life is nowhere near a living cell simulation

    • @Mushele
      @Mushele Před rokem +19

      @@estebanod neither is this

    • @Mushele
      @Mushele Před rokem +16

      @@estebanod the point is, the game of life shows very well, just like this demonstation that we see above, that a set of very simple rules can produce very complex and unpredictable behaviours(just like in real life)

    • @RavenMobile
      @RavenMobile Před rokem +18

      @@Mushele This is far closer to representing emergent life coming from simple rules than Conway's Game Of Life. I absolutely love Game Of Life, but this looks like what one sees from microscopes. Cells consuming other cells, cells losing their cell wall and leaking their insides, cells that are highly active, other cells that are mostly stagnant, etc.

  • @Daniel-Davies-Gonstead-Student

    As a person who has never coded before but is interested in biology this was really cool!

    • @ruffianeo3418
      @ruffianeo3418 Před rokem +7

      Computers and code are the most accessible facsimile to a generic laboratory. Be it some finance stuff, physics, biology, quantum mechanics - whatever - if you take an interest and want to see how an idea pans out, coding is the way to go. Frankly, it even teaches respect to all those scientists before the computer age, who managed to produce useful insights without computers :) But today, anyone should be able to code a little, so they can use it as a tool of learning.

  • @joshmyer9
    @joshmyer9 Před rokem +657

    I wonder how much more emerges if we make the rule coefficients a function of a common parameter (we can call it "temperature"), then have that variable go through a "day cycle" of sin(t). This might make some of the very unstable/twitchy patterns more stable for a bit, and vice-versa. Or make t itself a function of (x,y) and make warm/cool pockets with different stable patterns, swapping particles between them.
    Lots of neat stuff to play with here, thanks for sharing it!

    • @WomboBraker
      @WomboBraker Před rokem +7

      Thats a cool idea

    • @giannipiccioni8411
      @giannipiccioni8411 Před rokem +16

      slightly differences in the game rules with add exponentially more complex structures. Like in real life

    • @AlissonNunes
      @AlissonNunes Před rokem +10

      Isn't "temperature" the "value" of how much particles moves? At a certain point, some measurements that we use at normal level doesn't apply to molecular level

    • @AlissonNunes
      @AlissonNunes Před rokem +7

      The "temperature" increases by the sun that emits radiation (photons), which are more molecules... Or I'm just being dumb

    • @joshmyer9
      @joshmyer9 Před rokem +28

      @@AlissonNunes Not dumb, but I do think you're taking the model a little too literally (which his presentation kind of encouraged). This model is too simple to capture anything like that level of detail. It gives us big picture, super hand-wave-y patterns, which is neat, and helps guide one's thinking for more fine-grained problems.
      This is why I said "call it" temperature: it's a kinda-sorta analogue for temperature within the very coarse-grained model we're using.
      Honestly, my motivation is entirely to make it fun to watch for longer. It's a bummer that each model stabilizes to a static state, though. I'm mostly interested in finding ways to make it visually interesting for longer spans of time =)

  • @NorthernHurricane7
    @NorthernHurricane7 Před rokem +108

    While Conway's Game of Life has been impressive for a long time, the striking part of this adaptation is the organic way the movement, shapes, and patterns appear. There are a number of ways to use this approach to visualize concepts about chaos, probability, prediction, and determinism in systems. The first-principles development approach to set it apart from similar programs is the cherry on top. It looks great!

  • @mauritspuggaard4689
    @mauritspuggaard4689 Před rokem +19

    Currently studying computer science at university, and this dude is one of the reasons I love what I do and keeps getting inspired. Keep up the good work, you’re a legend!

  • @bencressman6110
    @bencressman6110 Před rokem +44

    Dude, this was so, so well done! From the pacing, to the code walkthrough, open source, pop culture reference, music, video length. Superb. I love artificial life, and this is so exciting to see. You discovered some really dope paramaters

  • @katungwakioko465
    @katungwakioko465 Před rokem +22

    I'm a python and coding beginner and such projects are an inspiration to continue learning and not give up. To me, this is a masterpiece even if I don't understand the code. Thank you.

  • @andreasnesse04
    @andreasnesse04 Před rokem +39

    Now make it 3d

  • @95Geli
    @95Geli Před rokem +3

    Its a crime that this channel doesnt have wayy more subscribers.

  • @silentnight.official4261
    @silentnight.official4261 Před 5 měsíci +3

    I got a tell you. It was perfect. Perfect. Everything, down to the last a few detail.

  • @nicolasgaritagoitia5536
    @nicolasgaritagoitia5536 Před rokem +4

    This is the best video i've seen on CZcams for a very, very long time

  • @GuilherminoBr
    @GuilherminoBr Před rokem +36

    This is one of the coolest life like simulations I have ever seen

  • @SeanStClair-cr9jl
    @SeanStClair-cr9jl Před rokem +61

    Wow. I've seen these kinds of simulations before, but what I was not expecting was this level of production and entertainment. Cool stuff, hope your channel gets the subs it deserves!

  • @hannahstennes6220
    @hannahstennes6220 Před 6 měsíci +2

    This is amazing and beautiful and I can't wait till I get mine fully up and running. I hope am am able to save people a few hours by suggesting to go right to github for finding the actual code to copy down and just use the video for what order to write everything up.

  • @carel91
    @carel91 Před rokem +26

    This is not just perfect presentation of amazing simulation with source code, code walkthrough tutorial, but also metaphysical essay with humor and great images. I am really thankful for your work. Thank you. I will be pleased to try your program and to code my from your tutoring. Amazing

  • @rsanche4726
    @rsanche4726 Před rokem +5

    this is exactly what all programming tutorials should be. Simple, clean, fast, to the point, and showing how it works. Thank You!

    • @Tubeytime
      @Tubeytime Před rokem

      Did it work for you? I followed along and it didn't work.

    • @mememanfresh
      @mememanfresh Před rokem

      i cant get html to display in chrome bruh its blank

    • @mememanfresh
      @mememanfresh Před rokem

      now i cant yellow particles to appear i give up

  • @rfly-fpv
    @rfly-fpv Před rokem +9

    Oh man, this is truly amazing! First time ever I see code explained in such way with examples on the right. Really you deserve millions likes on this video

  • @mehrshadfarahani6071
    @mehrshadfarahani6071 Před rokem +4

    I don't know what to say man, it just changes the way I look at the universe. Thank you for sharing this. Great job.

  • @PokeKnoxDSRomHacker
    @PokeKnoxDSRomHacker Před rokem +2

    Don't know why this is on my homepage but I'm glad it is!

  • @heliquackterstudios
    @heliquackterstudios Před rokem +4

    "I know this universe is set up against me" - Had a solid chuckle 😂. Rock on brother, really nice work.

  • @Eichro
    @Eichro Před rokem +6

    I really appreciate how you show step by step how to achieve it with plain vanilla js

  • @i_never_asked_for_an_alias

    You Sir have that special talent of not only making something very intersting but also explain it in a simple way.

  • @pocketallen1051
    @pocketallen1051 Před rokem +12

    it's real amazing product I have seen. It demonstrates how complexity is emergent from simple rules. Thank you

  • @bacillusanthracis9073
    @bacillusanthracis9073 Před rokem +16

    Super interesting. In some of these simulations, there even were shapes ressembling cell division and macrophages phagocyting !

  • @aliceberethart
    @aliceberethart Před rokem +6

    This video is as much a lesson in biology, programming, math, astronomy, and physics as it is a lesson in literature.

  • @thomassheldon2365
    @thomassheldon2365 Před rokem +2

    WOW!!! I’m only halfway through the video but I’m already mindblown! It’s amazing how such a complex system can arise from so few rules!

  • @uuquuuquu5235
    @uuquuuquu5235 Před rokem +1

    This is by far the best video I have ever seen explaining the idea of emergence. Kudos to you.

  • @JB-fh1bb
    @JB-fh1bb Před rokem +4

    I don’t know whether I have enough experience to understand what might be complex for others, or whether it’s just that simple, but whatever it is I’m stunned by how simple the explanation is and how beautiful the results are. 10x points for starting from 0 with a single empty html file.

  • @cogtortion
    @cogtortion Před rokem +5

    Thank you for this, amazing video, great explanation, I certainly did not expect to actually be shown the code let alone a full rundown from scratch. Please make more videos like these, the motivation it brings to open up a code editor is next level, these are the types of videos I wish I could find more of, perfect pacing, i like how you sped up most of the coding to match your explanation as you went. Other people would have turned this into a 3 hour tutorial including all their mistakes, fixes, overexplanation, etc. Very wonderfully produced. You sir have an amazing brain. Thanks again.

  • @goaty1208
    @goaty1208 Před rokem +1

    This has kickstarted an amount of coding and phylosophical questions inside of me that are beyond comprehension. This is amazing.

  • @EgonFarkas
    @EgonFarkas Před rokem

    Hihetetlen, milyen egyszerű csak maga a létezés, a kölcsönhatások elkerülhetetlenek.
    Kiváló leképezése még ennek is, amit írtam..
    Gratulálok!

  • @Lunsterful
    @Lunsterful Před rokem +3

    Sublime presentation, impressive on several fronts, well done. I've seen explorations of this concept from Conway, Hoftstadter, and Wolfram as you mentioned, but I don't think I've seen anything close to this level of elegance and complexity of emerging behaviour. I think the key differentiator is adding clean, physical laws with an emphasis on simplicity - and then allowing time to take over. You also make many astute comparisons and analogies in this video. Imagine how complex our simulations could be in decades to come!

  • @n00dles79
    @n00dles79 Před rokem +3

    I am unsure if I have ever seen anything this amazing. Thank you so much for the open GitHub file man you’re a legend. I’m at my desk screaming.

  • @alexhuang7681
    @alexhuang7681 Před rokem +2

    While looking at the thumbnail, it's complexity put me off from watching the video, thinking "I'm probably not going to understand a thing". But upon actually watching it, you showed that the rules are so simple that you could go through writing every line of code in a small portion of the video. Stunning.

  • @archilious
    @archilious Před rokem

    Amazing job! Thanks! I looooved the "Explanation" section specially. Really well done. Also the ending show with the music was so matching. Can't wait to see your future videos.

  • @nick2629
    @nick2629 Před rokem +4

    You are a genius

  • @karmatical5837
    @karmatical5837 Před rokem +5

    I like how you made and explained the code part by part, i believe even a beginner can understand your video and with your explanation i can convert this concept to other languages and plataforms and apply my own ideas, thanks for helping.
    Someone already said, but you are a Genius, you have a lot of potential and you are using it for good. Keep the amazing work.

  • @operandassembler
    @operandassembler Před rokem +1

    Just wanted to stop by and say this is the coolest fucking thing I've seen as a programmer for a long time. Got me excited even. I want to make one of my own now! Thanks stranger!

  • @tranquillities1205
    @tranquillities1205 Před rokem

    Excelent video! This is the first time I have seen simple code come together in such a beautiful way thank you.

  • @rudawabdulrahman1010
    @rudawabdulrahman1010 Před rokem +7

    I can see that your content quality is improving. Keep it going.

  • @nowar452
    @nowar452 Před rokem +313

    Very cool project!
    It's not really a life simulator. It's more like simulating chemistry from another dimension.
    If you add here not only particles, but also waves, you get a quantum physics simulator!

    • @lemming7188
      @lemming7188 Před rokem +7

      How could one go about adding waves to a program like this?

    • @francovillarreal7266
      @francovillarreal7266 Před rokem +39

      @@lemming7188 Divide the screen into a grid, and give each cell a vector, make the cells influence their neighbors, make them change color depending on the intensity of the vector.
      Some thing like that, thou I'm sure there are dozens of ways of implementing this, and probably all of them run faster than my idea.

    • @nowar452
      @nowar452 Před rokem +7

      @@lemming7188 wery good question. My suggestion about waves is more joke than offer. But i think waves could be a carrier's of powers like in real world. The simulation have a lot of powers. Every link between particles with different color is power. Every power would be an elastic plane and every particle would pertrub the plane. Waves move on plane and influence to other particles.
      Of course, it is very complicated. And it will be absolutely not same programm.

    • @christhorne116
      @christhorne116 Před rokem +8

      Hmmm whoop whoop pump the brakes there sonny…just adding waves will NOT give you QM

    • @zarinavarina8580
      @zarinavarina8580 Před rokem +1

      @@christhorne116 Adding stochasticity to maxwellian electrodynamics is enough to produce the results of QM in the linear regime. Adding non-local sources (wave-like rather than point-like) to that would probably be enough to capture at least some of the non-linear QM phenomena.

  • @codeunited5905
    @codeunited5905 Před rokem +1

    I came here to know about Particle Life and learned more philosophy. Tysm for the video, it looks absolutely splendid!

  • @sammyclassicstarfoxfan9827

    This is by far the most interesting cell simulation i have seen

  • @cedricpelsma6012
    @cedricpelsma6012 Před rokem +3

    This is one of the coolest things I have seen in a while.

  • @vornamenachname597
    @vornamenachname597 Před 5 měsíci +2

    Wow! That stuff around 12:28 really resembles mitosis, crazy!

  • @paulodonovanmusic
    @paulodonovanmusic Před rokem

    this is the coolest javascript I've seen in my 10 years of coding. Amazing, can't wait to try it!

  • @AM-ui9mc
    @AM-ui9mc Před rokem +1

    I’ve been looking for this exact type of simulation for years!! Thank you thank you

  • @OutbackCatgirl
    @OutbackCatgirl Před rokem +26

    This is friggin cool. A "randomize" button in the C app would be amazing

    • @JB-fh1bb
      @JB-fh1bb Před rokem

      It might be a good first pull request to the repo

    • @waterpicker6879
      @waterpicker6879 Před rokem +1

      @@JB-fh1bb Its number 7 apprently.

    • @JB-fh1bb
      @JB-fh1bb Před rokem

      @@waterpicker6879 🎉

  • @mosaic34
    @mosaic34 Před rokem +3

    Wow I am impressed ! This is genius man. This is so meta and also shows how life actually is formed cause of different behaviour of particles!

  • @tmagrit
    @tmagrit Před rokem

    One of the most impressive images I've seen lately

  • @Pencil0fDoom
    @Pencil0fDoom Před rokem

    Spectacular. From core concept to implementation to presentation. This universe is stacked FOR you dude. You’ll be a yactillionaire before long.

  • @redstoneranger1404
    @redstoneranger1404 Před rokem +10

    What a great piece of work! This is even more amazing than Game Of Life. You HAVE to do a 3D version.

  • @dreadflow3155
    @dreadflow3155 Před rokem +3

    Because of the music, I kept waiting for him to say "And I will become the god of a new microworld"

  • @MarkAhlquist
    @MarkAhlquist Před rokem +1

    The online demo is great, thank you! It seems that every random rule-set has something interesting going on.

  • @konstantinabakumov5861
    @konstantinabakumov5861 Před rokem +1

    Wow, you so clearly demonstrated how life emerged with this simulation

  • @n0deguy
    @n0deguy Před rokem +10

    Wow. I’m really amazed of that little amount of views.. Your work is very cool, hope you get much more views and subs!

    • @brainxyz
      @brainxyz  Před rokem +7

      As I said in the video, this universe setup is against me!
      Edit: OK now the views have increased dramatically. The settings of this universe may not be against me 😅

    • @n0deguy
      @n0deguy Před rokem

      @@brainxyz Incredibly! xD

  • @chibula
    @chibula Před rokem +5

    The shakiness is purely becasue of the instability of explicit time stepping used in nemerical integration (an artifact). Also this is a perfect example to use webgl shaders to acceelrate (save particle position and velocity as rgba in a float texture, read them in vertex shader and update), render a quad with same amount of pixels mapping to the particles

  • @broncoxy
    @broncoxy Před rokem

    Man this made my entire morning, if not day; so fascinating!

  • @carlosgonzalez4112
    @carlosgonzalez4112 Před rokem +1

    these are amazing !! much love brother and thank u for the insights!!! watching everything come together is a trip n a half yall lmaoo

  • @masterrguy4465
    @masterrguy4465 Před rokem +3

    Please do an hour long video of just this! It's so satsifying.

  • @waltermcmain1732
    @waltermcmain1732 Před rokem +10

    i'm no physicist but these remind me a lot of how I imagine electron shells in atoms.

    • @larion2336
      @larion2336 Před rokem +1

      several of them resembled ice crystals at times too

    • @mikkirefur
      @mikkirefur Před rokem +1

      no such thing as electron shells in an atom.... think it more like a magnetic & dielectric field emanating from the atom, with the field having certain properties that can be "measured as electrons, and the size of the field." As the great physicists JJ Thompson stated, an electron is simply 1 unit of dielectric induction.

  • @KenoBeatZ
    @KenoBeatZ Před rokem +1

    This was... Mind-blowing !! 🤯
    First introduction to code, and I understood mostly everything that matters,
    in order to give life to all that "matter"'. Impressive !
    Thank you

  • @TheFishmonger2000
    @TheFishmonger2000 Před rokem +2

    This is very well done! Thank you for making and sharing this. I can't wait to show this to my students.

  • @BleachWizz
    @BleachWizz Před rokem +10

    4:50 if you just take out the sqrt you can correctly calculate it squared and it's actually removing code.

    • @mccvargues7792
      @mccvargues7792 Před rokem +1

      I came here to say that, taking a squareroot is a very expensive operation. But I also think that the behaviour will significantly change due to the distance being quadratic, which means that attraction over long distances will be way stronger.

    • @operandassembler
      @operandassembler Před rokem +3

      @@mccvargues7792 Just in case anyone reading this doesn't fully understand what y'all are talking about, they mean you square the check distance instead of taking the square root of the computed distance. So.. instead of if (CheckDistance < sqrt(dx^2 + dy^2)) you use if (CheckDistance^2 < (dx^2 + dy^2)) then, you are within the tested distance without having to call the computationally expensive sqrt function. Good suggestion you two!!

    • @BleachWizz
      @BleachWizz Před rokem +1

      @@mccvargues7792 I think yes but I think you said the opposite.
      he's using 1/d instead of 1/d^2
      if he excluded the sqrt d would become d^2
      and 1/d^2 would make the interaction between particles get weaker as distance increases than 1/d.
      So yes the behavior would change.
      But you'd be using the correct formula for gravity as he mentioned for less effort.
      And the interaction has become weaker for greater distances.

  • @williamihardwick2871
    @williamihardwick2871 Před rokem +3

    This is way cool! I’d love to see more stuff like this! It’d be interesting to see what kind of self-organizing patterns could emerge from more than 4 fundamental particles, and/or with additional dynamical interactions

  • @abhinavprajapati5962
    @abhinavprajapati5962 Před 9 měsíci +1

    I havent left a comment on a utube video for years but this has to be one of the simplest-coolest things ive watched on the platform

  • @patriciogesualdi7472
    @patriciogesualdi7472 Před rokem

    Very cool, not only from the technical perspective, but as a piece of content it's very well done and entertaining, thanks!

  • @AlanZucconi
    @AlanZucconi Před rokem +3

    Whoa! This is beautiful! 🤩

  • @RabRabNZ
    @RabRabNZ Před rokem +3

    Amazing. This is the game I've wanted since spore

  • @zbnmth
    @zbnmth Před rokem +1

    Glad to see complexity theory become more and more mainstream and well-explained

  • @uzuna4205
    @uzuna4205 Před rokem +2

    This is just beautiful. I am amazed by your work. This is so pure , elegant.. i admire you!

  • @ayior
    @ayior Před rokem +3

    This video is amazing and underrated. I've been following life simulations as a hobby for a couple of years now and this is one of the most interesting ones I've come across in a while! It seems like a more advanced Boids, the organicness of the patterns, simplicity of the code and presentation is amazing.
    My cell biology knowledge is a bit rusty, I think I remember polarity being an important factor in osmosis? I love the elegance of this simulation and would hate to ruin it, but I wonder if more complex mechanisms can be simulated by taking more inspiration like that from real life cells.
    Edit: maybe I'll try recreating this (Don't know C++ so I'll have to go from scratch) and somehow add in lifespan and evolution to get changing cells... somehow... I'll have to think on it

  • @Eltro101
    @Eltro101 Před rokem +4

    I deobfuscated Ventrella's code once a long time ago. I think it worked in a very similar way, with predicting the other particles positions, except I think in his the rules can be dynamically redefined for particles based on who they've encountered so far

  • @9393bakus
    @9393bakus Před rokem

    I very very much appreciate how u showed how it can be created with coding in realtime. Very good idea, presentation n explanation!

  • @bilbo31241592
    @bilbo31241592 Před rokem

    For lots of Yeats I was looking for this kind of simulation, ty so much !!

  • @TheTenorChannel
    @TheTenorChannel Před rokem +7

    Very beautiful project, I loved every part of it. Very interesting to see a Chladni Pattern emerge at 9:09 // these are known to be the nodal lines of a resonant body, and they literally plot Helmholtz equations solutions in function of frequency, the latter being quite omnipresent in any kind of physics, and even in neuroscience, structuring the causality within brain waves. Cheers

    • @CrystalStearOfTheCas
      @CrystalStearOfTheCas Před rokem +1

      This comment made me go down a delicious rabbit hole. Thanks
      Chladni is goat

  • @iruns1246
    @iruns1246 Před rokem +4

    Amazing work! It'd be a million times better if combine this with evolution-like process. What I can think of:
    1. Add a new type of object, let's call it "nucleus"
    2. Genetic information: Each nucleus stores the information of formation of particles in polar coordinates to it. e.g. red: [ [1, 90], [2, 45] ], blue: [ [2, 60] ]
    Each will be spawned surrounded by other particles arranged according to the gene.
    3. Metabolism: Each time there's another type particle that is close enough to a nucleus, it will "eat" it and increment a counter of that particle inside it. e.g. red++.
    4. Reproduction: When there's enough particles eaten to satisfy the number of particles of each type needed for the genetic code e.g. red == 2, blue == 1, another one of this nucleus will be spawned elsewhere
    5. Mutation: For each reproduction process, there's a chance of a small change in the genetic code.
    6. Death: Each time a particle that a nucleus "owns" is eaten or gone too far, the HP of that nucleus is reduced. If it's 0, the nucleus dies.
    7. Growth: The genetic information can be split into stages and the nucleus will need to consume enough particles to go to its next stage. It means the consumed particles will be respawned around the nucleus based on the next stage's gene. Reproduction will be done after the last stage is reached.

    • @jonrjeffrey
      @jonrjeffrey Před rokem

      Technically shouldn't analogues of all of these sorts of processes (hopefully) emerge with the right fine tuning of parameters?

    • @iruns1246
      @iruns1246 Před rokem

      @@jonrjeffrey I think it should, but it would require orders of magnitude more particles, and particle types. The synthetic nucleus there should act like a shortcut that represents a mechanism that would require tons and tons of particles to function.

  • @quebono100
    @quebono100 Před rokem

    this one was one of the best videos about programing ive ever saw

  • @clivemyrie4209
    @clivemyrie4209 Před rokem

    Great stuff! A good motivation to get me back into doing what I studied college. Much appreciated.

  • @loveistheonlything3626
    @loveistheonlything3626 Před rokem +20

    Feels magical, like cellular automata. This feels as if life would actually emerge in a similar way.

  • @TheHottrod3000
    @TheHottrod3000 Před rokem +14

    Very innovative. I’m a junior developer/Art & Designer. I would love to play with the code and make some nice visual elements. Imagine what you can come up with while using Zbrush, Maya, Blender and Unreal Engine.

  • @wurfelgott1520
    @wurfelgott1520 Před 7 měsíci

    Wow. The video was not just a programming demo but a story in and of itself!

  • @catman4859
    @catman4859 Před rokem

    The video+the bgm was mindblowing.
    And, gives us very good knowledge too.

  • @dzidmail
    @dzidmail Před rokem +3

    Some of the instabilities could be a result of simulating in discrete domain. Different sample time: if you multiply all the forces by 0.5, record the simulation and play it at 2x speed, the results with fast moving particles (e.g. instabilities) will be different.
    There are also continues domain solvers, but understandably that would make it not very approachable.

  • @nembobuldrini
    @nembobuldrini Před rokem +3

    0:55 reminds me a lot of a recent simulation of a proton model (quarks + gluons)

    • @brycering5989
      @brycering5989 Před rokem +1

      I saw it also, had to scroll and use ctrl+F to find the word Proton to find you :D

  • @lospenguin5208
    @lospenguin5208 Před rokem

    Conway's elevated .. you explain it well and organize your content in a way that allows someone to learn .. good job. Keep it up. 🦅

  • @ThatGuyDownInThe
    @ThatGuyDownInThe Před rokem +1

    you just changed my whole world, thank you!!

  • @DavidLindes
    @DavidLindes Před rokem +7

    This is cool! I typed in the js code, tweaked it a little*, and made a fish! :D (I wasn't setting out to make a fish, but that's what it looks like to me.)
    * added two parameters to rule(), one is the maximum distance for interaction (80 by default, as in your code), and the other is an option to do 1/d² instead of 1/d. Also a few other tweaks, but I think those are the most noteworthy. The rest was just playing with rules.

  • @KarelMatthieuLLogro
    @KarelMatthieuLLogro Před rokem +6

    With your foundation, this will allow others create more complex simulations of life

  • @pnuema1.618
    @pnuema1.618 Před rokem +1

    Bro you're next level! Loved it!

  • @Mateus_py
    @Mateus_py Před rokem +1

    Top tier content, inspires me so much. Conway would be proud of your work. Congrats

  • @OscarLazzarino
    @OscarLazzarino Před rokem +13

    This is incredibly cool and I love the walkthrough of the code. I have a question. You have some rules like rule(green, yellow, f1) and rule(yellow, green, f2). It looks to me that's equivalent to rule(green, yellow, f1+f2). Is that so?

    • @OscarLazzarino
      @OscarLazzarino Před rokem +4

      Uh, no, looking closer at the code now I see that rule() only updates atoms in the first group. So you can have asymmetrical forces which is really "non newtonian" but is probably what allows the emerging patterns. Very cool.

    • @brainxyz
      @brainxyz  Před rokem +6

      Nice observation! but I don't think so because these rules specify uni-directional relationships

    • @brainxyz
      @brainxyz  Před rokem +4

      @@OscarLazzarino Yes to make it symmetric f1 should be equal to f2.
      Asymmetrical forces don't exist at the atomic level but I guess it is abundant at the level of large compounds, proteins, and enzymes

    • @user-rr7uh4wm5y
      @user-rr7uh4wm5y Před rokem +3

      @@brainxyz all forces are symmetrical in real life according to Neuton's 3rd law. But this asymmetry might be why your simulation makes such interesting results, so imo it is a good thing.

    • @user-rr7uh4wm5y
      @user-rr7uh4wm5y Před rokem +2

      @@brainxyz also there is no conservation of energy because of the asymetry. But again, I think it is cooler

  • @_shadow_1
    @_shadow_1 Před rokem +4

    I wonder if you could also simulate some form of particle physics with a set of simple rules.

  • @CarloRoosen
    @CarloRoosen Před rokem +1

    Wow this is really incredible. I have always been fascinated by life-simulation programs after I first saw Game Of Life. But I never saw one where the emerging forms and behaviors resulted in such a beautiful diversity. Really, you came close to the secret of life itself...

  • @woodenfences
    @woodenfences Před 2 měsíci

    Brilliant. I was searching for life simulations and found your video which goes very quickly from a simple dance between two yellow dots to the whole mega freakin universe thing with all its complexity. Well done! Now, me go programming. . . .

  • @nembobuldrini
    @nembobuldrini Před rokem +5

    one thing that bugs me is that the particles in this model seem to violate the conservation of momentum: some interactions are like between positive and negative mass, where you have one particle repelling another, while being attracted by the latter. So you can basically create motion from nothing.
    On a different note: how does the model change if you use 1/R^2 instead of 1/R?

  • @devfromthefuture506
    @devfromthefuture506 Před rokem +11

    I would really like to see this code running in 3d in a software like blender

    • @OffbrandDrPhil
      @OffbrandDrPhil Před rokem

      That would be pretty insane... I think it would be easiest to create in the open source node-based programming language Processing with the P3D renderer.

    • @captainvenom7252
      @captainvenom7252 Před rokem +2

      I am gonna do this but instead of blender am using a 3d game engine Coppercube

    • @FoivosApostolou
      @FoivosApostolou Před rokem +1

      @@captainvenom7252 If you ever do that, I would love to use footage for a music video :) Good luck!

  • @boredofhumaans1418
    @boredofhumaans1418 Před rokem

    You came up with beautiful, intellectual, and extremely unique. You have earned many people's subs including mine. I hope you get the level of recognition you deserve.

  • @The-Martian73
    @The-Martian73 Před rokem +1

    If there's one sentence I have to say about this channel to this man ... that sentence would be:
    Don't never ever stop ...
    Please!