Coding Challenge 179: Elementary Cellular Automata

  Рет қаралды 140,325

The Coding Train

The Coding Train

Күн бұрын

How is nature hidden in a pile of 0s and 1s? Let's find out by coding a p5.js visualization of the Wolfram Elementary Cellular Automaton! Code: thecodingtrain.com/challenges...
🚀 Watch this video ad-free on Nebula nebula.tv/videos/codingtrain-...
p5.js Web Editor Sketches:
🕹️ Wolfram Cellular Automata: editor.p5js.org/codingtrain/s...
🕹️ Wolfram CA with color: editor.p5js.org/codingtrain/s...
🕹️ Wolfram CA infinite scroll: editor.p5js.org/codingtrain/s...
🕹️ 3D Grid: editor.p5js.org/codingtrain/s...
🎥 Previous: • Coding Challenge 178: ...
🎥 All: • Coding Challenges
References:
🔗 A New Kind of Science: www.wolframscience.com/nks/
🔗 Elementary Cellular Automaton: mathworld.wolfram.com/Element...
🔗 Pre-Order Nature of Code: nostarch.com/nature-code
🔗 The Nature of Code: natureofcode.com
Related Coding Challenges:
🚂 85 The Game of Life: • Coding Challenge #85: ...
🚂 123 Chaos Game: • Coding Challenge #123:...
🚂 119 Binary to Decimal Conversion: • Coding Challenge #119:...
Timestamps:
0:00 Hello!
2:09 What is an elementary cellular automata?
5:41 Explaining the rulesets
7:52 Calculating the next generation.
10:35 Visualizing the CA
14:25 Rule 90
16:45 Wolfram Classification.
19:19 Adding wrap-around
20:37 Suggestions for variations!
21:07 Goodbye!
Editing by Mathieu Blanchette
Animations by Jason Heglund
Music from Epidemic Sound
🚂 Website: thecodingtrain.com/
👾 Share Your Creation! thecodingtrain.com/guides/pas...
🚩 Suggest Topics: github.com/CodingTrain/Sugges...
💡 GitHub: github.com/CodingTrain
💬 Discord: thecodingtrain.com/discord
💖 Membership: kzbin.infojoin
🛒 Store: standard.tv/codingtrain
🖋️ Twitter: / thecodingtrain
📸 Instagram: / the.coding.train
🎥 Coding Challenges: • Coding Challenges
🎥 Intro to Programming: • Start learning here!
🔗 p5.js: p5js.org
🔗 p5.js Web Editor: editor.p5js.org/
🔗 Processing: processing.org
📄 Code of Conduct: github.com/CodingTrain/Code-o...
This description was auto-generated. If you see a problem, please open an issue: github.com/CodingTrain/thecod...
#natureofcode #wolfram #ca #cellularautomata #binarytodecimalconversion #sierpinskitriangle #p5js #javascript

