7.2: Wolfram Elementary Cellular Automata – The Nature of Code

This video covers the basics of Wolfram’s elementary 1D cellular automaton.

(If I reference a link or project and it’s not included in this description, please let me know!)

Read along:

A New Kind of Science:
Elementary Cellular Automaton:

Help us caption & translate this video!






27 responses to “7.2: Wolfram Elementary Cellular Automata – The Nature of Code”

  1. Donald Kronos Avatar

    At 4:18, in a sense you were correct to say that you don't evolve generation 1, but rather compute it. However, there is a hidden accumulation of change (or potential change) over multiple cells in the production of generation 1, and any accumulation of change is evolution. Generation 2 is of course unmistakably evolved from generation 0 by way of generation 1.

  2. ShuShu Bana Avatar

    14:31 Click for beatboxing

  3. Dave Hancock Avatar

    He seems to be very excitable ..

  4. Lucas Takejame Avatar

    Be careful with those black and white blinking patterns, there may be sensitive people watching this. Besides that loved the video!

  5. Ian Golsby Avatar

    I noticed that when you make your temporary array to calculate the next generation you're making a for loop to copy all the elements over. This works fine but Processing3 has a built-in function that does this for you. It's called arrayCopy. So you may replace your for loop with arrayCopy(gen, nextGen); or whatever you want to call your arrays. (The first parameter is copied into the second).

  6. ZNB ジ Avatar

    I think complexity is irrelevant because it involves chaos and absence of pattern

  7. Lucia Avatar

    I just found your channel and boooy i am addicted to it!

  8. A. O. Avatar

    i want to criticize the word random. its not random. its chaotic. thats not the same. thanks

  9. Hanniffy Dinn Avatar

    I got a seashell with a rule 135 ish pattern on….. These exist in nature…

  10. J T Avatar

    This is great, thank you

  11. yosimekupelet Avatar

    why are you randomly laughing

  12. Gethzi Poornima Avatar

    Thanks for your wonderful lecture…

  13. Icarus Lives Avatar

    The only coding channel that I enjoy!

  14. Aiden Ocelot Avatar

    So we start with a single cell. then with a rule set in binary up to 256 changes the cells below it?
    I'm gonna program this

  15. jwrm22 Avatar

    Pretty interesting. Only it seems to be overly complicated. It's easier to understand but not at all resource friendly.
    Note: I''m used to write for micro controllers with 2k ROM and 256B of RAM.

    My approach:
    I would replace the array for a single n bit value.
    1. Mask the bits i need to compute the next generation.
    2. Lookup the next value of the cell.
    3. Repeat 1,2 for the binary length

    There are some tricks like making a struct or array of binairy numbers. (saved as one int)

  16. Kappa 123 Avatar

    I am learning all by myself and I gotta say that this is the explanation I want to see. Well done explaining this! I also like the enthusiasm. It feels like you're a friend discussing. Keep up the good work! 😀

  17. Jino Tzino Avatar

    I thought I was dropping frames lol 😀 apparently I've dropped 0 out of 1000 at the beggining 😛

  18. Vlad Albescu Avatar

    This guy is like the teacher version of Larry David.

  19. Tecno Player Avatar

    This is making my head hurt. I need apply this to a Real Time Strategy game or something like for motivation.

  20. salle rc Avatar

    Great explanation of CA, thanks man. And yeah, really like your teaching style 🙂

  21. pitmanra Avatar

    There must be a ruleset for your shirt?

  22. Divya Narayanan Avatar

    could u please tell whether u r using open gl to execute the above code or something else?

  23. Vishal Menon Avatar

    how do you get the screen to follow the animation down the screen?

  24. ZX Spectrum Avatar

    a new kind of science lol

  25. Peter Hayman Avatar

    omg decrese cell size over time = suuuuuper cool!!!! 😀

Leave a Reply

Your email address will not be published. Required fields are marked *