@@junkyyard2273 I'd say the core idea behind the strategy has more to do with spinning permitting one to hold the ball for longer, thus giving them more time to accelerate it. The centripetal force by itself does not contribute any energy, as it is orthogonal to the velocity.
@@junkyyard2273 it might be i remeber hearing centrifugal force isn’t really a thing in physics but I can’t remember the context of it I just know centripetal is the force keeping the object from flying away like a rope or this dudes arm in this case
It mainly knew how to try for strikes, probably because it had way more opportunities to attempt them and the reward was greater. My guess is that the algorithm would figure out getting spares eventually. It'd just take a lot longer, both because of fewer opportunities to learn and because it would always be in competition with continued improvement in getting strikes. A perfect AI would never need to bowl for spares in the first place.
You have no idea how big of a problem that is. If it does one thing so perfectly that it never gets to experience anomalies. That's an inherent problem with fixed data inputs from simulated environments. That's why Tesla is using customer driving data to train their AI, the real-world data is extremely varied, potential inputs are limitless. They are teaching it the entire visual human experience and letting the NNs figure out how to navigate those experiences as safely as possible. It will be awesome to see the final NN in place, planning and control. Exciting.
It's simply not trained to handle incomplete pin sets. Since most of its throws are strikes, and they normally get rewarded more, it probably doesn't find any real value in training that specific rare scenario.
My university occasionally has ice bowling events, literally bowling on an ice rink, wearing hockey gear, and this AI flopping around and faceplanting after throwing the ball is EXACTLY what it looks like 90% of the time
@@ihavenoson3384 "Hey how do we make ice's low friction fun" "How about using a ball that won't even be touching the floor" "but, that defeats the whole poi-" "ELASTIC BALL GO BRRRRRRRRRRRR"
@@tanelehala6422 Well here it did because the actual objective wasn't even part of the equation. Should really have started with "kock down these quills with the ball" rewarded and "don't cross that line with your feet" punished. In this case, the AI didn't settle for "good enough", the AI tried to maximize the amount of points it could get, and it was rewarded with points for things that don't grant you any in reality when bowling.
To be honest completely throwing yourself off balance is a pretty effective way to transfer energy to the ball. The only real difference is in real life people tend not to like to severely injure themselves on every frame or two.
As a bowler myself, this is hilarious. By the way, it might have been helpful to include information on which pins are standing as an input to the system. Then it might stand a chance at getting spares somewhat consistently. Bowling scoring is very strange, but basically it heavily punishes leaving an "open" frame, meaning you didn't get a strike or spare. This means that being able to pick up your spares is super important for good scores. Another thing to consider is that the hand can act like a lever, allowing you to release your thumb first, then use your fingers to add rotation to the ball. If the model had some sort of basic "hand" that essentially has hold of the ball in two locations, that might allow it to add a fair bit of rotation. Also, did you consider adding oil to the lane? A standard bowling lane will have oil applied to it, with most of it in the first 40 feet and biased toward the center of the lane. Then you could increase the friction between the ball and the surface to compensate.
You know... "Birthday bowling" was a big thing when I was a teenager. I never liked it much really, but here's the thing: Nobody EVER told me any of those things. Everybody was just supposed to know how bowling "works" , I am now a little bit wiser
i like how one of the initial objectives was finishing the episode standing upright so it wouldn't just instantly faceplant every time and then halfway through you went "actually you know what little buddy you just do what you want"
By the end is when the head being held high should have been started to be rewarded, the importanter shit was figured out from there just condition that model to also stay upright and you’re golden
I think a smarter modifier is that it should be punished when it lets it's head, thighs, and torso hit the floor. Though this should also be integrated into it's existing network so it knows how to bowl first.
Imagine seeing someone do this IRL and losing to them they just either get a strike or go in the other peoples lane or hits someone and no matter how good or bad the shot they just fall over
Heck, I only know 3 or 4 people that can put up a 130 or better every time and two of them were on a bowling team, I'd lose here 4/5 games for sure. Maybe losing to 'em wouldn't be as bad as sharing the lane with someone who needs an entire ER in the alley after every frame. . .
Oh my god, please do a video (or a series of videos!) where you train different AIs independently and have them compete against each other in a tournament structure. They can even continue to train a certain number of predetermined times after every game so we can see the best ones progress and gradually refine. I N-E-E-D to see this!
The drastic strategy changes when there were only a few pins remaining is a testament to how well you tuned the reward parameters. If the reward for knocking down pins hadn't been tuned effectively, the AI never would've attempted spares, and instead would've just launched the ball down the center of the lane during a split to be rewarded for speed and direction. Well done!
A 6 year old relative of mine used to bowl kind of like that. In order to get enough ball momentum he usually ended up falling down after release. It became part of his technique. His parents were used to his dare-devil energy in general such that they gave up trying to tame him. When you're 6, you can get away with that. (When he's 55 and his back aches, he might remember why.)
This makes me want an olympic bowler to perfect a technique that looks this dumb and win with it. Maybe keep it in their back pocket until they're ahead enough that they can take the risk.
Thank you so much for including all these little WiiSports references, especially the backwards-throw one at the end :D brought back memories from more than a decade ago with hours of laughter playing this game at a birthday party
I love that the camera still zooms into the lane when they miss, it makes it so funny. It zooms in, and you expect to see the ball majestically appear and destroy those pins, but there’s just nothing.
I'm genuinely curious just how fast the ball could've been thrown had it not given up on aiming and kept increasing in speed, like I'm not expecting a rail gun but its funny to imagine them potentially throwing the ball with enough force to hit the pins directly without rolling.
@@tangentfox4677 It doesn't appear that the United States Bowling Congress, at least, has explicit rules which would cover doing so, though it seems likely to run afoul of rules regarding damaging the lane, pins, and other equipment.
@@coyoteseattle I suspect it's not in the rules because nobody thinks a human capable of it... For now. I eagerly await the screams of dismay from my local bowling alley the day they realize they were wrong.
@@karnewarrior apparently an olympic shot put weighs 16 lbs.. bowling balls typically weigh less than that, they're just bigger I guess- still seems pretty doable when you consider how far they're able to throw a shot put
@@karnewarrior You can absolutely chuck a 8 lb bowling ball down the lane without it touching the ground, but don't expect to not get kicked out after doing it.
This reminds me vividly of the time i went bowling with friends and i slipped while rolling, let go of the ball, and nearly faceplanted with watching the ball honest to god bounce two lanes over. Art imitates life.
The moment you mentioned rewarding higher speed with more reward, I just knew the guy was gonna throw that thing as hard as possible. I'm just impressed it didnt end up abusing the physics engine for that goal. Perhaps CodeBullet has spoiled me
If left for a long time it would have absolutely ended up abusing the physics engine somehow. But the more important point is correctly defining the rewards. Number of knocked down bowling pins should absolutely be a multiplier on the score. Zero pins = zero score. But even then knocking down half at superspeed might give more score that knocking down all at low speed, which is still stupid.
The most hilarious thing about watching this is my irl group of friends in early adulthood would go bowling, and one of our friends in the group had professional training- and at one point, the way he would roll the ball would sometimes have him "fall over" afterwards. So another friend started intentionally falling over dramatically every time he rolled the ball to poke fun at him... and then it became a "meme" about him falling over and flopping like a fish. But the dude could out bowl any of us without effort...
You seem like an experienced programmer, visualisation developer, data analyst, video game designer, teacher, shitposter and engineer who also dabbles in drawing, cinematography, modelling, computer graphics, writing, user interface, publishing papers and gaming. Oh, and I also have this suspicion that you're an AI developer.
The actual game at the end scared me. It uses the same exact technique I do, and I was sure to be the only one. No one else had the drive to send their entire body into the shot, let alone commit your face to it. AI is definitely taking over.
The 6th frame was actually pretty impressive, because the AI aimed for the exact right spot it needed to in order to make the spare. There just wasn’t enough speed and power to knock them down, but it is aiming and strategizing like a bowler.
Dunno,, I think the programing of the pins may have been off a bit or something. As you said, that ball was in the spot needed to make the spare. I typically aim to the other side of the front pin in that situation to get more direct pin movement backwards to get the sleeper. But the shot the AI took should have taken down more than the front pin.
The Bowler knows where his ball is is at all times. He knows this because he knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the ball from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is.
But a ball with spin on a complex axis (not just one of the X, Y, or Z axes) will follow a nonlinear path, as the spin axis itself is re-oriented by its friction with the floor. There would need to be some sort of polynomial algebra involved to solve for this differential, as there are a lot more than two variables (matrices, consisting of movement vector, gravity vector, spin, and floor-contact friction, in this case)
That's not how engineering works! You keep trying until you run out of money, then ask for more. Sell exclusive merchandise to your fanbase for a quick boost of revenue. Launch one of your products into space for free direct promotion using your actual products. Have a plan and be prepared to change it, often.
A reminder that computers are stupid, and we expect a human brain to be able to overcome challenges an AI consistently fails at. Example: throwing a ball without committing ones face to the floor in holy matrimony.
cant wait for it to throw it backwards and make the miis do a funny spin edit: stop telling me to watch the end i have already done it edit 2: u people r driving me insane I. HAVE. ALREADY. WATCHED. THE. END! edit 3: y'all aren't funny edit 4: can i lock a comment from replies?
@@b2stud I think it's just a joke about the mistakes the AI makes while learning. And I'm waiting for the AI to throw the ball up or down, or kick it out of the world.
@@b2stud First I have to assume that you're joking, and that you mention Wii Sports in the video. But incase you really are serious, Wii Sports is a franchise of games originating on the Wii (A Nintendo game console) that include the original Wii Sports, Wii Sport Resort, (which I think the original comment is referencing), and Nintnedo Switch Sports, which I haven't played and I don't know if it features the Mii characters that do the spinning in the bowling games. Now I just have to hope I haven't made a fool out my self but who cares anyways. Can't wait to see some bowling shenanigans.
the whole 9 frames has look & feel of wii, from the semi-transparent bowler to the other players sitting, the visuals on strike/spare, the pin inset in the corner...
I can absolutely vouch for the "Jazz Hands" technique. After many decades of bowling, I've learned that the "Jazz Hands" technique absolutely works like a charm. And judging from the way my friends bowl, the "flopping around the floor while flinging the ball up into the air in random directions" totally works too. Although as a spectator, you really have to learn to dodge behind the furniture and other obstacles pretty quick. Go bowling with my friends a few times, and you'll become a pro "dive behind stuff dodger". The driving range is another wonderful place where the jazz hands and diving out of the way techniques also work.
Thank you for these videos, for real man. I've been watching your stuff for months and they've indirectly inspired me to go to college for software engineering. I'll come back to this video in a few years once I finish up and let you know how it went.
I think "definitely not forgetting" to include a reward system for knocking over the pins from the beginning should have warranted a fresh rewrite of the entire program. Having that in place from the first throw could have had an exponetial effect on the AI's ability to hit the pins much earlier on. Granted, it may have resulted in the AI throwing the bowling ball like a bullet, but who hasn't attempted that?
There are different league sanctions, but most require you to hold the ball a certain way and throw underhanded. You can even be disqualified for not putting your thumb in the hole. Of course, if you are open bowling, you can do anything you want short of violating the house rules.
@@nomisukeindustries As has been stated, most major bowling organizations don't restrict how you throw. If someone was extremely good at throwing overhand, they'd be allowed to do it.
It's interesting seeing how it reacts to the pins. When it had a 7-10 split, it went right down the middle. But both times when it had only 1 pin up it tried to ride the right edge, even though one time the pin was on the left. I'm assuming it learned that sometimes it can pick up spares if it does that, but it's not aware of pin position so it's just going for what worked a different time. Which means that it will factor its strategy based on pins remaining, at least.
I was thinking more that the product of the rewards lead the doll to the behavior "aim straight, since spin is sufficient for deviations from a straight path". The doll is right-handed, so 10 pin? No problem. 7 pin? Spin it, but do not release the ball at an angle, because that virtually always leads to a bad outcome.
As someone who writes similar code for my games, I have to say that this video is brilliant. It's hilarious, but also does a good job of explaning the concepts of rewards, penalties and weights.
Suggestion: AI learns to play Yomi Hustle. Yomi Hustle is a turn-based fighting game where each player is given anywhere between a few seconds to a half hour to plan out the action of their fighter down to the frame-data. The goal is to make AI that master Yomi hustle, analyze the game balance (overall win/loss ratio against all characters and best/worst win/loss ratio between them), then select a character mod and run it through to see if it fits that balance.
Good Idea, but 1. b2 doesnt own the rights to YOMIH 2. YOMIH is very complicated, even compared to stuff like this, as it has many, many inputs and outputs that would need to be considered 3. b2 would have to program his own version of YOMIH in order to give the AI precise inputs such as the velocity and position of the players, and it would be very difficult to make a good recreation as b2 wouldnt know the numbers to throw in for YOMIHs engine 4. The computing power required for this would also be insane, as the AI would have to predict every single scenario and weigh the likelyhood of whats gonna happen, and somehow decide as to which move would be the best, which would also require looking even more moves in the future in order to correctly see if the enemy would be able to retaliate easily, or if the AI would be able to combo them. YOMIH does seem like a good game to train an AI for, but even after hundreds of hours being put into making it, i doubt the AI would even be able to pull off basic combos, and thats not very good material for a video.
Toribash seems like a good candidate: * f2p for the past 16 years, * Input interface is 20 joints with 4 possible states each. Not a small space, but simple to handle and discreet, * Observation space is continuous - with position, angle (and speed) of all body parts, * Leans into the theme of this and the previous video - 3d ragdoll physics
@@Snowowowie 1. Didn't realize that was a requirement. Why didn't that apply for all the other established games he's done videos for? Monopoly in the creative commons? 2. I have seen AI take on the likes Starcraft and Pokémon, complication is only a matter of his system's capacity. 3. I know that is not a strict requirement by virtue of the other games he and others have tested. It is a requirement for lesser systems, but it's far from an absolute. Even if it was though the good thing about it being a turn-based fighting game is that most of the values are evident up-front, and we've already seen him crack into games like Rocket League for specifics. 4. That is the same problem for every turn-based game from as early as chess. The goal is not to plan out every move, it is to select the most optimal within a range for the immediate situation. As for how it judges that, that's were the machine "learning" comes in, along with some basic conditions to define value. Throw moves at the wall and see what sticks. As for the computing to understand the moves, Yomi Hustle already has a built-in system to literally let you check every single move down to its frame data against every single one of the opponent's, might ease up on the burden. Yomi Hustle is only complicated in a vacuum. As long as it has the capacity comparable to that which learns the most traditional of board games, after hundreds of hours it would probably look just like them: practically impossible for humans to beat without handicaps.
It's amazing how AI can really help improve and refine things in ways we might never have thought of before. I am looking forward to trying this technique the next time I go bowling! The other bowlers won't stand a chance.
What about a movie like Real Steel but instead of boxing it's robot bowling and they have to bring a geriatric bowler out of retirement to shadow bowl with his junkyard bot