This guy has such a talent for breaking down complex topics into digestible information. I am so grateful for this channel.
@icecrack45793 жыл бұрын
Hey, inspired by you, I downloaded processing, and is now learning about data types. Thanks for your wholesomeness, and positivity.
@baconheadhair693827 күн бұрын
please don’t be a jerk and just be a good friend
@gabeapger18463 жыл бұрын
After years scratching my head about cubic splines, your explanation was the the most intuitive and clear. I will never forget this. Thank you for this great tutorial!
@windubitably3 жыл бұрын
I really enjoyed seeing the code for that one screensaver from the 90s.
@danielalvesaarte3 жыл бұрын
I haven't watched the whole video, but I'm so happy that this exists and that you exists. Your work is incredible, and always makes me fell so happy. Also, I'm a visual artist and a programmer, your channel is perfect for me
@HritikRC3 жыл бұрын
The cool thing about this channel is that it literally covers almost every aspect of programming, even the JavaScript libraries. Keep it up!
@JBFFSK183 жыл бұрын
wow, that was a great video. all those details, the video itself, the use of timestamps, the way it's cut/presented, just... everything
@KyleNally3 жыл бұрын
"I don't know what I've made here..." Why, you've made an old Windows screensaver, of course. I can't possibly be the only one who remembers this one!
@cipher39663 жыл бұрын
Not the only one. I am from the 90s too.
@reyariass3 жыл бұрын
He should remake the pipes ones
@Bunny99s3 жыл бұрын
Well, you probably think of the old win95 mystify screensaver: kzbin.info/www/bejne/pl7LoKqDnauYmbM#t=8s It still existed in win XP: kzbin.info/www/bejne/q4u0o2Cdfd6MfKs This is the classic one. However there's a newer version called Mystify in win10: kzbin.info/www/bejne/r3aWc4eKqbV-eJY The old one just draws 2 quadrilateral where the 4 points are bouncy balls. Each of the two quadrilaterals have a certain amount of "history". So each frame the bouncy balls advance and a new shape is drawn, but the old ones still remain. so if a shape has a history of 12, there are always the last 12 copies of the shape on screen. When a bouncy ball was reflected it got a random velocity to add more dynamic to it. It was a very simply screensaver. The Win 10 version actually draws "curves". It's hard to tell because they added a lot of blur and glow and it fades out rather quickly. Though it may just be a leading vertex that moves around and drags the other control points behind by some constraints. While the general idea is similar, it works a bit different. They most likely just use a render buffer and never clear it as usual but simply let that buffer fade to black all the time. So the newly drawn shapes are bright while everything else is constantly fading away.
@baconheadhair693827 күн бұрын
@@cipher3966same
@onebeartoe2 жыл бұрын
I love this video! I wish I had seen in High school; the '90s.
@__Junioor__3 жыл бұрын
the bouncing particles at the end really reminded me of the dvd thing hitting the corner of the screen
@ninjaasmoke3 жыл бұрын
I started watching the coding challenge series a weeks ago. For me it's been a week or 2, but for David it's been years! I'm inspired to see the love and enthusiasm he still has!
@cassiofbs2 жыл бұрын
I love it too, but who is david?
@baconheadhair693827 күн бұрын
@@cassiofbsI am david
@thejintent27703 жыл бұрын
Absolutely one of your best videos yet! Keep up the great work!
@tnczm3 жыл бұрын
Just want to say the production is on another level now! I've been a fan for a while, and love your clear explanations!
@TheCodingTrain3 жыл бұрын
Thank you, glad to hear that! (Especially given I had some audio issues with this one)
@juliankollataj_moves2 жыл бұрын
@@TheCodingTrain Yes, I love the way the production quality has evolved over the past 6 years that I've been watching! :D
@sumanthhegde51483 жыл бұрын
It's so sad to see you getting old. Love you Daniel! You are amazing. :):
@rossikatti17883 жыл бұрын
You read the minds of artists/programmers: all your tutorials are gold!
@gownerjones Жыл бұрын
This might just be the best programing channel on the entire internet
@RobinFoxie Жыл бұрын
This is phenomenally useful and such a good breakdown. I've been clueless all morning; now 20 minutes later I'm sorted. Such a great video!
@AkshatRamanathan2 жыл бұрын
Ive been following this channel for the last 5 years and I went from someone who hated web dev to a working frontend developer. but the best part is I still subconsciously learn more about math than programming and i fucking love that.
@SteveRowe3 жыл бұрын
Daniel, I love the work you're doing. Thanks for teaching!
@azyfloof3 жыл бұрын
14:46 This was the penny drop moment for me! The way the bezier was calculated, and the reason the curve doesn't come close to the control point, suddenly made clear 😮😀
@peterklenner25633 жыл бұрын
The Bezier function was explained in such a casual and easy way. Just beautiful to watch!
@avinash56513 жыл бұрын
That's only one channel all over the KZbin which I like a lot I love to learn with u that's awesome moment
@afzalmahmudd83653 жыл бұрын
the explanation of the white bord.just wow! . thank you sir.
@aurelia4483 жыл бұрын
currently learning some stuff for programming as i intend to study it in some years , the biggest thing about your channels is that you explain it in a really easy way , step by step and even the math behind it! the way you teach , explain and show is so funny and enjoyable! so much talent and so much passion for your channel i love it!
@oluwatomisinbabatunde84263 жыл бұрын
I've had a rough couple of weeks but this does put a smile on my face and I don't know how. Thank You.
@MichaelJamesActually3 жыл бұрын
I really enjoyed that! You made your very own Windows 95 Screen Saver!
@victoriaceliacesarferreira5766 Жыл бұрын
You're so passionate about teaching and coding, thank u so much all this free information
@artistpw3 жыл бұрын
I love watching these videos. These really are just amazing. With all of the lines, these absolutely resemble "shade sails".
@martingregson7136 Жыл бұрын
Once again, this guy has blown my mind with his simple, helpful, humerus interpretation and implementation of what would normally be a complex coding nightmare. Bravo, bravo... keep it up Dan...
@kristianwichmann99963 жыл бұрын
Very lucid :-) For those interested, the mathematical process of finding a curve tangent to a family of lines (or curves) is known as an envelope.
@qwwongs333 жыл бұрын
Very nice content! I've implemented this algorithm before and used it frequently , especially bezier animation! I hope you can continue this series because i am very interested in understanding these type of algorithms. You are the man who brings me to the world of computer graphics, thanks man
@tf2player9433 жыл бұрын
Used this to draw tubing for a project but didn't know the math behind it. Very interesting to see, thank you
@crewrangergaming95822 жыл бұрын
A developer for 10 years now, and watching this channel makes me love coding again.
@thechargeblade3 жыл бұрын
Thanks so much for the video, when you explain it, it is very intuitive and very easy to understand.
@Phi16180333 жыл бұрын
I'm not saying I'm watching this while on mushrooms. I'm just saying if I _were_ watching this, there's _a chance_ I'm watching it while on mushrooms.
@wouf_5 ай бұрын
I’m not saying that I don’t care but there is an high chance I do not care
@eointolster3 жыл бұрын
When I get a job I'll donate again. Thank you for your work. Helped me get my last job
@JasimGamer3 жыл бұрын
The master of inspiration I never understood what is lerp function Now its soo clear ❤
@DogwafflDan2 жыл бұрын
Thanks for this video. I've been trying to come to grip with curves for decades
@HIHIQY13 жыл бұрын
woah, bézier lines make sense now!
@andrewmackenzie26382 жыл бұрын
Congratulations you made the old Windows Bezier screen saver! This is awesome.
@pw72252 жыл бұрын
A few years back I left a comment underneath a Coding Train video. It was critical because the content was too playful to me and too time-inefficient. I wanted to quickly learn what I had opened the video for. Now, I want to apologise for my arrogance. I think what you have done with Coding Train is nothing short of amazing. I hope many kids will be inspired by you to learn maths, computer science and create art. Never stop.
@jmckinney00403 жыл бұрын
I have always wanted to know how this works! Also I've used a function similar to lurp before and I always wondered how it could do that. Thanks for breaking it down for all of us. Keep up the awesome work!!
@MrJCraft3 жыл бұрын
Tips for beginners: you can imagine a bezier curve like this. you are bob and your friend jane is across the road she is walking to the end of the road in a straight line. but you dont know where she is going, so you look directly at jane and walk forward, as she moves down the road you stay facing toward jane, and continuously walk forward until you meet her at the end of the road. as you walked across the road your foot prints would be a bezier curve. that's how I accidentally discovered bezier curves while trying to make a curve generator in a video game lol. I hope that my explanation will help anyone confused.
@Forjugadname3 жыл бұрын
Really awesome vid. I've been using Bezier curves in Unity for a while even converted bezier code into DOT's code but I didn't understand the underlying bezier code, that is until now thanks to you.
@sps0143 жыл бұрын
Great explanation, finally these equations make sense
@rikfomiharbi60773 жыл бұрын
I love your videos, especially coding challenges so informative :)
@joweber74923 жыл бұрын
Great video. Certainly demystifies the inner workings of Bezier curves. I also wanted to say that the coloured boxes that you draw around snippets of text really help to understand what you trying to point out. Keep up the great work!
@sofia.eris.bauhaus3 жыл бұрын
i've done a fair bit of drawing with bezier curves and i wrote a lerp fuction once, but i had no idea that a bezier is just a lerp of a lerp. that is so cool! :D
@reyariass3 жыл бұрын
Same! That is just mind blowing to me!
@cmyk89643 жыл бұрын
The cubic Bézier curve we love is a lerp of a lerp of a lerp!
@sofia.eris.bauhaus3 жыл бұрын
@@cmyk8964 or a lerp of two lerps, that's how i like to think of it.
@brunesi2 жыл бұрын
Oh man... you and your pineapple shirt... you brought a smile to my face already at 4:30... you got the gift of teaching... One would never snooze at your presentations.... very well done.
@rituchandra63253 жыл бұрын
Amazing explanation for bezier curves! This explanation was so good that I probably will not forget how bezier curves are drawn, not after having heard the term "lerpception" XD. Once again, awesome explanation!
@youreale3 жыл бұрын
Dan, you are a force of the nature. Thank you man!
@MikeMcRoberts3 жыл бұрын
Please do a tutorial on mapping stars against a sky sphere, i.e. declination and right ascension co-ordinates for a star map, mapped onto a screen.
@eduardo_messias3 жыл бұрын
Another mind-blowing video. Congrats!
@Amr-Ibrahim-AI3 жыл бұрын
I love your passion! Thanks for the great tutorials and coding challenges :)
@itsjmmariano2 жыл бұрын
This is complex to me but the initial explanation made my understanding of this concept clearer. Thank you for this wonderful content!
@TheGrenvil3 жыл бұрын
I remember when I was a kid and discovered that you can make a curve with straight lines and I started drawing a bunch of those curves messing with all sorts of parameters, apparently young had just rediscovered bezier curves, that's really cool
@Scotty-vs4lf2 жыл бұрын
i actually used to do the same thing, when I saw the string art i was like wait what
@Simone-xe9cw Жыл бұрын
Nobody seems to underline WHY Bezier curves are so wonderful, they changed the way we can mathematically/practically describe very complex curves without using "classic" expressions. The whole mathematic model of a Bezier curve is a set of modules really (I had to calculate them manually for a couple of exams at university back in the day). It's not just "a curve", it's a way to recursively describe a whole range of shapes that would take an insane amount of mathematical tinkering if done differently (nevertheless they allow for much more precise industrial calc for design and manufacturing). Edit: I am no mathematician sorry for my sloppy explanation but I hope you get the idea, feel free to correct me if something is too sketchy ^^
@anonymousvevo86973 жыл бұрын
like usual , always stunning ! thank you , love it
@THEN0RTH3 жыл бұрын
This is underrated!
@SridharGajendran3 жыл бұрын
A topic I always wanted to learn.. Thanks Dan..
@AIDANTHOMPSON-ru6nn11 күн бұрын
Wow. Didn't realise that lerp did this for this bezier curve. Here I was scratching my head for months with loads of nonsense formulas I can now create a racing track game that cars can follow the bezier curves with ease.. Genius Cheers.
@ninjaasmoke3 жыл бұрын
I was soo happy to see processing update their website to a react webapp!
@wchen23403 жыл бұрын
I love the "and because they are seperate lines - I can make them rainbow colored" - part.
@Gazaze2 жыл бұрын
i'll probably remember bezier curve as LERPCEPTION forever xD thank you so much for such a simple but great explanation!
@Digiur3 жыл бұрын
Congrats! You made a screensaver from windows 98! Beautiful!
@KyleNally3 жыл бұрын
Damn, and here I was scrolling through and feeling smug that nobody had mentioned it yet. Sigh.
@wimjongman3 жыл бұрын
Awesome. I enjoyed that very much.
@TheJas-vr2vr2 жыл бұрын
Seeing cubic calling quadratic brings to mind the possibility of a quintic bezier, or even a recursive function that can go even further...
@metalhead24766 ай бұрын
Now I know how kuka's robot spline function works! Thank you
@kken87663 жыл бұрын
love your videos! its practical, unique, challenging, and informative =)
@flwi3 жыл бұрын
That is an awesome explanation! Thanks for that! Got stuck on bezier curves a while back while trying to solve the Mars lander challenge on codingame. Maybe I'll give it another go, since I now know that bezier curves are not that mystical.
@HermanWillems3 жыл бұрын
Amazingly explained. I don't have to say more. :) Bezier Curves are amazing.
@Sabecontar3 жыл бұрын
Nice. I've been following you for a hort time but already love your videos so much, that I started making my own videos inspired by you. Thanks
@nightcoder5k Жыл бұрын
I had a chance to write some dancing graphics with splines in X11 on a SunOS back in college. Great video on how splines work. Thanks!
@velvetrock99333 жыл бұрын
Right in the moment when i neede it! Thank you for a great content!
@ophello3 жыл бұрын
WHOA - when did your channel videos get so incredibly condensed and polished?
@TheCodingTrain3 жыл бұрын
It's unclear to me if it's universally an improvement or not but this is all thanks to the work of Coding Train editor extraordinaire @mathblank!
@ophello3 жыл бұрын
@@TheCodingTrain I’d say it is. It’s easier to digest the videos in a timely fashion, and it cuts out the fat.
@komojo3 жыл бұрын
If I'd learned about Bezier curves this way in school I could have saved a lot of time. Calculating it as nested lerp functions instead of polynomials (the deCasteljau algorithm) is indeed more computationally expensive, but it's also more numerically stable.
@doctorbearphd3 жыл бұрын
Entertaining and educational as always! Love ya, man!
@romajimamulo3 жыл бұрын
As someone used to Inkscape, these feel really natural
@sauliustb3 жыл бұрын
liking the post editing. great vid :)
@QuantumLokiАй бұрын
Rather than making separate functions for the Quadratic and the Cubic and so on, I approached it recursively using 2 functions. The first one taking in an array of points and a t value. which either returns the lerp of the 2 points if there are only 2 values. Otherwise it calculates the lerps between each pair of points stores them as a new array of points and feeds them back in to its self. Essentially this function returns the point value of the Bezier at the t value supplied. The second function takes the original array or points and a "resolution" integer value. This one essentially takes the resolution number of points and plots the loops over the t values to plot the points to the Bezier curve calculated with the supplied control points. The whole lot is then returned as an array of points.
@QuantumLokiАй бұрын
// Written in Java //Vector2D is my own vector class. //Lerp is also my own lerp class public static Vector2D getPointAtT(Vector2D[] controlPoints, double t) { if(controlPoints.length==2) return Lerp.lerp(controlPoints[0], controlPoints[1], t); else { Vector2D[] newControlPoints = new Vector2D[controlPoints.length-1]; for(int i=0; i
@sinom3 жыл бұрын
Freya Holmér just made a great video about bezier curves a few days ago
@TheCodingTrain3 жыл бұрын
I know!! It is so beautiful
@foxtrotsFoxy3 жыл бұрын
Inspiring stuff, as always
@Steve85-GTX5 ай бұрын
I don't know if anyone has already said this, at 15:25 the last tangent line isn't drawn I think to fix this you change code to: for(let t=0; t < 1+delta; t+=delta) I think the reason is 100 segments has 99 divisions so you lerp 1 less than how many segments/resolution you want.
@JesterUGA9 ай бұрын
You made a screensaver, and it is awesome!
@rosslahive2 жыл бұрын
Another great video, thanks so much.
@ashaygoli30143 жыл бұрын
Very well done video!!... Congrats you made a bezeir screensaver😆
@hamidbakhtiari39863 жыл бұрын
Is this the first video with this new type of editing? IT IS AWESOME!!! I really liked it!
@leonardoperina40363 жыл бұрын
Awesome tutorial as always, I hope it might help but to avoid the js rounding I wrote (in Processing) for(float t=0; t < 1+delta; t+=delta), I'm not sure it's the best solution but I think it might be more adaptable when delta changes. Anyway, the tutorial was extraordinary :D
@jeffreyblack6663 жыл бұрын
There are more than just the line, quadratic and cubic beziers. You can get as many control points as you want. For example, you could have a bezier with 100 control points.
@rattlesnek60772 жыл бұрын
You should take a look at making n-degree bezier curves and operations on them using matrices, it's much much simpler
@minamagdy41263 жыл бұрын
By the way, you could have a recursive Bezier creator, as well as a version with the nets, very easily if you instead passed a list of vectors. Roughly, you recursively call it for a lower degrees on both all but the last vector, and all but the first vector, then you lerp the output vectors as in the video. The base case would be the line (first degree)
@rain33773 жыл бұрын
Happy teacher's day....Guru ji 😊❤️ from India 😊
@AkshatRamanathan2 жыл бұрын
I wish all math/geometry and calculus implementations are taught like this (advance calculus, etc.) to learn intuitively than just memorize formulas and their implementations.
@wanderwithdaniel2 жыл бұрын
I love your work man !
@richardlowenthal23663 жыл бұрын
Thank you! This is a great tutorial.
@vigneshsp46193 жыл бұрын
I think Lerpception Curve is a better name than the bezier curve. Thank you So much this is so good, Can we have b-splines as well.
@ToufouMaster3 жыл бұрын
Lerpception is an awesome name
@GroterRonald3 жыл бұрын
Heel erg mooi, dank u voor de video J. Oswald
@SrinivasMangipudi3 жыл бұрын
Its amazing you never fail to entertain!! :D
@larryd95773 жыл бұрын
To avoid the "javascript-error", it actually occurs everywhere, if you use floating-point numbers. Just use for t integer values, or better introduce i as an integer for your iteration and then in the body of the loop define a t, then your iterations are accurate and you can still use t as an float for your calculations.