3D Conway's Game of Life
ฝัง
- เผยแพร่เมื่อ 26 ก.ค. 2024
- Conway's Game of Life
In python and unity
From the classic 2D grid to 3D space, witness the evolution of this simulation.
random thoughts: / yynill
part 2 • Conway's Game of Life ...
python code: github.com/yynill/GameOfLife
unity code: github.com/yynill/GameOfLifeU...
My critique is that you said you would play with the rules to see what would happen but
Didn't show that on camera and/or didn't have notes showcasing different rules
th-cam.com/video/-cIf6hYi8NE/w-d-xo.htmlsi=OcCdwObI9_ziOu_4 here you go.
Something that would be cool is if cells that had just been born were green, cells that have survived more than one round be blue, and cells that are about to die red, or maybe some other more smooth colour gradient; it could be cool to see the cells have their colour change by age. Idk though, I'm just a TH-cam comment
You're not just a youtube comment... or maybe you are, Idk, I'm just a reply
hello reply
kinda did that in part 2
Pretty neat.
The end would be even more amazing if you had rotated the camera around the cube while the cells are changing
The morse code at 7:32 translates to "Do cool shit with cool people" (in case anyone were wondering)
Great visualization at the end (though it would've been great if you also showed ranges for the rules for each simulation)
nice
Im always surprised when I accidently stumble upon these small channels and then they have such polished videos. Great job man! I really enjoyed the video :D
I second this.
Editing was amazing, and the 3d visualization at the end was insane! Also loved the code + visual aspect of your video. Keep it up!
:)
How about running this on a volumetric display?
genuinely think you're too underrated. this has higher quality than some videos from channels with millions of subscribers, and i hope your channel reaches that million subs as well. good job man. keep it up.
Cool video, I wrote my own version of Conway's game of life in C++ like 15 years ago, but never considered doing it in 3D. I think you did a pretty good job demonstrating what that looks like. One correction though, you said that OpenGL is a Python extension. That's... not quite right. OpenGL is a graphics library that directly communicates with your graphics card to provide accelerated 2D and 3D drawing capabilities. Python, along with many other languages, can interface with the OpenGL library to make use of these capabilities. Saying it's a Python extension is like saying DirectX is a Python extension.
I didn't know that. Thanks for letting me know.
Man, such a great video. This needs to blow up. The end result was nothing short of amazing. Great video, stellar coding. I can't wait to see you go places.
Thank you. This shines the nature behind cymatics and resonance. I love it so much. Hope to play with it in future.
dude, the production quality on this is insane! also, nice rs3m :3
Thanks. Can you solve it?
@@yynill yup! pb is 18 seconds, but I've rusted back to 30-35s
First off, keep doing what you're doing! On the other hand, Tech with Tim did a cool interpretation of Life 2D where he noted that you don't have to loop over every single cell in the array. Life or Death will always be the result of a Living cell, so he only loops through a list of Living cells to see if it Lives or Dies, and if any of it's neighbors should be Born. He did this in Python at speeds approaching 60fps in Pygame. It would be interesting to see if your Python version of Life 3D would be fast enough to enjoy if you employed that stategy. Thanks for the great video!
thanks a lot and noted. may come back in the future.
No way, I had a similar idea a couple weeks ago but I had no clue how to implement it. Awesome to see someone did it, and made such a cool video showing the project off too!
thanks a lot. You should try it again.
The rule for 2 live cells can be simplified for programming purposes as: if a cell has 2 live neighbors, then the next generation value will be equal to the current value, whatever it is.
woah the editing is amazing
Fantastic video. It was compelling enough where I revived my attention span to stay for the whole thing!
in war with tiktok. haha. thanks
this is awesome, insanely underrated
thanks
lmao, I was practicing 4x4 while listening to this, then I looked up at 4:00
absolutely awesome video mate, keep it going!!!
Thanks, will do!
Man this idea randomly came to my mind, i thought no one whould have implemented it lol
Awesome vid dude!
Cool video, I didn't expect this channel to be so small
e^x
Awsome work ! Keep it up !
Really good production quality and nice presentation. I thought you had more subscribers based on that. +1 subscriber
:)
Wow, amazing video!
Can't wait for the 4D version
Haha yeah. You could do it with 4d (even ∞d) vectors, but visualising could be a little challenging.
Can you show us a single 3D plane of the 4D space?
It'll be more noisy with each extra dimension, and It's already hard to parse what's going on in the 3d version without plenoptic vision and holographic display.
@@Leadvest true. I made it rotate in part 2. There you can see it a little better, but 4D is as you said very hard to grasp.
great video amazing editing extremely underrated 🎉🎉
The problem with 3d is that we only see 2d and it gets harder to see the shapes.
One idea is to have 3d by cell color, the grid is 2d, there are 256^3 colors, this would allow a 3d conway with a height of 24 at max.
super cool idea, never seen this before
;)
Guter scheiß, ist zwar etwas zu weit für meinen momentanen Horizont aber sehr interessant.
Really nice video
Great video man 💪 hope you’ll persevere
many projects on my mind
I would suggest adjusting the opacity of individual cells dependent on how many cells are between them and the camera, as well as adjust the camera angle in some way to demonstrate the 3D nature of the "universe". Perhaps even color them differently at different layers and/or depths.
th-cam.com/video/-cIf6hYi8NE/w-d-xo.htmlsi=J3HS-XeTR7td1TD6
I really liked this video. I thought your explanation of regular GoL was clear and not too long. I think that if the main point of this video is the 3D version of Game of Life, it might have been better to spend less time on your 2D implementation, especially the image loader. I felt the Rubik's cube montage had a lot of emphasis on it, I think it would be better if you had done the explaining of 2d vs 3d GoL while you solved the cube, either as voiceover or just while you were solving it. The thing with the papers was nice, I guess that could come after you finished solving it. Lastly, I think putting a little time into showing what's happening in the code is nice, but in my opinion the best way of doing it is just a short high-level explanation of the algorithm with maybe a coding montage in the background, although explaining issues you ran into isn't bad. Overall, these are some relatively minor nitpicks, the video was good. Subscribed and shared.
Thanks a lot for the feedback.
This truly is impressive
I feel like the slowness came from the fact it was python... And i think unity is in something close to c#
The morse code intervention was really cool
python is so slow, but I love it.
I think an isometric view would be really cool
Damn 300 subscribers and that video keep up the work
202 but we gettin there haha. Much love.
awesome video bro keep up the good work
Thanks! Will do!
If it's performance you seek, compute shaders would be perfect for this aplication.
0:17 "automaton" not "automation"
thx
you probably should have an epilepsy warning for the thing at 9:09, but otherwise great video
Thats awesome work right there. Gg. I was thinking, while looking at the patterns, it resemble the pattern of life, the one DaVinci and fibonacci was working on. I don't remember the exact name of the pattern I think is the flower magic number or something...
Love the video and the code explanations! Although it might be a lot of work, zooming into the code that you are talking about would be a lot easier to follow than just highlighting it. Currently, I have to squint to be able to read what going on so zooming in would be really helpful!
Noted!
nice job 🙂
Thanks
very nicely done, I tried a similar thing a while ago, didn't end up as nice as this :)
Cool, thanks! This might be the time to go back and revisit that project.
If it was coded in assembly, it would've been much more efficient
peyote wants to enter the conversation
Ok now i wanna try this but also do something wierd with the bounds of the simulation so it doesnt look too much exactly like a cube
do it
CGoL doesn't look at diagonal adjacency, just orthogonal.
If the 3D version is to be consistent, each cube has six neighbors.
Actually, CGoL checks 8 neighbors, check the Wikipedia page.
You can also adjust the 2D rules such that you get beautiful cave-like layouts totally appropriate for generating video game levels. Basically, don't die from over-crowding, and you get nice organic shapes. (Probably could do it in 3D also.)
It's interesting to see someone relatively new to programming forgetting all the stuff that's already ingrained into the practices of experienced programmers. (By which I mean the not thinking about running off the end of the array before it happens.) Another way to handle that is to just zero out (i.e., kill) the outside edges/faces after each generation.
learning by doing
Hey I really love your style and design. To the code I can’t say much because I am currently learning python my self and am not good at it. Maybe you could have shown the 3D visual from a bit of an angle (it was a little difficult to see in the end). Definitely subscribed. 👍
part 2 :)
Should have more views!!
loved the vid
one question: Did you consider using Godot instead of crooked unity? If so, why did you choose unity?
Haven't put much thought into it. I think I saw Sebastian Lague use UNITY in his projects.
will look into Godot, thanks!
@@yynill open source ftw :)
Amazing video!!! the close up shot with the rubix cube looked a little over exposed btw
THANKS! - Will improve video qualities in future videos.
How about the sound?
@@yynill the sound was ok I think
wow!
About the last animation in 3D, I think you really should add an information about what rules you used here... what's the point of us looking at this, other than it looking cool, if we have no idea what rules are followed and what numbers did you choose? After all, you said at the end that the point is to learn, but you still keep the way the last animation works a secret :P
So which one is it? :-)
NOW WITH 4D!
Give a translucency for material and orbit the camera would be nice, feels like loss some meaning of 3d when it uses still angle and opaque material
watch part 2
6:59 Python is not that fast, yes. But I am very certain that your data structures to store the field are just very naiv too. I am pretty sure you can do it quite fast with Python too.
how could i improve it?
@@yynill I don't know how to speed up the OpenGL stuff but for the state changes you might consider working with numpy and big sparse matrices that keep the state of the cubes. Or try 3d convolution where the convolution kernel can calculate the resulting "lifeness" value from all the cells nearby. Search for "game of life 2d convolution" to get an idea of what I mean.
Why code is so small. espessially at 5:37 ?
will fix that in the next one.
OpenGL is a PyGame extension?
still learning
@@yynill ❤️🇵🇸🍉
Hi!
I tried to make this work a long time ago, but couldn't get it to work right.
Why?
@@yynill Mostly the 3D stuff got me. I could do 2D, but couldn't translate it up. I should try again sometime
Is this open source? Where's your code?
added in desc
:O
make sure to do cool shit with people
thats my life philosophy
I can hear dein Deutsch.
hallo :)
Do cool shit with cool people
life philosophy
bro why are you using python for 3D rendering?
Why not bro
@@soft6418 Because it's slooooooooooooooooow.
agree thats why unity
@@yynill unity = ea. So also no.
whats a good alternative?