Wow, this video really blew up! Thank you for watching! :) I want to answer some frequent questions from the comments: *How did you make this video?* • All of the visuals were created in Processing! *Can you do this in ?* • Yes, absolutely! This can be done with anything that lets you render stuff to the screen. • Most engines even have robust rigging systems if you want to skip the math :) *Where can I learn more?* • I haven't been able to find any well-compiled sources on procedural animation, which is why I only covered the absolute basics here. • However, if you're interested in learning how programming can intersect with natural sciences, I really, really like The Nature of Code by Daniel Shiffman. *This isn't realistic.* • Yes, you're right. This is a simple model that abstracts away real-world complexities. • However, I hope that you can use these techniques as a starting point to build cool things! • And I did get a lot of great feedback and ideas for how to improve the animation, I’ll definitely try them out! :)
Fantastic video btw! I'd love if you made more of these videos. Your step-by-step explanations make it extremely easy to understand and your visuals are super nice
u can also use rotation matrix to find 90deg vectors, it can also be done by (x,y) => (-y,x) because thats kind of the result of a kind of ""identity"" rotation matrix, i saw this on sebastian lague first where he just flip the vector components and negate one of them
This is exactly how programming concepts should be presented. Visuals, step by step explanations, and the math behind it. Every layer is here to pick apart at any viewer's personal learning pace. No over the top jokes or distracting edits, either. A real gem. Thanks for making this.
@@pookiepats I respectfully disagree. I believe that a budding developer would benefit more from being given the general ideas behind the programming, rather than every variable and line being spoon-fed to them, for two reasons: 1) A developer is actively encouraged to experiment with how to achieve this, introducing them to methods and functions that they will likely not encounter given the 'correct' answer outright - read: "a developer's sandbox is the best place to learn." 2) Without the constraint of a line-by-line tutorial, the general concepts outlined in this video can be achieved using almost any programming language or engine - you know what you're aiming to achieve and the steps that get you there, not how, so you can discover the how yourself, relative to what you need. Both of these points lend themselves to learning the idea of procedural animation, and whichever programming language they intend to replicate that idea in; rather than starting from a fully-functioning piece of code written in a particular language and dissecting it in order to understand it (and potentially translate it).
@@pookiepats what? :D I mean this is not beginner level topic, so I can see how it is just entertaining for you. But it is complete pseudo code explanation that can be implemented in any graphic framework just with this one video. It is represented in a simple way without forgetting math behind it. Simple procedural animations are not something you would need to seriously discuss, so I am a bit confused what you meant by that.
@@pookiepats I disagree. I learned something. Perhaps you need a different method of teaching? Nothing wrong with that, but this is right up my alley and helped me visualize that which long-form text explanations cannot. To each their own! Hope you find something that works better for you.
@@pookiepats i agree with @diamond8467 , these kinds of videos usually teach the concept behind a feature it expects you to already have learned how to code. It makes teaching the concept faster, simpler and easier to implement globally.
You could enhance the lizard animation by only allowing a leg to move if the three others are still. It will naturally make a cycle and this cycle will automatically reorder on tight turns. Or, for a faster walk cycle, only check the matching leg on the other side and the matching leg in front or behind.
That's the beauty of procedural workflows. You can always go in after the fact and add or tweak additional parameters pretty quickly and get a change across the project. Great for non destructive work. The more work you do in procedural workflows you start seeing all these patterns and concepts in nature. Really cool stuff.
Thousands of years of technological and mathematical evolution. We are just scratching the surface of the art of teaching. Very well produced video, respect.
I've been playing with the code. I made a base class that all creatures inherit from and I made it so you can override a function to set up your own body widths and another for overriding the legs. Managed to make an ant with 6 legs. Also, I made it so the angular constraints use a rotation lerp, because the creatures otherwise had a tendency to spaz out. And I made a click & drag path drawing feature. When a path is drawn, the creatures will move along that path in a loop, when you single click, the path clears and they follow your mouse again.
The animation you’ve got playing in the intro of the video was like a neat little visual explainer before you actually got into the top so once you actually started getting into it, I felt like I already understood without any further clarification. So thanks for that! Excellent work!
In some places, the lizard began to "jumping". Her legs moved at the same time, which created a similar impression. To correct such cases, you can block the opposing legs, forcibly prohibiting them from moving until a pair of other legs finish moving and "touch the ground". Then the locked pair can be unlocked and the other one can be blocked.
would be great to see these procedurally animated animals be incorporated in herd/flock algorithms to show the true power of such simple components used in larger complex systems.
The best explanation video i saw about procedural animations (and inverse kinematics)! The visualization makes it so clear and understandable, great video!!
This video is impresive, is just simple math and geometry not a single line of code, but you are able to understand how it works and think how to code it. Maybe the best coding/algoritmic tutorial i have ever seen tbh
Rarely do I ever come across a video where I could just watch it once and be able to program whatever was shown. It might be a concept constraint of the videos I tend to watch, but this one is just that. Heck I'm even tempted to just spend a few hours making this for no reason at all, it looks fun to make and fun to play with.
This is awesome. I’ve long been interested in learning to use IK and just couldn’t find a clear, easy to understand starting point. This video explains the concept, demonstrates it, shows the math, and then also shows the animation of a successful implementation 🎉 My only follow up is to keep an eye out for more videos to follow. I am also interested in simulated biology, and AI driven sandbox environments - so this was about as exact as could be.
amazing presentation! Inspiring! small pet peeve at 4:44 the fins rotation should be inverted - outer fin has to be close to the body and inner fin should be extended (more realistic movement in water)
So the inner fin brakes the fish to help it turn? Or how does that work? Or the outer body side stretching makes the fin lie flatter? Asking because I want these fish in the game I'm writing :-)
I don't do animation or any graphics work. But i have learnt forward and inverse kinematics. The application and the explanation for animation was mind blowing. Loved the video.
I really liked this. Thank you for taking us on your journey. An idea for an improvement for quadraped animals like your lizard, if the a front left foot would update its target, force the opposite back right foot to also update to a new position regardless of the distance threshold. Apply that to all 4 legs and you'll have a less derpy lizard because it'll be a 2-step trot-like gait like most quadrapeds.
this is fu_)king delightful to watch! I'm teaching python to kids and this has given me so many ideas for some intro to pygame tutorials I cannot wait to try out! You diamond!
Excellent! I love the way you explain things. Kinematic has always been so confusing to me - especially in the 3D realm. I look forward to more of your videos :)
Wow. I've looked into IK implementations before, but most of them are incredibly technical mumbo-jumbo and has just left me feeling dumb. This, though, was fantastic! The explanations of everything in the video are so understandable and the visuals are simple, yet beautiful and convey the ideas so so well. I finally understand! Thank you for an excellent video.
I personally thank you for making this video. I was interested in procedural animation for quite some time now. Even though i will probably won't find the time to play with it any time soon, this video will give me a head start once I feel like I want to scratch that development itch. I am sure that sometimes you might question your impact as a small channel. But take to heart that some topics are inherently interesting and a lot of people wonder "how is it made", and you delivered a very good introduction to the topic that allows people to start doing cool things by themselves. - I thank you for it
Fantastic overview of procedural animations with great explanations and accompanying visuals. I really appreciated how pleasing animations can be created using simple concepts. Thanks for including Github link to code examples. A great complement to this video tutorial.
Amazing video! One tip I would give you is to extend that last scene, like we see in Sebastian Leagues videos. It's like a reward for watching the whole video, we get a cool animation with some soothing music and can relax
Your explanation is amazing and allows for a comprehensive guide without taking away learning experience through hand-holding. Will def use this for a self education project.
I've always been fascinated about virtual creatures but never knew where to start. Also how do you do such nice animated presentations? I'd love to learn. 😊
I've been trying to learn procedural animation for a while and the lack of good content on YT, explaining the topic, has been a limiting factor for me. This video is very comprehensive and simple and has helped me understand the fundamentals much better. I hope you'll make more videos on this topic soon, explaining the concept in more depth. You gained a new sub!
Fantastic algorithm! Nice visuals as well. Beats the crap out of both algorithms I used for my version on Ikaruga Lasers and one boss with tantacles using IK. Mine was just to make and array of vectors, follow though using a 1 element shift for all elements, extract left and right normals and extend by scaling normals to desired width. Arm IK is just a bunch of matrix transforms. This video makes me want to go back to gamedev after like 8 years.
This is a masterclass in explaining complex topics in a simple and visually appealing way. Well done, I know these things well but I am in awe of the production quality and simple breakdown.
@@livingcodex9878 ig my eyes are getting really bad 😔 but it's 55k now I think if I see it correctly. It should be 100k by Wednesday for sure but that will be a crime. Needs to be over 1 mil
I've seen the phrase 'inverse kinematics ' so many times for setting up bones on 3d models and never actually really understood what it meant. This was an awesome explanation, thank you!
this is the first time ive been so stunned by the quality of a video and its conversely low view count. amazing explanation and stunning results, bravo!
If you offset the timing interval at which the legs should snap to their step position, you'll get it so that both legs don't move a the same time, which is what's making it look derpy.
The way you say it, it can easily be misunderstood. I think it will be more accurate to say : The video is good not because it's presenting a new idea (since there is no new idea presented actually) ; it's good because it presents an idea well, and in one cohesive piece.
Nem tenho comentários sobre, o vídeo é incrível, calmo, com animações suaves, conceitos explicados com qualidade. Estou comentando apenas para que o RU-vid recomende para mais pessoas. Esse vídeo e canal merecem
I was playing with IK legs in true top-down about 4 months ago and encountered the same problem with legs moving independently - you need to connect them in pairs for the proper illusion of body being "carried" on at least half the legs at any given time, and also, one of each pair should be the leading leg, preferably alternating (on the 1st pair the right one's leading, on the 2nd pair the left one and so on). This way one leg moves only when the other one is "touching the ground" and you don't get the issue of both right legs moving at the same time as well. It still didn't look perfect when walking in a tight circle but was way better than "swimming" on the ground with both legs at once.
Thank you! Right at the beginning: love it! You're showing how the Flower of Life is drawn -- choose a point, make a circle with a compass, and then put the compass point on the edge of the circle. I love when concepts align. :)
Wowww this video just blew my mind. The possibilities with procedural animation are endless. Im learning to use Blender geometry nodes and you just gave me a lot of ideas to try out ❤. You have great presentation talent. Respect❤
wow i stumbled arcoss your channel while learning about genetic algorithms to solve some olympiad programming problem, didn't expect your videos to be that good, keep it up!
As of right now, all 4 of the lizard's legs are moving at the same time, which looks unnatural. You could make it so that you only move a leg if both adjacent legs aren't moving, so that a natural alternating walking pattern appears. This is just something I got from @heledron 's "Procedural Walking Animation in Minecraft" video, specifically at 1:50 . He essentially does the same thing in concept, and it's explained quite well too.
This was sooo much fun to watch! its one of those topics I haven't dived into yet but I desire to do so! I think this video could be next level if you demonstrated some of the techniques like the fabrik method with some simple code-snippets.
This was seriously such an amazing video! You explained it so clearly that I felt like I had to try it myself. 3 days later and I am proud to say I now have my own procedural snake and gecko!