@@DefinitlyAPerson You can't say that a saying was stolen just because someone already said it. Edit: I checked "Automatic pool stick vs. strangers" by "Stuff Made Here" time 9:21 and he said "you run out of stuff that can be wrong" which is completely different from "I finally ran out of ways to fail".
@@rabusu. I deeply apologize for it not being vervain even though it wasn’t a quote, I should know better and my actions are withheld accountable by me.
I'd like to add to this that, mostly, programming *is* failing. its about failing, figuring out why you failed, and then fixing whatever problems you see. repeat cycle until you have your final product. it involves a great deal of running into brick walls, getting up again, dusting yourself off, and trying again, for as many times as it takes.
Very interesting video. This thing is about to BLOW UP. I'm a software developer and disc golfer, and this kind of devlog is awesome! I love your visuals, script, and edits. Thank you for taking the time to put together and polish this great summary of your findings. Great work!
I think adding at least the same weight to the left arm will start to show some changes. Of course adding the proper length and weight to the left arm will be better as there are very complex angular velocities at play . . as you know :)
Sorry, but no. The left arm is tucked in tight to the body as the counterrotation of the torso ends, and the torso begins rotating right. Adding weight to the off hand would slow down the rate at which it is launched outwards and upwards after the disc release, to remove all the rotation created in the body by the throwing motion itself. If carrying weights in the off hand resulted in longer throws, then professionals would already be holding weights in the off hand. Can you see that?
@@Chris.Davies Gino’s comment could be interpreted as - it would be interesting to see how the genetic algorithm changes, if it changes, if the model In the simulation had the left arm weighted the same as the right-even without joints, vice interpreting it as a comment of how throws could be different if the left arm was weighted more than the right.
Absolutely fascinating and so inspiring to see how you tackled something you hadn't done before. I would imagine there were like minded disc golfers out there who would want to contribute to this kind of work. I don't have the programming expertise myself but just seeing you go about building this makes me want to start learning. Thanks for the awesome video again, can't wait for the next one. 10/10 jatkoon!
As far as I can tell you have no other real content on Genetic Algorithms - this is the first video of you that I've watched & I can see the very clear quality in your work. As somebody coming from a DL background I can see that you clearly have the knowhow and curiosity that drives an excellent project such as this one, this has really inspired me to go and try out some stuff on my own. I would love to see some more content with this sort of stuff!
Besides the recommendation to completely model the left arm, I would recommend increasing the rigidity between the torso and the shoulders as well as the rigidity of the wrist. If possible, adjust the attachment point of the disc to the center of the hand segment. Lastly, consider setting a maximum angle for the elbow and shoulder joints I want to build a disc throwing machine and have spent a fair amount of time running thru iterations in my mind. Best of luck and i look forward to seeing more analyses like this.
So promising! Please continue your work on this! Might really move the whole sport forwards! Could you add: - Proper range of motion for different joints - The stifness of joints as they approach their "limits" - The power of muscles is a function of the joints angle - Proper goal for the algorithm (you mention this even yourself), not just the velocity but also spin. Then of coures things would get infinitely more difficult if you would move to proper 3D and be able to include, throw angles (hyzer vs. anhyzer), nose angles, the direction of the speed vector etc etc...! With a model like that it would be SO interesting to see how it handles differing disc stabilities and speeds, different wind conditions, elevations, hitting different lines.. Could you solve disc golf!?!?
I love all of your videos. This was the best one yet. I've been contemplating a project that would make use of the skills that you display but would actually be much simpler to perform. Namely, modeling disc flight based on DISC parameters. With that project, you would assume a generic launcher such as the ones that they use for skeet shooting and then model disc flight as a function of hyzer angle, release angle, etc. Thanks again for a fabulous video!
This is really interesting! It looks very similar to the form of a lot of our taller players. It reminds me a lot of James Conrad or Kyle Klein. I wonder if you shortened the levers if a wider reachback becomes more advantageous? Thanks for all your work! Edit Re. 90 degrees: I'm learning that the 90 degree shoulder should be more a result of timing rather than rigidity. You'll see a lot of top players like GG leverage their body in a way that causes that shoulder to open up (quite a bit in his case) and add leverage to the throw. But most amateurs that do it are just pulling with their back muscles and that ends up causing a bunch of other issues. The best way to think of it is to try to swing everything together. As long as in the power pocket, the shoulder is relatively close to 90 degrees, I wouldn't worry too much about it.
Thanks for the insights, Danny! Your videos have helped me a lot along the way :) I'm not a tall guy, so the levers are actually not that long in these simulations (the joint lengths are based on my body). But I do now have many new ideas on how to improve the system, so we'll hopefully see some improvements on it eventually!
Hi Danny, opening the shoulder in the smash results in the right shoulder never moving backwards along the line of play. The effectiveness of Spin & Throw form is due to the way the shoulder stays locked, and the shoulder therefore pulls the right arm backwards, creating the REAL whip. No whip can operate without the handle being pulled backwards after it comes to a stop - yeah? Opening the shoulder early, results in the arm going forward before the shoulder moves backwards, and this not only ruins the timing of the release, and its location, but it removes the whip effect. I am 57 years old now, and using S&T to throw a lot further than I was able to throw using what I now call "Poke and Pull". I am almost ashamed of inventing the Mobius Line Puller which prevents rounding. It yields a very accurate, but very low power throw which relies on athletic ability and strength, rather than form and timing. Real rounding is by far the most powerful (and natural!) form, but only if the disc swings and accelerates throughout the throwing motion.
Your simulation is fascinating! As far as the algorhythm finding the most optimal way to throw the disc, one major difference that I can think of is the use of the legs when a disc golfer throws. With proper form, we generate so much power from our lower body and hips, which the algorhythm of course doesn't have access to, so it's compensating for everything with pure "upper body". Not sure exactly how much that would have to do with it, just my obsevation as a disc golfer and not a programmer. Keep up the good work!
The sim gets its power from the ground and it is not throwing with just its arm. It is bolted to the ground which simulates perfect legs. All the force it is pulling with is from the sim pushing against the ground.
@@joshuachoate7966 The sim gets its power from the ground and it is not throwing with just its arm. It is bolted to the ground which simulates perfect legs. All the force it is pulling with is from the sim pushing against the ground.
Man, I love your disc golf videos. Your approach to this is the exact right amount of nerd. I work with genetic algorithms in my daily job so this was very close to home.
Since the values are somewhat optimized now for each joint velocity, it might be beneficial to switch back to force threshold based releases. Some of the reaching behind and rounding seen was likely due to the simulations exploitation of the guarantee that the disc will come out at the same time during each simulation. With force threshold releases, more direct and quickly applied snap would have to be created in order for a consistent release, which lends itself to a straight pull through in my opinion.
Yeah, it's definitely worth a try! The thing with the force threshold releases is that it seemed to be inherently very unstable, in that the exact same threshold+genes would sometimes produce very different looking releases. It might actually be a good thing if it was small variations, but it seemed to be quite substantial differences, which made the thrower stop developing past a quite rudimentary point. It might be just a limitation of Unity, or some mistake in my code, but yeah, I don't like the timed release either :D I'll have to think about it a bit more.
I feel like inorder to compare the path of the disc through the reach back to human kinetics, the distance between the joints should be wider and slightly back because that movement rotates around the ribcage and not the spine. I watched till the end. Nicely done! Perhaps you and Stuff Made Here could collab and build the disc throwing robot. th-cam.com/video/gnwIiw3Rz3I/w-d-xo.html Sorry, I don't program at all or I would link his name to the url 😅
The rounding that the sim does is compensation for not having a hips and not due to an inefficiency. Straight back and forward is not the formula for the most power or spin.
Yep. Furthest throws are 360 not stand still reach backs and the forms aren't identical. So yeah the simulation is approximating the disc path of a 360 more so than a controlled 'golf' shot among other variables
The world needs more people like you to perform experiments and analysis such as this, so thank you! There are so many elements and variables to consider: a team of individuals could surely attempt to capture the rest of the bits required to fully realize your goals. IE: considering hip/lower body twist and related torque, leg strength in pushing forward, the run up and foot speed forward to the disc release point, etc. etc. Great job in understanding the arm and partial torso to disc release, but - there is sooooooo much more involved than that, esp. in a tee-off or run up. Your experiment demonstrates the stand-still release - which is incredible in it's own right - but there is more to it than solely upper body motion to tossing a disc it's maximum distance. Best regards.
First of all, great job! I've been thinking doing something like this when I had time, but start from the hips up after seeing your original video. And I think this is exactly what I expected it to end up in (with the exception of the wrist due to no spin required). All in all, great job! And very interesting thing to follow, keep it up!
This channel is so cool. I loved the first form video, loved this one too, and now I’m excited there’s another one coming as well! Fantastic video, love the production value.
I love the overhead thing you did with your throw, that was really cool to watch. Then it had me thinking of Tony Hawk Pro Skater games. They used some kind of crazy bodysuit on the athletes to record their movements while doing certain trick. I wonder if that would be possible to do in our sport on a elite level with 10 of the best throwers out there, not just the long bomb power shots but also the controlled slower speed shots. It would be awesome to see those results. Thank you for the great video. I can’t wait to get out your next one. God bless.
I’m not sure how much you learned about the ideal backhand throw, but it’s not the destination; it’s the journey! You did learn much. I am excited for the future update on your backhand progress. I am not sure why Robert is interested in you doing an analysis of the Ultimate frisbee forehand, though I wouldn’t mind (I was a long time Ultimate player). But it would seem a disc golf forehand analysis would be more appropriate for you.
Interesting that the "snap" doesn't appear to be represented. Isn't the wrist action one of the most important parts of the throw? Or is that accounted for in another way?
Awesome video! That’s really cool to see. You mentioned unity not taking the spin of the disc into account too much. How does unity handle the flight of the disc without spin? Do the discs ‘fly’ or are they just sort of ‘chucked’? Really cool video!
Yes! More disc golf content from you! Your first video was amazing; this video is amazing... if you can find a way to keep it up, please do. I am super into it.
One crucial variable was missing: Release time. (Gorgeous video, btw.) Humans get to decide when to let go and the model should to! Right now it's optimizing for getting the disk moving as fast as it can precisely at, say, 1.2 seconds, not maximum possible speed. If the best wind up if takes .4 seconds longer than the one shown, it would release during the slow part of the swing and steal my signature move: winding up, dropping the disk, and then awkwardly standing there. The easy/hacky "solution" would be to set the release time longer than it needs to be so it can "decide" when to wind up to coincide with the release time. That might be as easy as changing the release point variable. An attractive option if you and your code have decided to see other people for a while. The "right" way would, of course, be adding an output from the neural network First video I've seen from you and I'm already sub'd
This was an incredible video. I think your simulator is rounding because it pivots in a single point in space. Comparing to your overhead shot, even your standstill has your feet spread apart and full body moving laterally while turning.
This is really great work! I love your journey to get here. I am wondering how you are measuring "strength" in the joint. I feel like using the mass-spring-damper system would be a great method to simulate muscle tension. The spring could even be used between the two arms (along the back) to replicate the muscle tension developed between the scapula when both arms move towards midline. Also, in terms of the torso-to-shoulder joint angles, it makes a lot of sense that the shoulder is pushed more anteriorly since all the pros seem to protract their scapula a lot during the pull-through (resulting in the angle from the sternoclavicular joint to the acromioclavicular joint at the shoulder being more acute). As someone who trained in engineering and physical therapy, I find this interface between the human body and computer simulations to be very fascinating. Lastly, do you think that replacing the reach back with having the arm in a pre-set position to begin the throw could minimize the variability and possibly correct the wrist angle?
Thanks for the well thought out comment! I did think about a pre-set starting pose, but I wanted the algorithm to be able to do what it wants. I already have many other ideas how to make the simulation represent the real world a bit better, though, so there's definitely a lot to test when I come back to this :)
Listening to you and the topic, I felt like there was something in it, something familiar. But the quality of the video and the studio didn't fit in. Yet here we are, your about said you're finnish. Really good quality video! Big fan of AI, or genetich algorithms and have tried disc golfing a bit. Very interesting application. I once grabbed MarI/O by Seth Bling and watched the AI learn stages of Super Mario World. Very fascinating, it's just that my adjustments to the algorithm basically just made it worse at figuring the game out. The biggest thing was just time, giving the algorithm enough time to try out other paths while converging towards a good one. After hours it gets a bit annoying to watch the algorithm to just stop stand in place watching up until it times out, or running in the first pit after just almost finishing the stage. I don't know what you could do to give the algorithm better idea about what kind of things to start avoiding eventually so it wouldn't waste time on totally useless things after a while. And it's also annoying to have trained it for hours and then see it get really close to the exit and then spend another minute doing very subpar attempts that are far from reaching the exit, before the next time it gets close to the exit. Also there's the dilemma of how general you want it to be, how vague your initial fitness function is, so you don't manually teach the AI everything about the game and sort of ruin the whole idea of using the algorithm, but still have a strong enough fitness function that the AI "understands" to strive for the desired thing in human's perspective. The difficulty of making it intuitively understand its goals and what kind of things to avoid similar to human, without teaching it first. You're very accurate about the strengths of the joints in general. Every powerful move starts from the core, like a punch or a kick or a judo throw. You obviously also increase the moment arm every step you get closer to the core if your load is at the extreme of a limb, so the torso kinda needs to be strong for that reason as well. Furthermore the more distance you travel from the torso, the smaller the muscles are. For example an olympic weightlifter can hold a much higher load overhead than their overhead press strength might indicate. This because they have a very direct line from hands to feet on the ground, everything is in line to minimize the moment arm. And there's another detail: the joints are locked in overhead position. That massively increases the capability to withstand load, for example your elbows need to be locked out or the bar will crush you, there's no way your arms could handle that. Therefore the athlete either presses their scapulae together to make really rigid upperback and shoulder situation by activating lower traps, or they lift their shoulders to ears to lock them by activating upper traps. There's also internal rotation going in the shoulder joint to stabilize the arms in the overhead position and keep them in line with the back, hips and feet. However, during the disc golf throw you don't have the advantage of locking the joints or having them in line, so you're at the mercy of the weakest links. Yet the throw absolutely starts from the massive leg power that your legs can provide, through twisting your core to arms. I think you'd find some really curious variation if you started evolving the joint lengths like real humans do. And also changed the range of motion of the joints like real people have variations from person to person. I bet that would lead to slightly different optimums, just like how humans many times adapt their technique to their body to find the best performance outside the text book example. My idea for the wrist for the algorithm is that it might be something about how fingers work, where the AI doesn't have fingers. It would sort of cause an additional delay that's not necessarily creating more velocity to the throw direction, it's extra turn it has to make to get the disc to release. With human fingers they're curled around the disc but you release them out of the way when your wrist turns at the end. And like you said, the AI doesn't care about the spin. Having multiple freedoms of motions in the joints might also slightly change the behavior of the throw. In the full model you'd also have to consider the individual muscles - the attachment points (that vary per person) and the directions they produce the most force in. Antagonists creating stability and so on. For example in your recorded throw to me it looks like you keep the package way more tight and closer to the body. Very natural for human creating power. And using more chest despite chest not being very beneficial to throw movement, however I think chest helps creating tightness and allows using shoulders more without the arm swinging up. And on top of the rest, how much muscle the thrower has, the growth of a muscle also changes the angle and therefore creates slight disadvantage in producing the force, while improving the force production by creating more contractile tissue. In the end I'm not sure how much the details would impact the black box simplified model though, it's not that uncommon that the general model already filters unnecessary noise out and focuses on the core mechanics. There might be little details on how the joints and muscles work together that limits human compared to the model, or they might not on average case. Do disc golfers look at disucs thrower track and field athletes for technique? That spinning is much different to how disc golf looks to me, but I assume disc golf technique allows more accuracy where discus throwers need to just hit the sector.
It would be really interesting to overlay a professional throw to your simulation like you did for your throw. This was really interesting. Thanks for sharing!
@overthrowdiscgolf has some drone footage from Simon and Drew. They both have the angle a little more than 90 degrees. Also the swimming motion with left hand is very clear while Drew is throwing. For example in video with title: "Backhand Footwork & Brace | Pro Form Analysis (ft. Simon Lizotte & Drew Gibson)"
Its people like you that makes internet exiting. And hats off to you that just pushing this thing trough even that programming tend to question your mind alot :) Take care and you get sub from me!
If you add a way to affect the flight of the disc with things like stability and angle, you could enforce the need for wrist motion to maintain stability and could also add tilt to the disc for the throw to curve mid flight
Interesting ideas and great video. I'm currently working in a biomechanics study and we ran into a similar issue when it comes to constraints. I'm not familiar with the program you're using but I would recommend (if possible) solving for the inverse dynamics of this motion, or by predicting the kinematics of segment/joint angles by the position of the end effector. You'd then be able to apply the anthropometrics of the rigid bodies to the system and get a more accurate prediction of the human motion with particular constraints.
Very interesting video ! One point we could note is that in your throw, you had your whole body involved : your legs mouvement gave more momentum to the disk, which the simulation doesn't have. That could be one of the possibilities while there's a tiny difference in the throws
You should've adjusted the disk trail to the torso position in comparison between your and simulated throws. Probably would've given a slightly more similar shape
If you do decide to expand on the project, would adding a "maximal load" each joint can experience during a throw to make it look a lot more natural stopping it from utilizing the unbreakable joints.
Hi, thanks a lot for the interesting analysis. I would have a suggestion: What if you start this optimization process with a much simpler case? For example, you would have only three elements: rotating torso, right shoulder, and right upper arm. Your goal would be to maximize the velocity of the right elbow. If complete, then you could add the forearm and maximize the velocity of the right wrist. And finally, you could add the hand. Of course, the optimal angular velocities in joints would somehow change as you would add the components, but it could be that these changes would be small and you would converge to the optimal form much faster.
Wow dude, that is amazing! I can't foresee what you'll do next, your channel is awesome and I love it, especially on your thoughts on philosophical or mundane things 😄 I understand you said you weren't going to spend too much time into it, but since I myself work on AI, if you were to take this on again I would recommend looking into the CPU based "neat" algorithm library, or if you have a decent GPU and some spare time, "SAC agents" or "Deep Q learning"
The last frame is your throw is very cool! Notice how the straight reach back actually had a more aggressive bend in the curve than the model. Interesting.
Two interesting points to me from a top-down perspective is a) the much more rounded backswing and b) the "later release angle by rounding at or just after the power pocket. a) could give more time and pre acceleration to the maximum reach back and it's transition over to forward momentum. b) is much (>45 deg) later than what we throw. It may well be beyond the limit of our biomechanics, but I assume it gives a longer acceleration distance and more time/distance near and in the power pocket. The aiming could be less intuitive, but should be learnable.
I think once you reintroduce force at release (hand gripping the disc) instead of just a timed release you will see the correct hand position. The disc ripping out of the hand instantaneously is probably going to be the hardest part for the algorithm to figure out
Yep, the hand/disc interaction is super complex, and this kind of gross simplification can't capture it all that well. That being said, I do have some ideas I need to test :)
Great video about a very interesting application of genetic algorithms. I was wondering if you used a "simulated annealing" approach to avoid local maximum.
Thanks! I didn't use simulated annealing, this is a quite simple genetic algorithm :) But it seems to do the job surprisingly well! I think the biggest issues right now are related to the mechanics and some other parameters (spin, the hand joint inflexibility, torso movement etc), not so much the genetic algorithm.
Point 1 of the limitation with the looping reach back due to the fixed torso. Accurate assessment. Even if this was the best way to do it, it is so challenging to reproduce that even if you threw farther the question of where did you throw would be a concern. For distance and accuracy envision keeping the arm angle pre-power pocket bent and moving along a straight line to the target. Essentially as you drew your manual line. For an example of the algorithm look at Calving Heimburg he is doing all sorts of loopy things back there, but getting back from it is a different story for most people. The hand orientation may be compensation for not being able to supinate the forearm. When you go into the power pocket if you pronate the forearm things get too tight. If you can supinate you create a little more distance through that part of the pull and keep it more on the line you want (front to back, irrespective of arm angle). If you couldn't do that cocking the wrist out would maybe achieve the same thing. Joints don't just open and close around pin holding them together they do freely rotate in other directions and I'd wager that's what is happening here. I've started putting my arm in an about-to-draw-a-sword-very-dramatically from my hip angle and holding that through reach back and into the power pocket with my forearm turned as described and it has made worlds of difference.
Great job! I would've never thought that you would gain more velocity with a more rounded reach back, now when I see it it seems pretty obvious though. I've compared your "ultimate form" to when the pros throw a 360 backhand, and it's suprisingly similar with the more rounded reach back! Great work man :)
Just remember the parameter is to get the most velocity on the disc. A lot of power is generated from the plant foot through the hips. This simulation doesnt have that. It's all upper body. So it is kind of doing what most beginners do. It's trying to throw really hard using the shoulder and elbow instead of good technique where power is generated in the hips and core with the shoulder and elbow being just the transfer mechanism.
@@barrymak421 I very strongly disagree and I don't think you understand the sim and it is absolutely nothing like a beginner. The sim creates as much power from the hips as it wants but it doesn't have a hip joint. AKA the body isn't creating the forces its just transferring it like a real throw. The missing hip join is the cause of the rounded reach back and other issues but the throwing motion is at peak professional form.
I think this is an excellent idea that can act as a concept sketch for someone alot smarter than me to whip up real quick. Lots of biomechanic functions to consider.
For to say, the simulation seemed to be a nice to see. You can also add an run up to the simulation. Only thing that it does lack is the fact of wind and angle. 🤔 is this open source project? Because I know for sure that many in our company would be interested
I love seeing your progression! Your content is exactly my kind of nerdy. Thanks for the hard work! I started thinking once you pointed out the fixed center point. Could you move that point in a diagonal line at the same angle as someone's center of mass moves along during a run up (maybe about 30 degrees or so from the desired disc line)? I'm curious if the disc would move along a more similar path to your real throw.
I think holding your body stationary (tracked) and tracing the run up throw would be interesting to see the flight path more comparably. Also adding disc spin to the optimizations might help the simulation evolve.
I'd like to see this with some traditional flight mechanics included - angle, pitch and yaw of the disc (and thus of the articulating hand)! Also not sure if I missed it but is this "just" force generation, or does it include spin speed when calculating the disc flight?
Thanks, Jonathan! I know, those early throws really seem to resonate with people :D I've been really wanting your signature Fuse (threw my old one in a pond, sad times) but I was late to the party and they're sold out! Congrats on the succesful disc, and I hope you do another restock! Love your discs, 80% of my bag is Latitude plastic. Best wishes
I have been wondering for a couple years now how there seemingly isn't much overlap between even hobbyist programmers and disc golfers. Or if there is, at least the content on the internet doesn't reflect that at all. Absolutely loved this video! If you don't want to continue working on this project anymore, any chance you could open source it? I feel like everything you talked about at the end of the video could be solved by the open-source community pretty quickly if they had a starting point as good as this. But tbf having everyone on the internet see my code that I wrote for a personal project sounds terrifying so not wanting to do that would make complete sense.
You guessed why I'm hesitant on publishing the code :D But in all seriousness, I'm pretty sure I'm going to continue working on this in the nearish future. Too many great ideas to let sit around :) If I get the code a bit more polished and the results looking better, I might even consider making it public!
@@SketchesForHumanity I'll look forward to any new videos on this! Also no pressure but I will definitely take a look at the code if you ever do end up making it public :D In any case, thanks for taking the time to make this! Made for an absolutely fascinating video.
Hey! I have been thinking about the algorithm getting higher speed with the unusual 'reaching around and then out' at 09:47, and today I was watching Will Shusterick's new videos and he throws like this.
its cool that you and your brother share some skills so you can ask for help. my siblings all like doing different things aside from playing video games. even then we mostly play different games.
Keep going! This is great, and we all will benefit from this research. What about the vertical height of the arm. Does the arm and hand really need to be at shoulder height, or can it be a bit lower?
I visualized the hand as being thrown forehand. I know it’s different form and everything, but looking at how the simulation has the hand situated, a forehand throw looks similar when looking at the fingers and direction they are pointed.
10:30 would the hand angle be a by product of setting a time of release? A bit more time could give it the extra time to snap its wrist. Just a thought. Loved the video.
I tried simulations with many lengths of throws, but it didn't seem to have a visible effect on the hand orientation :/ It's probably got to do with some other things. I have many ideas on what to test next, so it's hopefully going to evolve a lot still :)
Interesting video! Regarding the had angle, I think it would be valuable to run the simulation with the hand completely limp (or a very low strength value). For myself at least, it's quite difficult to try to leave my hand in that cocked-back position. Perhaps it would be more apt to have some sort of inertial measure implemented, but it's hard to say without seeing the actual simulation environment. Again, kudos on the great video and thanks for the interesting insights it provides!
Can we see the motion trail on your runup throw, but with your body as the frame of reference for the trail? That would make it 1 to 1 with the robot and may be closer than you think.
I think accounting for rpm in the thrower sim would be pretty helpful - the sim locks the wrist backwards (might be worth not letting it bend more than say, 20 degrees backwards in order to maximize leverage of the second to last 'joint'
I love the Idea and passion of the video! Are there like constrains (like only the physical possible angle of sm. like a shoulder)? or constrains about how much force an arm can maximal take? I m really bad at coding or physics but: couldn't you avoid humanly impossible movements by punishing the score of the trow? It sounds very complicated but could get interesting results.
"I finally ran out of ways to fail" made me literally spit out my soup. I'm a programmer. I get it.
He stole that saying from the youtube channel "Stuff Made Here" on the video "Automatic pool stick vs. strangers" at the time mark 9:21 😉
@@DefinitlyAPerson wow...
@@DefinitlyAPerson You can't say that a saying was stolen just because someone already said it.
Edit: I checked "Automatic pool stick vs. strangers" by "Stuff Made Here" time 9:21 and he said "you run out of stuff that can be wrong" which is completely different from "I finally ran out of ways to fail".
@@rabusu. I deeply apologize for it not being vervain even though it wasn’t a quote, I should know better and my actions are withheld accountable by me.
Stackoverflow has your back 😂
I've been programming professionally for 27 years. We're all terrible at it. Awesome work!
I'd like to add to this that, mostly, programming *is* failing. its about failing, figuring out why you failed, and then fixing whatever problems you see. repeat cycle until you have your final product. it involves a great deal of running into brick walls, getting up again, dusting yourself off, and trying again, for as many times as it takes.
Very interesting video. This thing is about to BLOW UP.
I'm a software developer and disc golfer, and this kind of devlog is awesome! I love your visuals, script, and edits.
Thank you for taking the time to put together and polish this great summary of your findings. Great work!
I think adding at least the same weight to the left arm will start to show some changes. Of course adding the proper length and weight to the left arm will be better as there are very complex angular velocities at play . . as you know :)
This would be interesting to see, does it throw further with more mass on the off hand
This is a great form for 1 arm players to copy for stand-still throws.
@@tinokaartovuori the left hand/arm is actually pretty important in right hand throwing! Some extra angular momentum
Sorry, but no. The left arm is tucked in tight to the body as the counterrotation of the torso ends, and the torso begins rotating right. Adding weight to the off hand would slow down the rate at which it is launched outwards and upwards after the disc release, to remove all the rotation created in the body by the throwing motion itself.
If carrying weights in the off hand resulted in longer throws, then professionals would already be holding weights in the off hand. Can you see that?
@@Chris.Davies Gino’s comment could be interpreted as - it would be interesting to see how the genetic algorithm changes, if it changes, if the model In the simulation had the left arm weighted the same as the right-even without joints, vice interpreting it as a comment of how throws could be different if the left arm was weighted more than the right.
Absolutely fascinating and so inspiring to see how you tackled something you hadn't done before. I would imagine there were like minded disc golfers out there who would want to contribute to this kind of work. I don't have the programming expertise myself but just seeing you go about building this makes me want to start learning. Thanks for the awesome video again, can't wait for the next one. 10/10 jatkoon!
As far as I can tell you have no other real content on Genetic Algorithms - this is the first video of you that I've watched & I can see the very clear quality in your work.
As somebody coming from a DL background I can see that you clearly have the knowhow and curiosity that drives an excellent project such as this one, this has really inspired me to go and try out some stuff on my own. I would love to see some more content with this sort of stuff!
Besides the recommendation to completely model the left arm, I would recommend increasing the rigidity between the torso and the shoulders as well as the rigidity of the wrist. If possible, adjust the attachment point of the disc to the center of the hand segment. Lastly, consider setting a maximum angle for the elbow and shoulder joints I want to build a disc throwing machine and have spent a fair amount of time running thru iterations in my mind. Best of luck and i look forward to seeing more analyses like this.
So promising! Please continue your work on this! Might really move the whole sport forwards!
Could you add:
- Proper range of motion for different joints
- The stifness of joints as they approach their "limits"
- The power of muscles is a function of the joints angle
- Proper goal for the algorithm (you mention this even yourself), not just the velocity but also spin.
Then of coures things would get infinitely more difficult if you would move to proper 3D and be able to include, throw angles (hyzer vs. anhyzer), nose angles, the direction of the speed vector etc etc...! With a model like that it would be SO interesting to see how it handles differing disc stabilities and speeds, different wind conditions, elevations, hitting different lines..
Could you solve disc golf!?!?
Taking on a huge task with little to no prior knowledge? Classic example of the human spirit. Well done 👍
I would love to see a comparison of this “ideal form” and the form of various pro players using motion capture
Absolutely, once the left arm and hips are added.
This is not ideal form.
Ideal form requires the torso to actually rotate backwards, (left) and then forward (right).
I think theres a video on Ezra aderhold's channel where they do that
Excellent job ! you have such a contagious curiosity for knowledge :)
Thanks, Robert! Yeah, I tend to fall pretty deep into these rabbit holes :) It's always so rewarding in the end!
I love all of your videos. This was the best one yet. I've been contemplating a project that would make use of the skills that you display but would actually be much simpler to perform. Namely, modeling disc flight based on DISC parameters. With that project, you would assume a generic launcher such as the ones that they use for skeet shooting and then model disc flight as a function of hyzer angle, release angle, etc.
Thanks again for a fabulous video!
You're the man! You're an incredible programmer. 3:45 is exactly how I throw on the course
😂
Lmao
The off-arm is interesting. It kind of looks similar to how Double G throws. Off-arm pushing away from his body... Great video!
This is really interesting! It looks very similar to the form of a lot of our taller players. It reminds me a lot of James Conrad or Kyle Klein. I wonder if you shortened the levers if a wider reachback becomes more advantageous? Thanks for all your work!
Edit Re. 90 degrees: I'm learning that the 90 degree shoulder should be more a result of timing rather than rigidity. You'll see a lot of top players like GG leverage their body in a way that causes that shoulder to open up (quite a bit in his case) and add leverage to the throw. But most amateurs that do it are just pulling with their back muscles and that ends up causing a bunch of other issues. The best way to think of it is to try to swing everything together. As long as in the power pocket, the shoulder is relatively close to 90 degrees, I wouldn't worry too much about it.
Thanks for the insights, Danny! Your videos have helped me a lot along the way :) I'm not a tall guy, so the levers are actually not that long in these simulations (the joint lengths are based on my body). But I do now have many new ideas on how to improve the system, so we'll hopefully see some improvements on it eventually!
Hi Danny, opening the shoulder in the smash results in the right shoulder never moving backwards along the line of play. The effectiveness of Spin & Throw form is due to the way the shoulder stays locked, and the shoulder therefore pulls the right arm backwards, creating the REAL whip.
No whip can operate without the handle being pulled backwards after it comes to a stop - yeah?
Opening the shoulder early, results in the arm going forward before the shoulder moves backwards, and this not only ruins the timing of the release, and its location, but it removes the whip effect.
I am 57 years old now, and using S&T to throw a lot further than I was able to throw using what I now call "Poke and Pull". I am almost ashamed of inventing the Mobius Line Puller which prevents rounding. It yields a very accurate, but very low power throw which relies on athletic ability and strength, rather than form and timing.
Real rounding is by far the most powerful (and natural!) form, but only if the disc swings and accelerates throughout the throwing motion.
Your simulation is fascinating! As far as the algorhythm finding the most optimal way to throw the disc, one major difference that I can think of is the use of the legs when a disc golfer throws. With proper form, we generate so much power from our lower body and hips, which the algorhythm of course doesn't have access to, so it's compensating for everything with pure "upper body". Not sure exactly how much that would have to do with it, just my obsevation as a disc golfer and not a programmer. Keep up the good work!
I came to comment the same exact thing. Eloquently put High Action, took the words right out of my mouth!
The sim gets its power from the ground and it is not throwing with just its arm. It is bolted to the ground which simulates perfect legs. All the force it is pulling with is from the sim pushing against the ground.
@@joshuachoate7966 The sim gets its power from the ground and it is not throwing with just its arm. It is bolted to the ground which simulates perfect legs. All the force it is pulling with is from the sim pushing against the ground.
Man, I love your disc golf videos. Your approach to this is the exact right amount of nerd. I work with genetic algorithms in my daily job so this was very close to home.
Yes I have been waiting for this! Thank you!
I must say the editing, the music, everything about this video was my idea of a perfect video!
Perfect, my two favourite things DISC GOLF and NEURAL NETWORKS!
This was incredible. This is why TH-cam is awesome. Can't wait to watch more. Keep up the good work.
This is the coolest thing ever. Thanks for putting all the hard work in!!
Since the values are somewhat optimized now for each joint velocity, it might be beneficial to switch back to force threshold based releases. Some of the reaching behind and rounding seen was likely due to the simulations exploitation of the guarantee that the disc will come out at the same time during each simulation. With force threshold releases, more direct and quickly applied snap would have to be created in order for a consistent release, which lends itself to a straight pull through in my opinion.
m.th-cam.com/users/shortsWiz3UeU86Xo
I think rounding is the future
Yeah, it's definitely worth a try! The thing with the force threshold releases is that it seemed to be inherently very unstable, in that the exact same threshold+genes would sometimes produce very different looking releases. It might actually be a good thing if it was small variations, but it seemed to be quite substantial differences, which made the thrower stop developing past a quite rudimentary point. It might be just a limitation of Unity, or some mistake in my code, but yeah, I don't like the timed release either :D I'll have to think about it a bit more.
I feel like inorder to compare the path of the disc through the reach back to human kinetics, the distance between the joints should be wider and slightly back because that movement rotates around the ribcage and not the spine.
I watched till the end. Nicely done! Perhaps you and Stuff Made Here could collab and build the disc throwing robot.
th-cam.com/video/gnwIiw3Rz3I/w-d-xo.html
Sorry, I don't program at all or I would link his name to the url 😅
The rounding that the sim does is compensation for not having a hips and not due to an inefficiency.
Straight back and forward is not the formula for the most power or spin.
Yep. Furthest throws are 360 not stand still reach backs and the forms aren't identical. So yeah the simulation is approximating the disc path of a 360 more so than a controlled 'golf' shot among other variables
The world needs more people like you to perform experiments and analysis such as this, so thank you! There are so many elements and variables to consider: a team of individuals could surely attempt to capture the rest of the bits required to fully realize your goals. IE: considering hip/lower body twist and related torque, leg strength in pushing forward, the run up and foot speed forward to the disc release point, etc. etc. Great job in understanding the arm and partial torso to disc release, but - there is sooooooo much more involved than that, esp. in a tee-off or run up. Your experiment demonstrates the stand-still release - which is incredible in it's own right - but there is more to it than solely upper body motion to tossing a disc it's maximum distance. Best regards.
First of all, great job! I've been thinking doing something like this when I had time, but start from the hips up after seeing your original video. And I think this is exactly what I expected it to end up in (with the exception of the wrist due to no spin required). All in all, great job! And very interesting thing to follow, keep it up!
This channel is so cool. I loved the first form video, loved this one too, and now I’m excited there’s another one coming as well! Fantastic video, love the production value.
I love the overhead thing you did with your throw, that was really cool to watch. Then it had me thinking of Tony Hawk Pro Skater games. They used some kind of crazy bodysuit on the athletes to record their movements while doing certain trick. I wonder if that would be possible to do in our sport on a elite level with 10 of the best throwers out there, not just the long bomb power shots but also the controlled slower speed shots. It would be awesome to see those results.
Thank you for the great video. I can’t wait to get out your next one. God bless.
This has already been done. Tristan Tanner and Ezra Aderhold did it.
@@blakesides6558 where do I find the video?
@@AlanS_DGC th-cam.com/video/AG_8tW2eBBc/w-d-xo.html
@@AlanS_DGC /watch?v=AG_8tW2eBBc
All the smart youtubers: "I'm a terrible programmer"
*writes a brilliant program*
Really interesting video topic, great execution and fabulous production quality!
I’m not sure how much you learned about the ideal backhand throw, but it’s not the destination; it’s the journey! You did learn much.
I am excited for the future update on your backhand progress.
I am not sure why Robert is interested in you doing an analysis of the Ultimate frisbee forehand, though I wouldn’t mind (I was a long time Ultimate player). But it would seem a disc golf forehand analysis would be more appropriate for you.
Thank you, thank you, thank you. Your video is very interesting and stimulating. Please keep going. Feels like there’s a breakthrough coming.
Interesting that the "snap" doesn't appear to be represented. Isn't the wrist action one of the most important parts of the throw? Or is that accounted for in another way?
Amazing. Loved every minute of it! Looking forward to the next video.
I think you just modeled Matty O's form! Incredible video, I will absolutely be tuning in to further iterations!
Awesome video! That’s really cool to see. You mentioned unity not taking the spin of the disc into account too much. How does unity handle the flight of the disc without spin? Do the discs ‘fly’ or are they just sort of ‘chucked’?
Really cool video!
Yes! More disc golf content from you! Your first video was amazing; this video is amazing... if you can find a way to keep it up, please do. I am super into it.
Super interesting video. Excited to see what you come up with next
You are my hero today sir. I have done similar projects and could totally relate to you every step of the way.
This is an optimal control problem. There should be a Hamilton-Jacobi-Bellman solution to it also. Great video.
That was so cool! Can’t wait to see what comes of it honestly! Good luck 👍🍀
One crucial variable was missing: Release time.
(Gorgeous video, btw.)
Humans get to decide when to let go and the model should to! Right now it's optimizing for getting the disk moving as fast as it can precisely at, say, 1.2 seconds, not maximum possible speed. If the best wind up if takes .4 seconds longer than the one shown, it would release during the slow part of the swing and steal my signature move: winding up, dropping the disk, and then awkwardly standing there.
The easy/hacky "solution" would be to set the release time longer than it needs to be so it can "decide" when to wind up to coincide with the release time. That might be as easy as changing the release point variable. An attractive option if you and your code have decided to see other people for a while.
The "right" way would, of course, be adding an output from the neural network
First video I've seen from you and I'm already sub'd
This was very interesting! Look forward to more videos.
This is awesome, exactly what i wanted. real values, joint limitations, weight, strength, spin, all would be awesome too see added
Very interesting, and well done! Look forward to seeing more, especially introducing lower body and weight transfer considerations.
Dude this is so cool!!! I wish Disc Golf Scene would look into something like this! IRL tho Flexibility, grip, and neck turn speed, are major factors.
Really great - I love your approach to this and the results are cool.
This was an incredible video. I think your simulator is rounding because it pivots in a single point in space. Comparing to your overhead shot, even your standstill has your feet spread apart and full body moving laterally while turning.
This is really great work! I love your journey to get here. I am wondering how you are measuring "strength" in the joint. I feel like using the mass-spring-damper system would be a great method to simulate muscle tension. The spring could even be used between the two arms (along the back) to replicate the muscle tension developed between the scapula when both arms move towards midline. Also, in terms of the torso-to-shoulder joint angles, it makes a lot of sense that the shoulder is pushed more anteriorly since all the pros seem to protract their scapula a lot during the pull-through (resulting in the angle from the sternoclavicular joint to the acromioclavicular joint at the shoulder being more acute). As someone who trained in engineering and physical therapy, I find this interface between the human body and computer simulations to be very fascinating. Lastly, do you think that replacing the reach back with having the arm in a pre-set position to begin the throw could minimize the variability and possibly correct the wrist angle?
Thanks for the well thought out comment! I did think about a pre-set starting pose, but I wanted the algorithm to be able to do what it wants. I already have many other ideas how to make the simulation represent the real world a bit better, though, so there's definitely a lot to test when I come back to this :)
As a player who is primarily forehand, I have to ask if you have any plans for doing this for a forehand throw?
this channel has some one of the best disc-golf content on youtube
Listening to you and the topic, I felt like there was something in it, something familiar. But the quality of the video and the studio didn't fit in. Yet here we are, your about said you're finnish. Really good quality video! Big fan of AI, or genetich algorithms and have tried disc golfing a bit. Very interesting application.
I once grabbed MarI/O by Seth Bling and watched the AI learn stages of Super Mario World. Very fascinating, it's just that my adjustments to the algorithm basically just made it worse at figuring the game out. The biggest thing was just time, giving the algorithm enough time to try out other paths while converging towards a good one. After hours it gets a bit annoying to watch the algorithm to just stop stand in place watching up until it times out, or running in the first pit after just almost finishing the stage. I don't know what you could do to give the algorithm better idea about what kind of things to start avoiding eventually so it wouldn't waste time on totally useless things after a while. And it's also annoying to have trained it for hours and then see it get really close to the exit and then spend another minute doing very subpar attempts that are far from reaching the exit, before the next time it gets close to the exit. Also there's the dilemma of how general you want it to be, how vague your initial fitness function is, so you don't manually teach the AI everything about the game and sort of ruin the whole idea of using the algorithm, but still have a strong enough fitness function that the AI "understands" to strive for the desired thing in human's perspective. The difficulty of making it intuitively understand its goals and what kind of things to avoid similar to human, without teaching it first.
You're very accurate about the strengths of the joints in general. Every powerful move starts from the core, like a punch or a kick or a judo throw. You obviously also increase the moment arm every step you get closer to the core if your load is at the extreme of a limb, so the torso kinda needs to be strong for that reason as well. Furthermore the more distance you travel from the torso, the smaller the muscles are. For example an olympic weightlifter can hold a much higher load overhead than their overhead press strength might indicate. This because they have a very direct line from hands to feet on the ground, everything is in line to minimize the moment arm. And there's another detail: the joints are locked in overhead position. That massively increases the capability to withstand load, for example your elbows need to be locked out or the bar will crush you, there's no way your arms could handle that. Therefore the athlete either presses their scapulae together to make really rigid upperback and shoulder situation by activating lower traps, or they lift their shoulders to ears to lock them by activating upper traps. There's also internal rotation going in the shoulder joint to stabilize the arms in the overhead position and keep them in line with the back, hips and feet. However, during the disc golf throw you don't have the advantage of locking the joints or having them in line, so you're at the mercy of the weakest links. Yet the throw absolutely starts from the massive leg power that your legs can provide, through twisting your core to arms.
I think you'd find some really curious variation if you started evolving the joint lengths like real humans do. And also changed the range of motion of the joints like real people have variations from person to person. I bet that would lead to slightly different optimums, just like how humans many times adapt their technique to their body to find the best performance outside the text book example.
My idea for the wrist for the algorithm is that it might be something about how fingers work, where the AI doesn't have fingers. It would sort of cause an additional delay that's not necessarily creating more velocity to the throw direction, it's extra turn it has to make to get the disc to release. With human fingers they're curled around the disc but you release them out of the way when your wrist turns at the end. And like you said, the AI doesn't care about the spin. Having multiple freedoms of motions in the joints might also slightly change the behavior of the throw. In the full model you'd also have to consider the individual muscles - the attachment points (that vary per person) and the directions they produce the most force in. Antagonists creating stability and so on. For example in your recorded throw to me it looks like you keep the package way more tight and closer to the body. Very natural for human creating power. And using more chest despite chest not being very beneficial to throw movement, however I think chest helps creating tightness and allows using shoulders more without the arm swinging up. And on top of the rest, how much muscle the thrower has, the growth of a muscle also changes the angle and therefore creates slight disadvantage in producing the force, while improving the force production by creating more contractile tissue.
In the end I'm not sure how much the details would impact the black box simplified model though, it's not that uncommon that the general model already filters unnecessary noise out and focuses on the core mechanics. There might be little details on how the joints and muscles work together that limits human compared to the model, or they might not on average case. Do disc golfers look at disucs thrower track and field athletes for technique? That spinning is much different to how disc golf looks to me, but I assume disc golf technique allows more accuracy where discus throwers need to just hit the sector.
Nice job! I love this kind of mad scientist stuff, keep up the great work.
It would be really interesting to overlay a professional throw to your simulation like you did for your throw. This was really interesting. Thanks for sharing!
@overthrowdiscgolf has some drone footage from Simon and Drew. They both have the angle a little more than 90 degrees. Also the swimming motion with left hand is very clear while Drew is throwing. For example in video with title: "Backhand Footwork & Brace | Pro Form Analysis (ft. Simon Lizotte & Drew Gibson)"
Great video. Thank you for the hard work you put into this test. It was very interesting and entertaining
Its people like you that makes internet exiting. And hats off to you that just pushing this thing trough even that programming tend to question your mind alot :)
Take care and you get sub from me!
If you add a way to affect the flight of the disc with things like stability and angle, you could enforce the need for wrist motion to maintain stability and could also add tilt to the disc for the throw to curve mid flight
That was very very well explained, the whole journey... The left hand stopping part, is definitely an eye opener at my point in Discgolf...🙃
Interesting ideas and great video. I'm currently working in a biomechanics study and we ran into a similar issue when it comes to constraints. I'm not familiar with the program you're using but I would recommend (if possible) solving for the inverse dynamics of this motion, or by predicting the kinematics of segment/joint angles by the position of the end effector. You'd then be able to apply the anthropometrics of the rigid bodies to the system and get a more accurate prediction of the human motion with particular constraints.
This is important data to gather! Great work!
Thank you for a little science on disc golf. What a wonderful sport.
Very interesting video !
One point we could note is that in your throw, you had your whole body involved : your legs mouvement gave more momentum to the disk, which the simulation doesn't have. That could be one of the possibilities while there's a tiny difference in the throws
Awesome, thanks. Can’t wait to see more.
You should've adjusted the disk trail to the torso position in comparison between your and simulated throws. Probably would've given a slightly more similar shape
If you do decide to expand on the project, would adding a "maximal load" each joint can experience during a throw to make it look a lot more natural stopping it from utilizing the unbreakable joints.
Great work and hope to see more updates on this
Hi, thanks a lot for the interesting analysis. I would have a suggestion: What if you start this optimization process with a much simpler case? For example, you would have only three elements: rotating torso, right shoulder, and right upper arm. Your goal would be to maximize the velocity of the right elbow. If complete, then you could add the forearm and maximize the velocity of the right wrist. And finally, you could add the hand. Of course, the optimal angular velocities in joints would somehow change as you would add the components, but it could be that these changes would be small and you would converge to the optimal form much faster.
Wow dude, that is amazing!
I can't foresee what you'll do next, your channel is awesome and I love it, especially on your thoughts on philosophical or mundane things 😄
I understand you said you weren't going to spend too much time into it, but since I myself work on AI, if you were to take this on again I would recommend looking into the CPU based "neat" algorithm library, or if you have a decent GPU and some spare time, "SAC agents" or "Deep Q learning"
this is awesome!! i'd love to see the forehand throw also
The last frame is your throw is very cool! Notice how the straight reach back actually had a more aggressive bend in the curve than the model. Interesting.
Two interesting points to me from a top-down perspective is a) the much more rounded backswing and b) the "later release angle by rounding at or just after the power pocket.
a) could give more time and pre acceleration to the maximum reach back and it's transition over to forward momentum.
b) is much (>45 deg) later than what we throw. It may well be beyond the limit of our biomechanics, but I assume it gives a longer acceleration distance and more time/distance near and in the power pocket. The aiming could be less intuitive, but should be learnable.
Great job! Would be really interesting to see if you could add the amount of spin generated to the disc as a factor, if that changes things 😊
I think once you reintroduce force at release (hand gripping the disc) instead of just a timed release you will see the correct hand position. The disc ripping out of the hand instantaneously is probably going to be the hardest part for the algorithm to figure out
Yep, the hand/disc interaction is super complex, and this kind of gross simplification can't capture it all that well. That being said, I do have some ideas I need to test :)
Great video about a very interesting application of genetic algorithms. I was wondering if you used a "simulated annealing" approach to avoid local maximum.
Thanks! I didn't use simulated annealing, this is a quite simple genetic algorithm :) But it seems to do the job surprisingly well! I think the biggest issues right now are related to the mechanics and some other parameters (spin, the hand joint inflexibility, torso movement etc), not so much the genetic algorithm.
This is awesome! Great work
Point 1 of the limitation with the looping reach back due to the fixed torso. Accurate assessment. Even if this was the best way to do it, it is so challenging to reproduce that even if you threw farther the question of where did you throw would be a concern. For distance and accuracy envision keeping the arm angle pre-power pocket bent and moving along a straight line to the target. Essentially as you drew your manual line. For an example of the algorithm look at Calving Heimburg he is doing all sorts of loopy things back there, but getting back from it is a different story for most people.
The hand orientation may be compensation for not being able to supinate the forearm. When you go into the power pocket if you pronate the forearm things get too tight. If you can supinate you create a little more distance through that part of the pull and keep it more on the line you want (front to back, irrespective of arm angle). If you couldn't do that cocking the wrist out would maybe achieve the same thing. Joints don't just open and close around pin holding them together they do freely rotate in other directions and I'd wager that's what is happening here.
I've started putting my arm in an about-to-draw-a-sword-very-dramatically from my hip angle and holding that through reach back and into the power pocket with my forearm turned as described and it has made worlds of difference.
Great job! I would've never thought that you would gain more velocity with a more rounded reach back, now when I see it it seems pretty obvious though.
I've compared your "ultimate form" to when the pros throw a 360 backhand, and it's suprisingly similar with the more rounded reach back!
Great work man :)
Just remember the parameter is to get the most velocity on the disc. A lot of power is generated from the plant foot through the hips. This simulation doesnt have that. It's all upper body. So it is kind of doing what most beginners do. It's trying to throw really hard using the shoulder and elbow instead of good technique where power is generated in the hips and core with the shoulder and elbow being just the transfer mechanism.
IRL you don't reach behind, you just bend at your hips which creates the same effect.
@@barrymak421 I very strongly disagree and I don't think you understand the sim and it is absolutely nothing like a beginner.
The sim creates as much power from the hips as it wants but it doesn't have a hip joint. AKA the body isn't creating the forces its just transferring it like a real throw.
The missing hip join is the cause of the rounded reach back and other issues but the throwing motion is at peak professional form.
I think this is an excellent idea that can act as a concept sketch for someone alot smarter than me to whip up real quick. Lots of biomechanic functions to consider.
For to say, the simulation seemed to be a nice to see. You can also add an run up to the simulation. Only thing that it does lack is the fact of wind and angle. 🤔 is this open source project? Because I know for sure that many in our company would be interested
Very helpful, and surprisingly therapeutic
GA are awesome, one of my favourite topics. You should play around with the Unity ML agents, try to do the same with neural networks :)
Great work!!!
I love seeing your progression! Your content is exactly my kind of nerdy. Thanks for the hard work! I started thinking once you pointed out the fixed center point. Could you move that point in a diagonal line at the same angle as someone's center of mass moves along during a run up (maybe about 30 degrees or so from the desired disc line)? I'm curious if the disc would move along a more similar path to your real throw.
I think holding your body stationary (tracked) and tracing the run up throw would be interesting to see the flight path more comparably. Also adding disc spin to the optimizations might help the simulation evolve.
I was about to comment the same thing but I figured someone else had already thought of it too.
Interested in seeing the comparison at the end with the disk's position shown relative to your head
I'd like to see this with some traditional flight mechanics included - angle, pitch and yaw of the disc (and thus of the articulating hand)! Also not sure if I missed it but is this "just" force generation, or does it include spin speed when calculating the disc flight?
I think I´ve thrown must of those early throws the computer did 😂. Great video! /Jonathan
Thanks, Jonathan! I know, those early throws really seem to resonate with people :D
I've been really wanting your signature Fuse (threw my old one in a pond, sad times) but I was late to the party and they're sold out! Congrats on the succesful disc, and I hope you do another restock! Love your discs, 80% of my bag is Latitude plastic. Best wishes
@@SketchesForHumanity Haha yeah =). Thanks a ton. I think there will be some sort of restock soon. Glad you enjoy the discs! ❤🤘
I have been wondering for a couple years now how there seemingly isn't much overlap between even hobbyist programmers and disc golfers. Or if there is, at least the content on the internet doesn't reflect that at all.
Absolutely loved this video! If you don't want to continue working on this project anymore, any chance you could open source it? I feel like everything you talked about at the end of the video could be solved by the open-source community pretty quickly if they had a starting point as good as this.
But tbf having everyone on the internet see my code that I wrote for a personal project sounds terrifying so not wanting to do that would make complete sense.
You guessed why I'm hesitant on publishing the code :D But in all seriousness, I'm pretty sure I'm going to continue working on this in the nearish future. Too many great ideas to let sit around :) If I get the code a bit more polished and the results looking better, I might even consider making it public!
@@SketchesForHumanity I'll look forward to any new videos on this! Also no pressure but I will definitely take a look at the code if you ever do end up making it public :D
In any case, thanks for taking the time to make this! Made for an absolutely fascinating video.
to! Can’t wait to buy it, and getting startet!
Hey! I have been thinking about the algorithm getting higher speed with the unusual 'reaching around and then out' at 09:47, and today I was watching Will Shusterick's new videos and he throws like this.
its cool that you and your brother share some skills so you can ask for help.
my siblings all like doing different things aside from playing video games. even then we mostly play different games.
Keep going! This is great, and we all will benefit from this research.
What about the vertical height of the arm. Does the arm and hand really need to be at shoulder height, or can it be a bit lower?
I think adding spin rate or the disk, and adding hips to the model would be huge. This is very cool!
I visualized the hand as being thrown forehand. I know it’s different form and everything, but looking at how the simulation has the hand situated, a forehand throw looks similar when looking at the fingers and direction they are pointed.
10:30 would the hand angle be a by product of setting a time of release? A bit more time could give it the extra time to snap its wrist. Just a thought. Loved the video.
I tried simulations with many lengths of throws, but it didn't seem to have a visible effect on the hand orientation :/ It's probably got to do with some other things. I have many ideas on what to test next, so it's hopefully going to evolve a lot still :)
Interesting video! Regarding the had angle, I think it would be valuable to run the simulation with the hand completely limp (or a very low strength value). For myself at least, it's quite difficult to try to leave my hand in that cocked-back position.
Perhaps it would be more apt to have some sort of inertial measure implemented, but it's hard to say without seeing the actual simulation environment.
Again, kudos on the great video and thanks for the interesting insights it provides!
Wow, bravo! Congratulations man!
Can we see the motion trail on your runup throw, but with your body as the frame of reference for the trail? That would make it 1 to 1 with the robot and may be closer than you think.
Maybe a follow up discussion with "Overthrow Disc Golf" here on TH-cam could be a future collaboration?
I think accounting for rpm in the thrower sim would be pretty helpful - the sim locks the wrist backwards (might be worth not letting it bend more than say, 20 degrees backwards in order to maximize leverage of the second to last 'joint'
I love the Idea and passion of the video! Are there like constrains (like only the physical possible angle of sm. like a shoulder)? or constrains about how much force an arm can maximal take? I m really bad at coding or physics but: couldn't you avoid humanly impossible movements by punishing the score of the trow? It sounds very complicated but could get interesting results.