C# Inverse Kinematics in Unity 🎓

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 27. 08. 2024

Komentáƙe • 200

  • @Danidev
    @Danidev Pƙed 4 lety +791

    Awesome tutorial, this is really good stuff!

    • @mojoplayer8915
      @mojoplayer8915 Pƙed 4 lety +24

      so you are making advanced 3d games now?

    • @calebstevens8269
      @calebstevens8269 Pƙed 4 lety +16

      and now it's in your new vid! nice

    • @viper26k
      @viper26k Pƙed 4 lety +13

      Came here after your video. I hope I will be able to apply this to my project.

    • @Officialjadenwilliams
      @Officialjadenwilliams Pƙed 4 lety +9

      so THIS is how you made the robot. AHAGH! Now I understand.

    • @Garwinium
      @Garwinium Pƙed 4 lety +1

      hold up only 7 replys to a dani comment (also i got no milk rn D: )

  • @FilletDev
    @FilletDev Pƙed 3 lety +74

    Basically kinematics... *BUT INVERSE*
    -Dani 2020

  • @happychuckprogramming6048
    @happychuckprogramming6048 Pƙed 3 lety +17

    Thank you for this tutorial. I was able to apply this with my active ragdoll.

  • @no_0nehere_875
    @no_0nehere_875 Pƙed 3 lety +5

    Thanks a Lot....Made my day after I was trying to figure it out for a month.....or even more

  • @garbagescript
    @garbagescript Pƙed 4 lety +3

    It is one of the greatest unity tutorials, thanks.

  • @PixelWitch
    @PixelWitch Pƙed 4 lety +2

    This is very complicated but you explained it so well I feel like I actually understand, thank you!

  • @hogoromootsutsuki4079
    @hogoromootsutsuki4079 Pƙed 5 měsĂ­ci

    this process is pretty simple. I tried a method where I took three points - root bone pos, pole, and target pos, and had each bone rotate to a point on the curve, using boneIndex+1/boneCount. It worked, but with overshoot, then I tried inverse kinematics, but could not make it work. Your video helped solve my problem, thank you for the video.

  • @anaelcorbe8289
    @anaelcorbe8289 Pƙed 2 lety +1

    Thanks ! Really simple to understand, it helps me to understand more things about Quaternions so now i can do IK and a lot of other things

  • @ozanurkmez8788
    @ozanurkmez8788 Pƙed 3 lety +2

    Absolutely gorgeous! We need more tutorials like this :)

  • @Pruegelkram
    @Pruegelkram Pƙed 3 lety +1

    thanks a ton! CouldnÂŽt really wrap my head around IK.

  • @anthonyfudd6040
    @anthonyfudd6040 Pƙed 3 lety +2

    This was a really great tutorial! Thank you very much!
    This is a complex subject, but I thought you did a great job of explaining it, and your code is very easy to read.

  • @Snaog
    @Snaog Pƙed 3 lety

    Started out a little sceptical because of how little I understood the gizmo code, but you actually did a really great job of explaining the algorithm! Awesome work!

  • @aleksanderbaszkiewicz536
    @aleksanderbaszkiewicz536 Pƙed 5 lety +2

    Dude it's just perfect. You've explained such hard task (for me it's hard) in such a simple way. I've understood everything.

  • @leonida-sabiri4716
    @leonida-sabiri4716 Pƙed 3 lety +1

    Well i think am gonna have a hard time trying to implement it in my own way and my own code , this tutorial really helped me to understand IK ...thanks !!!

  • @jamawahid9408
    @jamawahid9408 Pƙed 3 lety

    Danke fĂŒrs Zeigen!! Super Tutorial :) Weiter so!

  • @Lord2225
    @Lord2225 Pƙed 4 lety +1

    How nice that the plane class exists.

  • @calebstevens8269
    @calebstevens8269 Pƙed 4 lety +34

    man no matter what i do i can not get this to work at all. my mesh will not move at all even with the correct ik edit: didnt realise you had to press play

    • @sigorharaldsson4067
      @sigorharaldsson4067 Pƙed 4 lety +25

      sorry but that is one of the funniest edits I've ever seen haha

    • @Nervniyak
      @Nervniyak Pƙed 4 lety +3

      @@sigorharaldsson4067 +1, loled so hard

    • @supernectar5022
      @supernectar5022 Pƙed 4 lety +9

      You can actually make this script run in edit mode by adding the following attribute *before* declaring your class: [ExecuteInEditMode]

    • @sigorharaldsson4067
      @sigorharaldsson4067 Pƙed 4 lety +1

      @@supernectar5022 that's actually pretty cool, will use that sometime

    • @madscience6283
      @madscience6283 Pƙed 3 lety +1

      @@sigorharaldsson4067 Careful though, I only use it after I know everything works, and you have to handle special cases like runtime parenting for ex
      bool safeToParent = true;
      if(Application.isEditor && !Application.isPlaying) safeToParent = false;
      pistonExtensionTransform = transform.parent.Find("Piston Extension");
      if (parentMe && safeToParent)
      {
      Transform jointTransform = transform.parent.Find("Joint");
      if (jointTransform) jointTransform.parent = parentMe;
      Transform jointATransform = transform.parent.Find("Joint_a");
      if (jointATransform) jointATransform.parent = parentMe;

      if (pistonExtensionTransform) pistonExtensionTransform.parent = parentMe;
      transform.parent = parentMe;
      }

  • @hoax5347
    @hoax5347 Pƙed 2 lety +1

    took about an hr and a half to finish but worth it :)

  • @3Doode
    @3Doode Pƙed 4 lety +1

    Thanks alot man! It really helped me to solve my rotation Issue. I did a few things different because I dont calculate the Plane rotation stuff because I only correct ground alighnment with it.so I could assume alot of calculations and save a few things.

  • @Frank_G_Finster
    @Frank_G_Finster Pƙed 4 lety

    Excellent tutorial with easy to follow explanation. I learned a lot and will definitely put it to use!

    • @Frank_G_Finster
      @Frank_G_Finster Pƙed 4 lety

      And excuse my manners... thank you very much for sharing :)

  • @amba451
    @amba451 Pƙed 2 lety

    i wish i could like this tutorial more than once , thank you sir for this amazing tutorial

  • @fookustudios3279
    @fookustudios3279 Pƙed 3 lety +1

    Thank you for the very useful tutorial. One thing I might add.
    I'd suggest calling the Init() method from Start rather than Awake();
    Otherwise, you can get strange behavior if you try to change the Target at runtime even if the script is disabled in the editor before you hit play.

    • @anonymoussloth6687
      @anonymoussloth6687 Pƙed 2 lety

      I am new to unity so could you explain why this is the case?

    • @fookustudios3279
      @fookustudios3279 Pƙed 2 lety +1

      @@anonymoussloth6687 Sure, In Unity all components have a start and awake function. Awak always gets called first for all components in the scence, then start gets called for every component in the scence. Moving his Init() method to the start function vs the awake function will allow you to change the IK target while the game is playing. Otherwise if you leave Init() inside of awake it will cause problems. However, If you don't plan on changing the IK target while playing the game you won't have any issues.Hope that helps.

    • @anonymoussloth6687
      @anonymoussloth6687 Pƙed 2 lety

      ​@@fookustudios3279 Thanks! But I am still confused why a dynamic IK target will be an issue if it is in awake. As I understand, awake is called for all components when the scene is loaded. Then start is called one by one for each component. right? And this leads me to another question: if both awake and start are called in the beginning (with awake being first) arent they basically the same? First all awake functions are called for all objects, then all start functions are called for all objects right?

    • @fookustudios3279
      @fookustudios3279 Pƙed 2 lety +1

      ​@@anonymoussloth6687 Start and Awake are the same in the sense that they will both get called before the object "comes to life" in a scene. However because all Awake methods get called first, then all start method get called next, developers typically use the Awake method to iniaitalize all variables local to the component itself, then use the start method to setup references to other objects within the scene if needed. For example. Component A has a variable that references another object in your scene(Object B). It that case you'd want to setup that reference in the start method, because if you used the awake, that variable you created may not be able to create the reference to the other object B because Object B hasn't called it's Awake function yet. So instead you'd have component A establish the reference to Object B in its Start method. That way you know that Object B has fully initialized because it's Awake method is garunteed to have been called that this point. I'd suggest doing some experiments. First , use the code as is, and change the IK target while the game is running, although I haven't looked at it recently, if memory serves, it will throw an exception or cause strange behavior. Then comment out that Init() in the awake, and add it to Start(). Compile, change the IK target at runtime and see what happens. If you can step through the code as it executes and you can watch everything in action. Still confused, just respond. Cheers.

    • @anonymoussloth6687
      @anonymoussloth6687 Pƙed 2 lety

      @@fookustudios3279 Thanks so much for your detailed reply! I will try it out like you suggested

  • @hogoromootsutsuki4079
    @hogoromootsutsuki4079 Pƙed 5 měsĂ­ci

    I have created a bone rig, and I am almost done an entire animation system, the last thing I need, is to do inverse kinematics. I am working on a program called World Seed. It is a bone rig, that is threaded. The entire animaton system I created is threaded. this is the last step in my process.

  • @ezydenias8505
    @ezydenias8505 Pƙed 4 lety +8

    19:45 "Es Gibt" ich wußte ich kenne diesen Akzent.^^ Da haste ja geil gedanglished, aber ich denke die meisten checken das schon.

    • @Valvex_
      @Valvex_ Pƙed 3 lety +1

      Er sagt aber "I skipped the index 0" und nicht "Es gibt the index 0", passt auch eher zum Kontext^^

  • @VisualShortStories
    @VisualShortStories Pƙed 2 lety

    thank you! it was a very informative and great tutorial.

  • @dev-menon
    @dev-menon Pƙed 2 lety

    Thanks man this is a great tutorial!

  • @ev-tech2050
    @ev-tech2050 Pƙed 3 lety +7

    Nice tutorial! I used to do IK in 2D by using rotations in a similar way, but using positions is way easier it seems. However, is there an easy way to limit rotations? I have some ideas but that would require a lot more maths in the forward and backward iterations.

  • @gustavberndtzen1623
    @gustavberndtzen1623 Pƙed 3 lety

    10 out of 10 would watch again!

  • @ShubhamPradipTangadpalliwar

    Hello, I am trying to create similar inverse kinematik, my question is what kind of joints exist between 2 links or what seems to be called bone in blender. beacause in my interface whenn i go for creating a spherical joint it seems to lock the translational movement which the itterations talks about when the last child link moves away from link, or have i completely misunderstood?

  • @ezydenias8505
    @ezydenias8505 Pƙed 4 lety +1

    10:06 instead of using an if statement to check if you are in the first bone you should do the first bone before the loop to have NOT an redundant if statement, as if statements are one of the most taxing statements on the CPU.

  • @ChaosCain4
    @ChaosCain4 Pƙed 4 lety

    Thanks so much for this, it's such fun to be able to pet things

  • @seei200
    @seei200 Pƙed 7 měsĂ­ci

    amazing video!

  • @raam1211
    @raam1211 Pƙed 3 lety

    Amazing tutorial, thanks so much

  • @benaffeyofficial
    @benaffeyofficial Pƙed 4 lety

    Greeting my tschörmÀn companion. Nice vid!

  • @catafest
    @catafest Pƙed 5 lety +1

    Wow the Fast IK is free! Good tutorial.

  • @thanos_n9s145
    @thanos_n9s145 Pƙed 5 lety +1

    That looks really awesome..

  • @Skyvastern
    @Skyvastern Pƙed 4 lety +2

    How can I have a weight parameter so that I can control the influence of IK ? Say if it is 0, then the normal animation will play, while if it is 1 then the IK will override the animations. I tried to create a lerp when setting the position and rotation to the actual bones via a public weight variable to control the influence of the IK. But dunno why it doesn't work. I have checked the entire code and I can see that only two functions are responsible for setting the position and rotation so I directly added the lerp there. But it doesn't seem to work and instead gives a weird shape. Though if I just change the weight from 1 to 0 and vice versa directly then all works fine. I am not sure what I am doing wrong.
    Additionally, Fabrik algorithm itself isn't hard, but the actual hard thing to understand is how to rotate the mesh with respect to the calculated positions. I see there's a heavy math going on when trying to set position and rotation of the bones. And perhaps it's there that I am missing out something. Stuff like multiplying quaternion with a vector then assigning that to a vector3 makes no sense to me how that happens lol. I guess this is a great opportunity for me to revisit and learn more about trignometry, linear algebra etc.
    I think the ability to control weight can be a great addition to your asset. Also I must say that the asset is very well made and the fact that you showed and explained us how you did all this is just fantastic. I liked the way you optimized your code and those crazy calculations with rotations are well thought of. Because the mesh translates perfectly with the IK target, which I was finding really really hard to do myself earlier. A great video and a great tool you made. Helps a lot for generic rigs :D

  • @judehariot8076
    @judehariot8076 Pƙed 27 dny

    Okay, so in Blender I've scaled the cube as you did, then did the loop cuts as you did, then added the single bone armature as you did, then extruded the bones from that bone as you did, then exported to Unity as you did. But in Unity, the cube mesh does not move with the rotations of the bones? What might i be missing from your steps?

    • @judehariot8076
      @judehariot8076 Pƙed 27 dny

      Nervermind. For some reason, after extruding the bones, i had to first switch to object mode, then select both the cube and then the armature, then press Ctrl+P and select 'Deform Armature with automatic weights'.

  • @kevindesilva4577
    @kevindesilva4577 Pƙed 3 lety

    This is exactly what I need

  • @mathantasticproductions4992

    Dam, very good tutorial man

  • @aminedev_
    @aminedev_ Pƙed 3 lety

    the amount of ads in this video is getting to a point where it is very annoying,
    yet helpful vid

  • @ezydenias8505
    @ezydenias8505 Pƙed 4 lety

    6:33 the distance between current and current.parent is the same as the distance between current.parent and current. What you sshould have done is new Vector3(scale,scale*10,scale) which would again safe on performance.

    • @juanp4446
      @juanp4446 Pƙed 2 lety

      se nota que sabes mucho, me puedes enseñar?

  • @Makingblah71
    @Makingblah71 Pƙed 4 lety

    Great tutorial, thank you.

  • @DerAua
    @DerAua Pƙed 5 lety

    Wow. Thank you soooo, all much!

  • @animatedreality9345
    @animatedreality9345 Pƙed 4 lety

    You are a life saver 100%

  • @ChrisLocke1969
    @ChrisLocke1969 Pƙed 4 lety +2

    I learned so much from watching your excellent video and explanations, that I need to ask, after looking at your github repository... could I some how adapt your simpleIK framework for use in an Arduino robotics project? And if so, any feedback on how I can pull that off would be greatly appreciated, please & thank you!

  • @giists5197
    @giists5197 Pƙed 3 lety

    hi, i have a question. is it intended that the script very slightly moves the leg even when the target is not moving? i have this weird behavior where the legs move by 0.0001 every frame almost randomly and it causes problems when trying to get the average leg y position. can you help me out?

  • @kirillnovik8661
    @kirillnovik8661 Pƙed 3 lety

    Mensch, das ist toll!

  • @BluePhantomGames
    @BluePhantomGames Pƙed 3 lety

    Sir i am confused. If you are making a target? Then how will I make my player feet bend when o. Slope stair or anything that is not flat

  • @vexedev
    @vexedev Pƙed 5 lety

    Thanks great work! One question, why do you work in Root space instead of world space? is it to make some math calculations easier?

  • @jompan7612
    @jompan7612 Pƙed 4 lety

    THANK YOU MAY GUY!!!

  • @risingmermo
    @risingmermo Pƙed 4 lety +1

    I can't get the cube to rotate with the bones in unity

  • @jojikYT
    @jojikYT Pƙed 3 lety

    Made a Spider with the help of this video :)

  • @ezydenias8505
    @ezydenias8505 Pƙed 4 lety

    12:10 cool thing explaining why sqrMagnitude.

    • @ezydenias8505
      @ezydenias8505 Pƙed 4 lety

      btw. I just are done for the today and must leave, I will critize your code furhter down the line. So far all my improvments worked just fine. But I still like your tutorial, pretty quick and clear stuff.

  • @connorkasarda
    @connorkasarda Pƙed 5 lety +4

    Is there a way to have the chains/bones rotate so that the mesh also rotates with it?

    • @Alex-ir3wr
      @Alex-ir3wr Pƙed 4 lety +4

      if you assign the bones to the mesh in a modelling software such as blender, when you import it back into unity it should work

  • @V4C38
    @V4C38 Pƙed 5 lety +3

    Hey thanks for the nice tutorial!
    I want to setup my chain so that the Bones are connected via Hinge Joints. How would you addvice to approach this?

  • @THE_ONLY_GOD
    @THE_ONLY_GOD Pƙed rokem

    Thanks!

  • @Wolfie5309
    @Wolfie5309 Pƙed 3 lety

    good info, but only have one gripe. Using 'var' all over your code and not using explicit declarations leave your code unreadable. Mainly a style choice, but it helps to have explicit variable declarations when you go back to your code later.

    • @doekewartena5729
      @doekewartena5729 Pƙed 2 lety

      I was thinking that with `for (var i = 0;`

    • @Tarodev
      @Tarodev Pƙed 2 lety

      var is something that comes with experience. Very rarely can you not tell what a variable is by its declaration. Also it makes it MORE readable IMO, not less. Take a dictionary for example:
      Dictionary myDic = new Dictionary();
      vs
      var myDic = new Dictionary();

  • @hovhannesvardanyan2223
    @hovhannesvardanyan2223 Pƙed 4 lety

    Thank You very much sir

  • @ZR-eq2hl
    @ZR-eq2hl Pƙed 2 lety

    4 sure it is gold. Thanks.

  • @fulongfromthegrave
    @fulongfromthegrave Pƙed 3 lety

    This is exactly what i ve beenlooking for but i wonder how would you make the bones stretch within boundaries?

  • @hoax5347
    @hoax5347 Pƙed 2 lety +1

    just found an issue where when i play an animation with it attached to the object with the animator or its children the bones shift and eventually the mesh of the arm deforms :\

    • @hoax5347
      @hoax5347 Pƙed 2 lety

      turns out it wasnt ur code it was mine so i just ended up using urs ;-;

    • @SSleepyMorning
      @SSleepyMorning Pƙed rokem

      @@hoax5347 I'm having the same issue. Do you mind sharing what was the problem with the code?

    • @hoax5347
      @hoax5347 Pƙed rokem

      @@SSleepyMorning i dont actually know, i just ended up downloading the persons code from somewhere

  • @ezydenias8505
    @ezydenias8505 Pƙed 4 lety

    5:48 the first one can't be null because so you don't need to check it and if the parrent is null than the current won't become the parrent so the current can never become null. Your check is redundant. Or am I missing something?

  • @Fangh44
    @Fangh44 Pƙed 4 lety

    Thank you ! It was very helpful ! I recoded it from scratch, by listening to your instructions and explaination without copy paste your code. It was hard but it was doable.
    But the rotation part was too complicated to understand :<
    I wish to add some constraint to each bones to make some elbow or etc...
    Thank you !

  • @zunuku4165
    @zunuku4165 Pƙed 3 lety

    how did u cut it in blender also how did u duplicate the bone without duplicating the armature

  • @obemenko
    @obemenko Pƙed 3 lety

    "I was looking for copper but I found gold"

  • @justkenji911
    @justkenji911 Pƙed 2 lety

    i cant add amature i mean i can add it but not single bone

  • @stanferrolino12
    @stanferrolino12 Pƙed 3 lety

    Good tutorial, very cool.
    I have one problem, though. Somehow, even after writing all the code from scratch, the joints don't rotate at all, meaning that any parented limbs just stay in their normal rotation. Any help fixing this?

  • @TheAdventuresOfMontuMiah
    @TheAdventuresOfMontuMiah Pƙed 4 lety

    Nice! Would you create a timeline type of thing for runtime use? We can have an animation software!!! 😀😀😀

  • @Marc142000
    @Marc142000 Pƙed 5 lety +3

    Wait. Your forward axis in Blender is also Z? HOW??

  • @Digitt6
    @Digitt6 Pƙed 3 lety

    What is the advantage of doing it here in unity in c# rather than in blender or other animation software?

    • @ramiztudio3208
      @ramiztudio3208 Pƙed 2 lety

      I think because the ik system in unity is different than in other animation software imo

  • @johnlime1469
    @johnlime1469 Pƙed 4 lety

    Oh wow. Inverse kinematics doesn't seem so intimidating anymore. It's pretty much just calculating the normal between the target position of the end effectors and the joint that you want to move, and maintaining the distance of the joints.

  • @anathi_1
    @anathi_1 Pƙed 2 lety

    ngl this tutorial is long but it is epik

  • @rafaelskiarteportfolio1098

    P E R F E C T !!!!!

  • @h3Xh3Xh3X
    @h3Xh3Xh3X Pƙed 3 lety

    But why are you talking about shadows for an ik solver?

  • @elitegames6969
    @elitegames6969 Pƙed 4 lety

    Thx Dude Now by Getting Yur Inverae kinematic i mean Wathcing the Full tutorial I can create a Balance Character

  • @marcospaulo6697
    @marcospaulo6697 Pƙed 3 lety

    so can i use this to make weapon contact in a fighting game?

  • @calebstevens8269
    @calebstevens8269 Pƙed 4 lety

    How am i supposed to animate if i can view it in the editor>

  • @ufencevr
    @ufencevr Pƙed 3 lety

    Hi could I use this Ik to make a bendable sword that bends like a fencing blade against a target in real time physics ?

    • @kurtisgibson2929
      @kurtisgibson2929 Pƙed 3 lety +1

      yes you can

    • @ufencevr
      @ufencevr Pƙed 3 lety

      @@kurtisgibson2929 Hi Kurtis i have spent hours trying to recreate that ik actin on my sword but cant get it to work any ideas ? Hugo czcams.com/video/3ViP0cwIyPE/video.html

  • @abuDA-bt6ei
    @abuDA-bt6ei Pƙed 3 lety

    When I look around in game, the arm keeps twisting with it

  • @susantakumarbehera9933
    @susantakumarbehera9933 Pƙed 4 lety

    How to use it on top of an existing animation;
    Like, use leg ik in waking animation

    • @IdeaToGame
      @IdeaToGame Pƙed 2 lety

      there's a package from unity that does that, it's called animation rigging

  • @raymond1161
    @raymond1161 Pƙed 5 lety

    you are fucking awesome man

  • @gianlucaanostini5818
    @gianlucaanostini5818 Pƙed 4 lety

    where the influence come at play i dont want the influence to be always at 1 but im dumb so i dont understand where to use to smothly go to the ik target

    • @daanvanleeuwen8435
      @daanvanleeuwen8435 Pƙed 4 lety

      Maybe look in to 'easing movement' through code? that might be what you are looking for

    • @gianlucaanostini5818
      @gianlucaanostini5818 Pƙed 4 lety

      @@daanvanleeuwen8435 i solved by using a linear interpolation (vector3.lerp) between the actual transform of the foot and the target position of the ik with a variabile that increase or decrease following a curve in the animation. so with the foot is up its at zero when the foot goes down it increase to assigning the target position. it works not perfect but it works

  • @FenyEro
    @FenyEro Pƙed 3 lety

    THX

  • @alexandreamiel1865
    @alexandreamiel1865 Pƙed 3 lety

    Thank you !!!!!! I would like to give you a donation

  • @nguyenlongh2275
    @nguyenlongh2275 Pƙed 2 lety

    Do you know how we can import file robot arm solidwork 3d into unity ?

  • @kalpolproductions8558
    @kalpolproductions8558 Pƙed 2 lety

    cant wrap my hed around it

  • @robloxstoryz3131
    @robloxstoryz3131 Pƙed 3 lety

    this is cool but his is one of my first times using blender and i have no idea what to do

  • @KenGames45
    @KenGames45 Pƙed 4 lety

    Just wondering if it would be ok if I can modify your code?

  • @tobymdev
    @tobymdev Pƙed 5 lety +1

    Omg yes!!

  • @not_even_toxic
    @not_even_toxic Pƙed 4 lety +1

    IT WAS REALLY NICE TUTORIAL! But I'm russian so I didn't understand much....

  • @mahmoudshalabi8613
    @mahmoudshalabi8613 Pƙed 4 lety +1

    What i dont understand is how will this make my enemy walk? what do i have to move to make it walk. Im so lost lmao

  • @_denzy_6310
    @_denzy_6310 Pƙed 4 lety

    Can this work for rope physics?

  • @PerfectlyNormalBeast
    @PerfectlyNormalBeast Pƙed 4 lety +1

    Every time someone does something in blender, they fly around and I'm completely lost. I have to pause every couple seconds, research how he did each step
    Powerful tool, but very unintuitive

    • @PerfectlyNormalBeast
      @PerfectlyNormalBeast Pƙed 4 lety

      Here's a good one for creating / working with bones
      czcams.com/video/ZmiZ6VkSJBE/video.html

    • @madscience6283
      @madscience6283 Pƙed 3 lety

      Hey watch these videos lol (~22min total)
      czcams.com/video/U1f6NDCttUY/video.html

  • @playplus5386
    @playplus5386 Pƙed rokem

    this is math or physics ? please someone help

  • @sinanermis
    @sinanermis Pƙed 3 lety

    dude rotation part was so fast and i coldn't understand what you doing :(

    • @sinanermis
      @sinanermis Pƙed 3 lety

      and you just skipped the back strength stuff, can anyone explain why we lerp with back strength thing

  • @mike_o7874
    @mike_o7874 Pƙed 4 lety

    Yo man awesome job, btw i was able to twick alil bit the code,
    and made it run at least for now (without a pole) 4 times as fast.
    hmm like per 10k runs, the code dropped from 300ms, to about 80 ms , with 4 chain length.

  • @papapf8883
    @papapf8883 Pƙed 3 lety

    13:09 (notes for me)

  • @v.037
    @v.037 Pƙed 3 lety

    Noice

  • @noodleplexium5953
    @noodleplexium5953 Pƙed 3 lety

    yES