Пікірлер: 225
@bendunselman
@bendunselman 4 ай бұрын
Fond memories. Once upon a time when I was a 45 years younger hippy I programmed a 20 by 20 colored CA on an Ohio Scientific 6502 machine, photographed it and had a girl friend knit a sweater with that pattern. I wore the sweater when I graduated my physics MSc.
@mattshu
@mattshu 3 ай бұрын
would love to know if you still have/wear that sweater
@bendunselman
@bendunselman 3 ай бұрын
@@mattshu The sweater is long lost. Life happened. The girl friend died a couple of years ago.
@flameofthephoenix8395
@flameofthephoenix8395 2 ай бұрын
Ah! I read "Food memories" instead of fond ones...
@unchaynd7266
@unchaynd7266 4 ай бұрын
babe wake up, new coding challenge just dropped
@joostvanrens
@joostvanrens 4 ай бұрын
I told you to only wake me up for videos of cats pretending to be humans!
@PMA_ReginaldBoscoG
@PMA_ReginaldBoscoG 4 ай бұрын
Thanks mate 'cause I too wanted to comment the same when this popped up in my feed🤝
@coding8524
@coding8524 4 ай бұрын
Even I was going for "me time on chrome" but now coding challenge is new priority 🤣
@SridharGajendran
@SridharGajendran 4 ай бұрын
Thanks for being an amazing teacher, Dan. I am forever grateful to you.
@danieltornqvist6062
@danieltornqvist6062 4 ай бұрын
This made me very happy, best explanation of the 255 rules I've seen. You go, Dan!
@shlazzargh
@shlazzargh 4 ай бұрын
For my semester project in my computer security class a few years ago, I made a hashing algorithm (in Perl) that used CA. The initialization vector was built by iterating a CA rule 30 out to about 2000 rows and then the hash was built from applying a CA between 'chunks' of the input message (starting from the init vector). The cool thing is that a CA is really easy to calculate, but dang near impossible to figure out how many iterations you've done. So it works great for hashing :-)
@AhmadAlMutawa_abunoor
@AhmadAlMutawa_abunoor 4 ай бұрын
I am very happy to see these coding challenges come back again... Please keep doing more of those. This one if fascinating, educational, fun to watch, and to try!
@arthurribeiro1452
@arthurribeiro1452 4 ай бұрын
What a ride! That was absolutely FANTASTIC. Please post more Coding Challenges this year 🙏🙏🙏
@imaginaryangle
@imaginaryangle 4 ай бұрын
Beautifully done! I love how you construct a solution from basic principles and delay optimization. It's perfect for following along!
@BarneyCodes
@BarneyCodes 4 ай бұрын
Great video as always Dan! Your enthusiasm is so infectious!
@electronicgarden3259
@electronicgarden3259 4 ай бұрын
When you showed us the picture of the shell with that semi random pattern I got tears in my eyes. I've been fascinated by fractals since I was a teen in the 80's. Read the book Chaos and looked at nature with new eyes ever since. There is something with the connection between pure math and nature that resonate deep inside me.
@Chronozia
@Chronozia 4 ай бұрын
Glad to see another instance of a Coding Challenge! I've missed this series :)
@londongaz2
@londongaz2 4 ай бұрын
I really enjoyed this video! I have been dabbling in cellular automata for some time and have come up with a nice 3d multi state version. Fascinating stuff! Wolfram's book now purchased!
@zer001
@zer001 4 ай бұрын
Nice to have you back and see more videos from you.
@kejonp9302
@kejonp9302 4 ай бұрын
Finally another interesting coding challenge! thank you for doing this series. I've learnt a lot! Much love from Indonesia 🙏🏻🔥
@realcygnus
@realcygnus 4 ай бұрын
Great ! I loved your regular old challenges.
@dpelta
@dpelta 3 ай бұрын
Here a computer science professor from Spain. Excelent and very clear videos! I hope I can convince my colleagues to teach p5.js in the 1st year programming courses
@TheCodingTrain
@TheCodingTrain 2 ай бұрын
Thank you for the kind feedback!
@mikethetreeclimber7
@mikethetreeclimber7 4 ай бұрын
Your humor and enthusiasm is so contagious!!!
@tagon35
@tagon35 4 ай бұрын
It would be an interesting experiment to take the 1D cells and give them some sort of deeper memory, extending the rulesets you could have exponentially. For instance, instead of only looking at the past generation, look at the past 2 or 3 generations, if applicable.
@Fishpizza1212
@Fishpizza1212 4 ай бұрын
Fibonacci Cellular Automata?
@ThePharphis
@ThePharphis 4 ай бұрын
That's like adding more states, and order of states could be optional if desired. Interesting idea!
@PMA_ReginaldBoscoG
@PMA_ReginaldBoscoG 4 ай бұрын
​@@Fishpizza1212the sum of the previous 2 states modulo 2 is the present state. Dear Dan, please make this happen 😊
@chitlitlah
@chitlitlah 4 ай бұрын
@@PMA_ReginaldBoscoG But he just taught you everything you need to know to make it happen yourself. Spring forth, grasshopper.
@PMA_ReginaldBoscoG
@PMA_ReginaldBoscoG 4 ай бұрын
@@chitlitlah Will try to do it asap.👍
@cuadernoazul5958
@cuadernoazul5958 4 ай бұрын
Its nice to have you back again!
@pattvira
@pattvira 4 ай бұрын
A new coding challenge and I’m here for it. Great video Dan!
@jgg75
@jgg75 4 ай бұрын
Great video and I am so happy you are back making these 🎉
@flobiish
@flobiish 4 ай бұрын
What a coincidence (for me) you posted this today as I was considering writing something similar but 2d like Conway's Life (and I just watched your Life video again yesterday). Anyways, keep up the good work. Love your channel.
@giant3909
@giant3909 3 ай бұрын
In Minecraft 1.17 and before, cellular automata algorithms were used to generate random patterns when generating the world. I'm glad I stumbled on you video, it is really inspirign and now I want to code cellular automatas
@malonemakoto8462
@malonemakoto8462 3 ай бұрын
This was so cool, I managed to recreate this in C++ using the qt framework. Thanks for this video!
@matthewmorgan1715
@matthewmorgan1715 4 ай бұрын
Oh my gosh I forgot how much I loved your videos ❤ This was excellent.
@thehappycoder3760
@thehappycoder3760 4 ай бұрын
Utterly brilliant as always
@lark3352
@lark3352 3 ай бұрын
That was beyond amazing to watch.
@Gilbe2003
@Gilbe2003 4 ай бұрын
I startene watching your video thi summer and i was fascinated of the beauty of coding with graphics and using processing
@_rlb
@_rlb 4 ай бұрын
I got my stickers in the mail earlier this week! I know it's off topic but I'm so excited 😊
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
Yay! So glad to hear!
@KaveendraVithana
@KaveendraVithana 4 ай бұрын
Thanks for making coding fun and enjoyable. I have pre-ordered your book as an appreciation.
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
Thank you for the support!
@freddyjosereginomontalvo4667
@freddyjosereginomontalvo4667 4 ай бұрын
I love this channel and their videos. Keep going.
@quangminhphan9088
@quangminhphan9088 4 ай бұрын
I love every mathematic lesson you gave us
@yannickperret1586
@yannickperret1586 4 ай бұрын
Thanks for this and happy that you'll get more time! I tested a variation: use rules based on 5 cells rather than 3 (2 neighborhood each side). It leads to 2^32 possible rules and generates of course more complex stuff. I also added color in an other way: based on the 5 cells I take the 3 firsts to compute the red value ( (value/7.)*200.+55. in order to prevent too dark colors, and it is applyed for white), the 3 next for green, and the 3 lasts for blue.
@Elizabeth-vh6il
@Elizabeth-vh6il 3 ай бұрын
Awesome. I actually already started doing this one back when you demoed 2D CAs because I was looking for something where the rule could be more easily inferred from the image and so reducing the state space to a single dimension and putting time on the y-axis was the solution to my problem.
@kluplau
@kluplau 4 ай бұрын
It's been too long Dan. Even the whistle has been collecting soo much dust that it barely works :D Nice to have you back. I will look forward to watching your videos.
@jordannaser9549
@jordannaser9549 Ай бұрын
This channel is so entertaining and whimsical
@justind4615
@justind4615 4 ай бұрын
Yey another great video from you! :D
@thomashalverson6962
@thomashalverson6962 4 ай бұрын
Your joy brings me joy
@RicoGalassi
@RicoGalassi 4 ай бұрын
Always a great day when Dan releases a new coding video!!!
@gerhardbrauckmann2908
@gerhardbrauckmann2908 4 ай бұрын
Amazing stuff!!! Thank you!
@lumotroph
@lumotroph 4 ай бұрын
Incredible!
@duality4y
@duality4y 4 ай бұрын
I really love your book i used it like 6 years back maybe to have some fun coding :)
@atomsmasher
@atomsmasher 4 ай бұрын
Thank you for making these videos. I love you.
@liukang81
@liukang81 4 ай бұрын
It’s a great coding lesson,sir! I love it!
@gudmythman
@gudmythman 4 ай бұрын
Ive been super into these lately, you reading my mind xD
@ig4yara
@ig4yara 4 ай бұрын
Oh my god, I love this video!!! thank you so much!!!
@stabilini
@stabilini 4 ай бұрын
I'm so glad you explain things so simple. I would like to see 2D version now!
@clintongryke6887
@clintongryke6887 4 ай бұрын
Great enthusiasm!
@ethanmilton7083
@ethanmilton7083 4 ай бұрын
I've been trying to find a way to do image compression with cellular automata for like 2 weeks now. And lo and behold! a video!
@breakplays
@breakplays 4 ай бұрын
yeeeey, more coding challenges this year 🎉
@tsarprince
@tsarprince 4 ай бұрын
Wohooo back to coding challenges🎉
@sonik382
@sonik382 4 ай бұрын
Finally back with a new Coding Challenge!!!! 🎉
@rafaelskiarteportfolio1098
@rafaelskiarteportfolio1098 4 ай бұрын
you are an AMAZING teacher
@tythedev9582
@tythedev9582 4 ай бұрын
Was watching your videos as a fresh Computer Science student and now still watching as a salaried Software Engineer. Your videos never fail to remind me of the fun of coding. Thanks so much!
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
I love hearing this!
@astropgn
@astropgn 4 ай бұрын
Best channel ever! Love it
@superdepressif6047
@superdepressif6047 4 ай бұрын
I have your first edition and I had a lot of fun with it, the only critic I have is that some of the exercise don't give you much information about how to complete them which can be a little bit frustrating, but I love all the projects we get to code.
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
Maybe I can improve this for the new version!
@ayushtripathi429
@ayushtripathi429 4 ай бұрын
Awesome Video Dan!
@mattbrennan7216
@mattbrennan7216 4 ай бұрын
Fantastic!
@professorpro9400
@professorpro9400 2 ай бұрын
My mind is honestly blown seeing how a simple set of rules can lead to such beauty and manifest itself in the real world 😍when you compared to real life examples, that just made it. Awesome video as always, amazing teacher and very inspirational :) keep up the good work!
@Miionu
@Miionu 4 ай бұрын
so amazing!
@nothinglastsforever0000
@nothinglastsforever0000 4 ай бұрын
Congratulations on your book publication!
@Election0747
@Election0747 4 ай бұрын
Together with Flash Math Creativity, The Nature Of Code is my favourite book of all time. It had so much interesting stuff in there I still use often. Looking forward to the new edition.
@ColinTimmins
@ColinTimmins 4 ай бұрын
Awsome video! Im excited for 2024. Your videos and your book will come in handy for both my path and and guide into code land. =]
@theprogson
@theprogson 4 ай бұрын
man you some what changed my life. I mean i discoverd you when i was supossed to learn to my exam after middle school so i could go to good hischool in Wielun (its in Poland) and this was my break through in programming field i always wanted to be programmer but that was the time when i actually understood the basics concepts. Now Im 20 and Im in college on Cybersecurity faculty. I want to thank you for your work. It's trully realy good. I'd love to do something with you some project or something.
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
Thank you for sharing your story!!
@djbolodocaco775
@djbolodocaco775 4 ай бұрын
honestly these videos could be called "fall in love with code"
@AnM-of4wz
@AnM-of4wz 4 ай бұрын
You don't have to say sorry about your way to code. We all know that you're pro. Thank you. That blow my mind!
@dandreani
@dandreani 4 ай бұрын
also, what a banger of a video... i had chills when the serpinski triangle showed up
@TheCatull
@TheCatull 9 күн бұрын
Danke!
@Rumplestiltzchen
@Rumplestiltzchen 4 ай бұрын
That intro was clean!
@shanebenlolo3160
@shanebenlolo3160 4 ай бұрын
I’d really love a video on rendering a tile server wrapped around a sphere using a cubemap (as opposed to a equirectangular texture). This would require you to map all edges of each face of the cube to their respective neighbors to perform the correct query for the lat long bounds. Please consider! Love your work ❤
@CrashingThunder
@CrashingThunder 4 ай бұрын
I'm gonna use this as an opportunity to build something different with Godot. I don't usually do stuff like this since it's primarily a game engine, but it seems like a fun way to make a nice UI and a little sandbox for exploring the various rules.
@comedyman4896
@comedyman4896 3 ай бұрын
Whenever I get frustrated with coding, I just watch this series and I regain my wonder for coding
@Byt3me21
@Byt3me21 4 ай бұрын
Thanks that was a great video!
@williamjones5367
@williamjones5367 3 ай бұрын
veryyyyy fking cool man, i enjoyed this thoroughly, keep it up!
@msclrhd
@msclrhd 4 ай бұрын
It would be interesting to code Langton's Ant and more generally Turmites. You can get different ant patterns/behaviours by having two ants at different positions/ and orientations.
@PotionScape
@PotionScape 4 ай бұрын
I recently added cellular automata to my terrain generation for nicer looking caves (3d). I found this video very interesting as well
@407wrld3
@407wrld3 4 ай бұрын
Nice project!
@kossboss
@kossboss 4 ай бұрын
he is back!
@richarddragon2589
@richarddragon2589 Ай бұрын
Thanks!
@Mel-mu8ox
@Mel-mu8ox 4 ай бұрын
Always inspired when I get homework from Coding Train :D
@VanguardParty
@VanguardParty 3 ай бұрын
Amazing
@user-iz1dt5pm7d
@user-iz1dt5pm7d 4 ай бұрын
Wow, I've done that week ago, but in c++. Nice to see, how it's done in other languages!
@johngc2010
@johngc2010 4 ай бұрын
GREAT VIDEO
@unchaynd7266
@unchaynd7266 4 ай бұрын
Another interesting idea would be to decide the next state of the cell by looking at some other combination of cells rather than the cell and its neighbors... for example, you could decide the cell's next state based on the 3 cells to its left or right. And of course, you could also look at more than just 3 cells. You could look at the cell, its 2 left-hand neighbors, and its 2 right-hand neighbors. This would yield 2^(2^5) (a little over 2 billion) possible rules.
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
You should try this and submit it to the passenger showcase!
@filipemelo1107
@filipemelo1107 4 ай бұрын
i remember watching your videos when I didnt know how to program... Now I work as a software engineer and just got my degree, so you are kinda of part of it too. Thanks!
@TheCodingTrain
@TheCodingTrain 4 ай бұрын
I’m so happy to hear this!!
@SpringySpring04
@SpringySpring04 2 ай бұрын
The manual truth table from the a == 0 && b == 1 && c == 0, etc. Part actually made me go crazy lol. I'm taking a digital logic class in college and i've learned how to simplify boolean expressions using k-maps and minimization and stuff, so I was just going crazy from seeing that lol
@blendedtutorials
@blendedtutorials 4 ай бұрын
genius as hell
@dev_zone2006
@dev_zone2006 4 ай бұрын
Simply amazing 😊😊❤❤❤😅😅
@MahBor
@MahBor 4 ай бұрын
Looking forward to more Coding challenges in 2024
@YuHayate
@YuHayate 4 ай бұрын
im whatching 4 hours after you posted the video :)
@Deditzy.
@Deditzy. 3 ай бұрын
One day I’m gonna say “kids, I watched this man go from a full head of black hair …” you got me through Uni man! Kudos!
@josemacalintal1915
@josemacalintal1915 4 ай бұрын
You should try coding up the Rock-Paper-Scissors ruleset for a 2D CA setup. A three-state (or 4 depending if you include a null state) that generates stable spirals. It has been compared to the Belousov-Zhabotinsky reaction in chemistry.
@flameofthephoenix8395
@flameofthephoenix8395 2 ай бұрын
17:56 While looking at the Sierpinski's triangle Cellular Automata, I noticed that it can be predicted, if you have a diagonal line then you just need to compute how many diagonal lines branch off of it, which is fairly simple, you can determine that every other pixel in a diagonal line will branch, moreover the length of the line that branches off follows this pattern, 010201030102010 although it is actually 2^0,2^1,2^0,2^2,2^0,2^1,2^0,2^3,2^0,2^1,2^0,2^2,2^0,2^1,2^0. Regardless, you can use this to render Sierpinski's triangles with a fair bit of efficiency. It's also worth noting that you must start with two diagonal lines in order to make the whole triangle.
@zehanimohamedyoussef3736
@zehanimohamedyoussef3736 4 ай бұрын
Glad I watched this ✨ Reminds me of college/uni days while we never learnt things this way👨‍🎓👨‍💻 😎🆒
@GrandpaGameHacker
@GrandpaGameHacker Ай бұрын
I write a generic basic CA in C++ using bitset as birth and survival rules recently, it could simulate highlife, gol, night and day etc. without swapping algorithms. It performs worse in certain scenarios but it was general and could produce cool results with random rulesets.
@CyberbobAB
@CyberbobAB 4 ай бұрын
Great Video 😊 A Coding challenge to make a Steganography Image with a simple LSB method would be cool ;))
@angelowentzler9961
@angelowentzler9961 2 ай бұрын
"Automata" is the collective noun. The singular is "automaton". In both cases the stress is on the first "o".
@dandreani
@dandreani 4 ай бұрын
I have the original book and waiting for the new one! go Dan
@thermotronica
@thermotronica 4 ай бұрын
Very nice
@FunnyPeregrineFalcon-vc3il
@FunnyPeregrineFalcon-vc3il 7 күн бұрын
Just bought the book!
Coding Challenge 180: Falling Sand
23:00
The Coding Train
Рет қаралды 715 М.
Coding Challenge 171: Wave Function Collapse
1:18:37
The Coding Train
Рет қаралды 520 М.
Uma Ki Super Power To Dekho 😂
00:15
Uma Bai
Рет қаралды 54 МЛН
Chips evolution !! 😔😔
00:23
Tibo InShape
Рет қаралды 17 МЛН
Buy Feastables, Win Unlimited Money
00:51
MrBeast 2
Рет қаралды 96 МЛН
Coding Challenge 168: MandelBulb 3D Fractal
28:02
The Coding Train
Рет қаралды 364 М.
Cellular Automata and Rule 30 (Stephen Wolfram) | AI Podcast Clips
22:29
Cellular Automata: Complexity From Simplicity
13:03
Acerola
Рет қаралды 91 М.
Coding the Hilbert Curve
28:08
The Coding Train
Рет қаралды 107 М.
Lenia - Artificial Life from Algorithms
13:15
Birdbrain
Рет қаралды 110 М.
Coding Challenge 166: ASCII Text Images
22:42
The Coding Train
Рет қаралды 1,1 МЛН
Coding Challenge #132: Fluid Simulation
54:31
The Coding Train
Рет қаралды 620 М.
Uma Ki Super Power To Dekho 😂
00:15
Uma Bai
Рет қаралды 54 МЛН