Just found your channel and have been binge-watching all of your tutorials in the last two days. You've re-awakened the programmer in me; thank you so much for these. Can't wait to keep watching more!
I watched one of your videos accidently 24 hours ago. and I liked the stuff so much, I have seen a minimum of 8 videos of your's in these 24 hrs including a 40+ mins video (oh god). Really amazing how you make programming look effortless. Nice work, I am gonna start coding again.
Considering space colonization, I’m thinking a very similar simulation could link stars via space routes. 🤔 Perhaps minimum and maximum distance could be affected by the amount of time needed to travel near light speed. A lot more complications for space comes to mind, like a star can’t start branching out until the local civilization has matured enough to produce enough energy for interstellar travel. And an industry capable of making its own spacecraft. Though I suppose established star systems could pass through to get supplies for longer missions and trade could boost the local economy and accelerate that maturity.
Would there be a way to use "leaves" to draw out letters and have "branches" grow from the letters? Also, I can't stop watching your tutorials, I'm not very good at programming and only have experience in BASIC, but I love watching you get from point A to point B! You have such a positive attitude! I love it!
Dylan Beaulieu There would be, instead of randomly generating each leaf location you could turn the text into a vector-graphic and use those coordinates, however you may need to scale and transform those coordinates to fit your liking . You can google how to turn text into vector graphics if you are unsure. It will probably require a little more thought than what I have given it but this may point you in the right direction
Actually, some leaves remained not because they were at the same distance but because they were in the opposite direction which cancels each other, because you normalized the vector. You could solve the problem by making the vector stronger if the leaf is closer.
trees grow by having a rythmn at the apical meristem. Where they produce a node and then an internode and then repeat. each node grows phi rotation around the stem...
Thanks for the great videos! The research paper mentions further processes like node decimation and relocation and curve subdivision. Do you know where we can find code examples for these steps? Honestly I've read through the paper several times now and these parts are somewhat vague in the text.
Hey this may belong to the video before but how can I order the leaves in a circle like you did there? I tried to figure out in the processing code but im not familiar with that and cannot translate it into p5.
instead of a min and a max distance to feel the leaves pull, what if it was a gradual weighted thing? like gravity the closer you are to the point the stronger you are drawn to that point and it could be actual colonization of outerspace if you think off the leaves as stars and the branches as the path traveled by the colonizing race in a game this could be used for generating star map territories by having several diffrent trees fight over the same leaves just draw the leaves and not the branches
Daniel Shiffman i wasn't reading and i made the mistake of suggesting a coding challenge on your twitter instead of your github, so what do you think about doing a raycasting thing? like wolfenstein 3D? i mean sure processing might actually make it easier to do real 3D but you can't beat that retro pseudo3D feel
Great video! Keep 'em coming! I tried to download the code from GiTHub but I can't get it to work on my computer. Is the tab order important? I get an error saying that the class (Branch) cannot have the same name as the [something] I'm guessing I've done something wrong here As I said : Keep the videos coming! Thanks
@Daniel Shiffman Nice video quite informative. I am working on something right now and I wanted to create tileable textures and heightmaps using a perlin and a simplex algorithm I purchased. Unfortunately while I am familiar with creating heightmaps and procedural textures using perlin and simplex noise I have no Idea how to make them wrapable in any way. Could you explain wrapping perlin or simplex noise for me? Thanks for the video's we need more public information like this in the world.
Daniel Shiffman I've already watched that but it hasn't taught me anything new really but thank you. That's basically a how to heightmap with perlin which I am perfectly fine with and understand, but it doesn't explain how you can tile or wrap the output so that when you reach a limit it repeats. I was asking if you could do a video on seamless tiling with perlin or simplex noise. Please.
awesome vids !.......seems the p5 ver never happened ?........would it just be similar .....webgl & 3d points/vectors ?...anyone know ?.......is there an ultra simple camera thing like peasy for p5 etc.?
Yes, check out the doco. I believe with the latest version of WebGL, much of previous difficulties have been overcome,including wrapping textures on native and defined objects. Best is to try it out, I guess, and report ;)
I did this!! and now.. how could I save is it in a 3d file format? (sry about my english and (I guess) my naive question, anyway, I love this channel :D)
I think it's because the ellipse function only get X and Y as arguments. Since he wants them to know where to draw itself on the Z axis, he uses translate the with X, Y, and Z as arguments and now he can draw a 2D shape with only two arguments but the 2D origin (0 , 0) is now also the 3D origin (0 , 0 , 0), pushMatrix and PopMatrix are used to reset the origin so he can translate to the next ellipse, it could be done without using push/pop but it would need to calculate the position of each ellipse in relation with the previous one, it would be more complicated and slower to render.
pushMatrix() Saves the state of the Matrix, which is the position of the origin and its orientation. those can be changed with the translate() and rotate() functions. popMatrix() Loads the matrix previously saved by PushMatrix()
+Simon Bouchard J'aurais été plus à l'aise de te l'expliquer en français étant donné que ton nom est clairement Québécois mais bon ^^ ça sera pour une prochaine fois :P
This video uses Processing (which is built on top of the Java programming language). For more info, visit processing.org and also this video might help th-cam.com/video/AmlAiKsiy0o/w-d-xo.html.
I think this is sort of right but not quite. Branches can only have one child at a time, with the direction affected by nearby leaves, however a branch can still grow another branch after it already has a child.
"Watch how simple this is gonna be!"
Then proceeds to make 3 typo's while changing only 1 character.
Love your work man!
hahaha :) :)
He's so passionate about it
I have never seen such a passionate tutorial! Keep up the incredible work!
+JosephJ thank you!
Just found your channel and have been binge-watching all of your tutorials in the last two days. You've re-awakened the programmer in me; thank you so much for these. Can't wait to keep watching more!
I'm so glad!
I'm a c++ dev. I very much enjoy your videos. Wondering about doing such challenges myself. Great stuff.
I watched one of your videos accidently 24 hours ago. and I liked the stuff so much, I have seen a minimum of 8 videos of your's in these 24 hrs including a 40+ mins video (oh god). Really amazing how you make programming look effortless. Nice work, I am gonna start coding again.
Nice Crystalline Entity you’ve got there. Lore would’ve envious. 😊
Daniel I got so much info and food for the imagination in this tutorial. Thanks for the passion in every video.
Considering space colonization, I’m thinking a very similar simulation could link stars via space routes. 🤔
Perhaps minimum and maximum distance could be affected by the amount of time needed to travel near light speed. A lot more complications for space comes to mind, like a star can’t start branching out until the local civilization has matured enough to produce enough energy for interstellar travel. And an industry capable of making its own spacecraft. Though I suppose established star systems could pass through to get supplies for longer missions and trade could boost the local economy and accelerate that maturity.
this is really awesome! your tutorials are fun and your sketches are really inspiring from a visual point of view!
I guess having a forest would be interesting. Start with multiple trees colonizing and competing for the same space.
12:52 watch how easy, takes three tries
still nice videos keep it up
Brilliant! From Daniel to his tutorials!
The visual leaf isn't required... try running it commenting out the ellipse() in the Leaf class - get a much more 'natural' looking growth
Would there be a way to use "leaves" to draw out letters and have "branches" grow from the letters?
Also, I can't stop watching your tutorials, I'm not very good at programming and only have experience in BASIC, but I love watching you get from point A to point B! You have such a positive attitude! I love it!
Dylan Beaulieu There would be, instead of randomly generating each leaf location you could turn the text into a vector-graphic and use those coordinates, however you may need to scale and transform those coordinates to fit your liking . You can google how to turn text into vector graphics if you are unsure. It will probably require a little more thought than what I have given it but this may point you in the right direction
Actually, some leaves remained not because they were at the same distance but because they were in the opposite direction which cancels each other, because you normalized the vector. You could solve the problem by making the vector stronger if the leaf is closer.
The real problem is in the paper they are not the "leaves", they are attractors for the branches. Dan is overloading the meaning
"it's so sad, it's still flat"
nice.
trees grow by having a rythmn at the apical meristem. Where they produce a node and then an internode and then repeat. each node grows phi rotation around the stem...
All that is explained in the paper
Thanks for the great videos! The research paper mentions further processes like node decimation and relocation and curve subdivision. Do you know where we can find code examples for these steps? Honestly I've read through the paper several times now and these parts are somewhat vague in the text.
Really cool!
thanks!
can I use this tree as a logo for my death metal band?
Incredible work!!! Congrats! But maan! Would I love seeing this in Python!
Can't you also test if distance between leafs to branch is the same or less than 1 (for example) just connect them both to the one branch?
Hi! Would it be possible to create different classes of trees that could be drawn and reset the sketch?
Holy moley, this is really beautiful 8o
why is it giving me error "might be mixing active and static nodes" on line 1 - Tree tree;
Hey this may belong to the video before but how can I order the leaves in a circle like you did there? I tried to figure out in the processing code but im not familiar with that and cannot translate it into p5.
Black metal bands will create its own logos with this algorithm from now! They will be so thankful. 🤘
instead of a min and a max distance to feel the leaves pull, what if it was a gradual weighted thing? like gravity the closer you are to the point the stronger you are drawn to that point
and it could be actual colonization of outerspace if you think off the leaves as stars and the branches as the path traveled by the colonizing race in a game this could be used for generating star map territories by having several diffrent trees fight over the same leaves
just draw the leaves and not the branches
+Nathan King interesting suggestions thank you!
Daniel Shiffman i wasn't reading and i made the mistake of suggesting a coding challenge on your twitter instead of your github, so what do you think about doing a raycasting thing?
like wolfenstein 3D?
i mean sure processing might actually make it easier to do real 3D but you can't beat that retro pseudo3D feel
leaves are thin and light, ergo easily affected by the wind. If a leaf were to drop like a ball then that'll look pretty unrealistic
Great video! Keep 'em coming!
I tried to download the code from GiTHub but I can't get it to work on my computer.
Is the tab order important?
I get an error saying that the class (Branch) cannot have the same name as the [something]
I'm guessing I've done something wrong here
As I said : Keep the videos coming!
Thanks
Yep!
The tab order is important...
It's working now!
Wow!
Is processing used with c c++ & c#? Or is it multi lingual so JavaScript.is also useable? I.e .is file extension?
Processing is a java library.
Can you make a video making 3D trees without space colonization?
@Daniel Shiffman Nice video quite informative.
I am working on something right now and I wanted to create tileable textures and heightmaps using a perlin and a simplex algorithm I purchased. Unfortunately while I am familiar with creating heightmaps and procedural textures using perlin and simplex noise I have no Idea how to make them wrapable in any way. Could you explain wrapping perlin or simplex noise for me?
Thanks for the video's we need more public information like this in the world.
take a look at this video: th-cam.com/video/IKB1hWWedMk/w-d-xo.html
Daniel Shiffman
I've already watched that but it hasn't taught me anything new really but thank you. That's basically a how to heightmap with perlin which I am perfectly fine with and understand, but it doesn't explain how you can tile or wrap the output so that when you reach a limit it repeats. I was asking if you could do a video on seamless tiling with perlin or simplex noise.
Please.
I have a new system for taking questions and topic suggestions: github.com/CodingRainbow/Rainbow-Topics/blob/master/README.md
awesome vids !.......seems the p5 ver never happened ?........would it just be similar .....webgl & 3d points/vectors ?...anyone know ?.......is there an ultra simple camera thing like peasy for p5 etc.?
Yes, check out the doco. I believe with the latest version of WebGL, much of previous difficulties have been overcome,including wrapping textures on native and defined objects. Best is to try it out, I guess, and report ;)
where do you stream?
NYC!
I only know the p5 library, what else does Processing contain for him to switch back and fourth?
it's a lot faster
Can I find this algorithm somewhere on the net?? Please inform me if anyone knows
Really disappointed you switched from javascript on 17 to processing on this one! Is there not a p5 version of this?
You can request a JS port here! github.com/CodingTrain/website/issues
I did this!! and now.. how could I save is it in a 3d file format?
(sry about my english and (I guess) my naive question, anyway, I love this channel :D)
Try DXF! processing.org/reference/libraries/dxf/index.html
thanks a lot ^^
I can't see all class of branch
Why are you doing pushMatrix() and popMatrix() with ellipse in 3D space?
I think it's because the ellipse function only get X and Y as arguments. Since he wants them to know where to draw itself on the Z axis, he uses translate the with X, Y, and Z as arguments and now he can draw a 2D shape with only two arguments but the 2D origin (0 , 0) is now also the 3D origin (0 , 0 , 0), pushMatrix and PopMatrix are used to reset the origin so he can translate to the next ellipse, it could be done without using push/pop but it would need to calculate the position of each ellipse in relation with the previous one, it would be more complicated and slower to render.
pushMatrix() Saves the state of the Matrix, which is the position of the origin and its orientation. those can be changed with the translate() and rotate() functions.
popMatrix() Loads the matrix previously saved by PushMatrix()
+Pierre-Luc St-Jean Thanks
+Simon Bouchard J'aurais été plus à l'aise de te l'expliquer en français étant donné que ton nom est clairement Québécois mais bon ^^ ça sera pour une prochaine fois :P
C'est ce que j'avais déduis également :p
Please let me know the language of code and where are you writing it? Is it JavaScript? Ide?
This video uses Processing (which is built on top of the Java programming language). For more info, visit processing.org and also this video might help th-cam.com/video/AmlAiKsiy0o/w-d-xo.html.
on what software do you code ?
Processing: processing.org
oh, thanks, i thought it was just a librarie
P3D doesn't work for me. I don't know why?
I would suggest posting your code and asking at forum.processing.org!
i kind of missed the rule for forking branches. could someone please fill me in?
yeah, i think i can follow your thought process. thanks.
I think this is sort of right but not quite. Branches can only have one child at a time, with the direction affected by nearby leaves, however a branch can still grow another branch after it already has a child.
*from farther away
Space colonizer 3D?
What?
this is the one 1 created .. check it out github.com/isira11/Fractal-Tree