Ah finally I clicked!! But i forgot to apply discount LOL!! I always wanted to have that book, was so hyped !! THANKS!!!!!!!!!!!!each time i see one of your video ,i want to write a shader or do some procedural modelling 🙂
Maestro, I just preordered Nature of Code (love the color of the book BTW); I will get it on Dec 10 (I am based in Australia). In the meantime, would you recommend going through the old book? The one with Processing... I have read parts of it, but not the entire book. Would you recommend that or do you think the old book is no longer relevant? Thanks,
@@farazk9729 You could still read it yes, however, I'd recommend just reading the new one on the website until the physical book arrives! natureofcode.com/
A friend of mine and I coded a version of this for the TI-83 calculator back in high school (holy crap more than 25 years ago)...his version was an insane recursive algorithm because of the memory limitations of the calculator - couldn't write a long list of the segments and do a simple transformation on it to double up and make the next segment. His algorithm actually drew the curve one line at a time...and determined the orientation of each arbitrary line segment up, down, left, or right - as the n'th line of the i'th iteration. That way, he could just draw that one line, then the next, then the next. One of the harder parts was scaling the screen coordinates so that line segments were integer multiples of the number of pixels available to prevent weird moire/aliasing patterns emerging.
I found your channel a few days ago and since then every time i have an idea and mention it to someone, a video of you doing it is recommended to me by youtube. that's kinda cool. i ordered the book and i look forward to trying out all this stuff. Thank you!
Why does this guy never get old? Literally the only thing that changed (AFAIK) is the color of his hair. His style of videos is still the same as it was 8-9 years back.
I would have thought that treating each line as a unit and the rotation as simple arithmetic of the number of units in each direction on the path, the problem becomes way easier to compute... Simple turtle movement!
This problem can be solved by constructing an array of integers. The value of an array element is the direction of the "turtle" movement. 0-up, 1-right, 2-down, 3-left. At the first step, the array consists of one element, at each subsequent step, the length of the array increases by two times. The added part of the array is filled with values as follows: let N be the length of the array A at the current step. 1) increase the length of the array to 2 * N. Each A [i] element in the range from N + 1 to 2 * N - 1 receives the value A [i] = (A [2 * N-i-1] + 1) % 4. As a result, the right part of the array contains a mirror copy of the left part, rotated 90 degrees to the right. The operation (X + 1) % 4 is the rotation. The result is drawn by calculating the offset of the next point from the previous one in the direction specified by each element of the array A
The math may not be as simple as you make it seem if you're on some platform that doesn't have a rotate function. For me it was a bit of a thinker to figure out how to apply the rotations. I came up with complex numbers. Format each point being rotated as a complex number, subtract out the point of rotation to transform the point of rotation to the origin, multiply the result by 0+1i to apply the 90 degree rotation, and reapply the transformation from 0,0 to the point of rotation.
Can you do Newton fractals next? They're not strictly recurring fractals like you have been doing but it's still a really super cool fractal and worth looking into!!
Really cool video. Your way of reasoning and debugging seems smart. Talking out loud and kind of explaining the code. Reminds me of rubber duck debugging.
I programmed it once in java by defining 2 functions calling each other. draw() draws a little segment and left() and right() are turning 90°. To start it just call draw() and f(n) right after it: private void f(int n) { if (n > 0) { f(n - 1); left(); draw(); g(n); } } private void g(int n) { if (n > 1) { f(n - 2); right(); draw(); g(n - 1); } }
Hey Dan why don't you explain some popular generative art codes and how to make them, this is just for learning more from tou generative art community.
For the next tutorial could you do a soft body collision but with more in depth collision like the lines collide and it uses a bounding box and all that jazz
If I were you I would store x and y coordinates of vertecies in a seperate array. Find the max values each time and divide them by 2. I would update my zoom and canvas center according to that.
@@TheCodingTrain I am not a programmer. Just a hobbyist :) Your comment means so much to me 🙏 Animation speed may be also adjusted according to circumference of the whole rotating part. Some trigonametry may get involved :)
Would love to buy the physical copy of The Nature of Code but shipping to Australia is $56 US and all up it would be just shy of $100 AUD, can you look at a cheaper option to ship to Australia pretty please?
Can you search local online book retailers? It's being distributed internationally be Penguin Random House so you should be able to find it! Make sure it's the 2024 version and not the 2012 version. Let me know at daniel@thecodingtrain.com b/c lots of folks are asking!
should add something for sale on your NOC site -- signed copies of the book even if it just said "thanks for the support! - Dan" i'd pay extra for it 😊 edit: buying one anyway for my birthday
I'm trying to make a list of all the international retailers that carry it for the website Can you find it on here? www.buscalibre.com/ If amazon will ship to you, it will likely have it as well. Let me know!
I'm not the only Brazilian who loves this guy 🎉 I would also like to have this book. I'm a programming teacher and I've been using processing in my classes for 3 years. (BR) Eu não sou o único brasileiro que adora esse cara 🎉 Também gostaria de ter esse livro. Sou professor de programação e a 3 anos uso processing nas minhas aulas
@@RicardoPrediger akakka Eu assisto o canal há anos! Nem sempre faço tudo oq ele mostra mas me divirto muito vendo ele programar kakakak Sou programador e venho aqui pelas aulas akkaka
25% off Nature of Code with code CHOOCHOO: natureofcode.com (also includes exclusive sticker+bookmark!)
🎉 I pre order the book in July (to Vietnam), waiting for your beautiful sticker and bookmark 😊
@@vu_derArchitektthank you for the support!
Ah finally I clicked!! But i forgot to apply discount LOL!! I always wanted to have that book, was so hyped !! THANKS!!!!!!!!!!!!each time i see one of your video ,i want to write a shader or do some procedural modelling 🙂
Maestro, I just preordered Nature of Code (love the color of the book BTW); I will get it on Dec 10 (I am based in Australia). In the meantime, would you recommend going through the old book? The one with Processing... I have read parts of it, but not the entire book. Would you recommend that or do you think the old book is no longer relevant? Thanks,
@@farazk9729 You could still read it yes, however, I'd recommend just reading the new one on the website until the physical book arrives! natureofcode.com/
A friend of mine and I coded a version of this for the TI-83 calculator back in high school (holy crap more than 25 years ago)...his version was an insane recursive algorithm because of the memory limitations of the calculator - couldn't write a long list of the segments and do a simple transformation on it to double up and make the next segment. His algorithm actually drew the curve one line at a time...and determined the orientation of each arbitrary line segment up, down, left, or right - as the n'th line of the i'th iteration. That way, he could just draw that one line, then the next, then the next. One of the harder parts was scaling the screen coordinates so that line segments were integer multiples of the number of pixels available to prevent weird moire/aliasing patterns emerging.
The added visuals for explaining the code on-the-fly is an awesome addition! I love it
To get the last element, you can do Array.at(-1)
Yes, last segement. Length
@@69zwaan but splice creates a new array, where as .at just references the existing one
pop() ! 😂
@user-sy4sf8gq4p pop() removes the last element as well as returning it.
@stio_studio not a trick, just brand new!
I found your channel a few days ago and since then every time i have an idea and mention it to someone, a video of you doing it is recommended to me by youtube. that's kinda cool. i ordered the book and i look forward to trying out all this stuff. Thank you!
Thank you for the support and kind words!
If Dan doesn't lose his mind at least once, the Coding Challenge isnt worth watching! 😂
Love it as always!
The coding challange is ALWAYS worth watchig!
Why does this guy never get old? Literally the only thing that changed (AFAIK) is the color of his hair. His style of videos is still the same as it was 8-9 years back.
Hey Dan. Your book arrived. I LOVE IT.
Yay!! Thank you for the support!
This is a good visual example of compounding.
This is great. I thought for sure you'd be using matrix multiplication to handle the rotation, but your way is clean and easy to understand too.
That was a fun one to watch!!
I'd love to see more videos like the Apple ][ Coding Challenges. They were a refreshing change of pace. Or the ones where you worked in the shed.
I would have thought that treating each line as a unit and the rotation as simple arithmetic of the number of units in each direction on the path, the problem becomes way easier to compute... Simple turtle movement!
Line packing to remove lines that already exist / overlap in the array of lines.
Yes, good idea!!
I think it is easy to prove that this doesn’t happen
Dirtywave M8 is my dessert island instrument…get the MK2. It has a microphone and a bigger battery and a bigger screen. So worth it
I love you Dan. "Except for the very first time"!!!!!!
Yet another astonishing intro... Keep up the great work!
This problem can be solved by constructing an array of integers. The value of an array element is the direction of the "turtle" movement. 0-up, 1-right, 2-down, 3-left. At the first step, the array consists of one element, at each subsequent step, the length of the array increases by two times. The added part of the array is filled with values as follows: let N be the length of the array A at the current step. 1) increase the length of the array to 2 * N. Each A [i] element in the range from N + 1 to 2 * N - 1 receives the value A [i] = (A [2 * N-i-1] + 1) % 4. As a result, the right part of the array contains a mirror copy of the left part, rotated 90 degrees to the right. The operation (X + 1) % 4 is the rotation. The result is drawn by calculating the offset of the next point from the previous one in the direction specified by each element of the array A
I am so glad I found this video!! I literally have the dragon curve tattooed on me :D And I drew *lots* of Hilbert curves in school haha
The math may not be as simple as you make it seem if you're on some platform that doesn't have a rotate function. For me it was a bit of a thinker to figure out how to apply the rotations. I came up with complex numbers.
Format each point being rotated as a complex number, subtract out the point of rotation to transform the point of rotation to the origin, multiply the result by 0+1i to apply the 90 degree rotation, and reapply the transformation from 0,0 to the point of rotation.
Can you do Newton fractals next? They're not strictly recurring fractals like you have been doing but it's still a really super cool fractal and worth looking into!!
You can add it here! github.com/CodingTrain/Suggestion-Box
Really cool video. Your way of reasoning and debugging seems smart. Talking out loud and kind of explaining the code. Reminds me of rubber duck debugging.
I programmed it once in java by defining 2 functions calling each other. draw() draws a little segment and left() and right() are turning 90°. To start it just call draw() and f(n) right after it:
private void f(int n) {
if (n > 0) {
f(n - 1);
left();
draw();
g(n);
}
}
private void g(int n) {
if (n > 1) {
f(n - 2);
right();
draw();
g(n - 1);
}
}
this guy is like the bob ross of coding
This dot!
Hey Dan why don't you explain some popular generative art codes and how to make them, this is just for learning more from tou generative art community.
For the next tutorial could you do a soft body collision but with more in depth collision like the lines collide and it uses a bounding box and all that jazz
If I were you I would store x and y coordinates of vertecies in a seperate array. Find the max values each time and divide them by 2. I would update my zoom and canvas center according to that.
I like this idea!
@@TheCodingTrain I am not a programmer. Just a hobbyist :) Your comment means so much to me 🙏 Animation speed may be also adjusted according to circumference of the whole rotating part. Some trigonametry may get involved :)
love your videos! :)
The king of js in the planet
Geweldig idee, maar je kan ook met image.copy =[] of cretegraphics is dat mijn goede idee?
hey I caught it in 16 seconds :D
Would love to buy the physical copy of The Nature of Code but shipping to Australia is $56 US and all up it would be just shy of $100 AUD, can you look at a cheaper option to ship to Australia pretty please?
This link should help! www.penguin.com.au/books/the-nature-of-code-9781718503700
Hey, great video :) p.s, can you share the QUAD-Tree code please?
Hello, Dan! How are you!! Your work is wonderfull! I would like to know if you can ship you book to Brazil.
Can you search local online book retailers? It's being distributed internationally be Penguin Random House so you should be able to find it! Make sure it's the 2024 version and not the 2012 version. Let me know at daniel@thecodingtrain.com b/c lots of folks are asking!
nifty
he Billy Mayse'd the challenge with boom
This went from done to car crash in about three minutes flat 😂
from 208 i seeing that you only work on p5
should add something for sale on your NOC site -- signed copies of the book
even if it just said "thanks for the support! - Dan"
i'd pay extra for it 😊
edit: buying one anyway for my birthday
Unfortunately I don't have an easy way of doing this, but I will be hosting events in NYC where I will sign the book!
Que doido, achei que só mr beast fazia video dublado em portugues 🥳
Is it a casio calculator watch? :o
indeed, good catch!
The book is not available in India. Please do something 🙏
I’m going to ask No Starch about this. It’s being distributed by the publisher internationally! Feel free to contact them on their website also.
🎉🎉🎉🎉
Is this what was in Jurassic Park?
It’s always this.
Hi! Can you please make more videos on the Apple ][? Maybe TRY coding a platformer in it? Or graphics mode Snake?
can you make tornado :D
Is there a way I can buy the book in Brazil?
I'm trying to make a list of all the international retailers that carry it for the website Can you find it on here? www.buscalibre.com/ If amazon will ship to you, it will likely have it as well. Let me know!
(Make sure when you look you don't buy the older 2012 version by accident. You can tell by the cover and the publication date)
I'm not the only Brazilian who loves this guy 🎉
I would also like to have this book. I'm a programming teacher and I've been using processing in my classes for 3 years.
(BR) Eu não sou o único brasileiro que adora esse cara 🎉
Também gostaria de ter esse livro. Sou professor de programação e a 3 anos uso processing nas minhas aulas
@@RicardoPrediger akakka Eu assisto o canal há anos! Nem sempre faço tudo oq ele mostra mas me divirto muito vendo ele programar kakakak Sou programador e venho aqui pelas aulas akkaka
Don Knuth has this curve on his wall at home. There was a Numberphile video about it.
Haven't watched it full yet, but wouldn't vectors be better than your own segment class?
You are technically drawing a lot of lines on top of each other.. you could optimize by removing duplicate lines
hi there, could you please try game ‘The Farmer was Replaced’ its interactive coding base game using basic python to control the drone to solved maze
Hi
second!