If you wanted to actually try to make something usable and repeatable for this you should probably create a custom firmware for the printer's controller. As for the changed in speed you perceived I would guess that that stems from the 3D printer's acceleration settings - you could probably crank them, especially if you remove some weight (ie remove hotbed assembly, replace bed with cardboard).
Cool project dude!! The computer vision thing would be fun to build but it’ll cost a high speed camera and an algorithm to get the centroid of the circles. For the dragging part(I don’t play osu), you’ll need some other method of detection. To make the timing accurate it is required to make a new machine using nema17 + arduino and code the algorithm for its movement. With this new setup, it should be possible to do taps also hehe. But it will take a hell lot of time, I really enjoyed this video, pls make more of this!
I really like this project and I think it is a really fun way to mess with a 3d printer that isn't just extruding plastic! Great work! I do have some insight on your timing issue though. The speed in the gcode only defines the maximum speed during that move. Your printer takes that move command and interpolates it with acceleration and jerk. Stepper motors can't instantly be at top speed, otherwise they would miss steps or skip teeth on the belt so the processor in your 3d printer decides how fast to accelerate it. This is why it seemed inconsistent as well. Any short move it never reached the max speed that you had your python generate in the gcode file, it would start accelerating, and before it got to that speed, it would have to start decelerating. Any longer move, it would still have to accelerate and decelerate, but there would be a small window where it was moving at that speed set in the gcode so it was closer to the actual timing. If you do decide to come back to this project (which I dont blame you if you dont) read up on how the acceleration and jerk settings work on the printer. There are gcode commands to change these on the fly which you might need to do for some shorter moves, but for longer moves, some extra math to figure out the extra time acceleration adds should be the source of your issue. There are some moves and speeds that just might be impossible for the printer to hit. it was never designed to do something like this :P but its always fun to learn new things and experiment
I guess the real problem with the timing issues is that the prusa board doesn't process commands fast enough for this kind of application and that you would need to figure out what you max acceleration is and set that in the firmware. With a more powerful board like a duet you could probably do this consistently. I have a duet and I am pretty inclined to try this now
Could you print with this coding and see what comes out? To be a 3D object I guess that it would have to print a few dots connected with a line to form a perimeter then move slightly up to build a new layer and repeat. I don't even know if it's possible but it would be so cool to see osu! dots as an object
Idea: maybe you could measure the inertia (idk if there's a sensor that could do that at the required refresh rate) and pass the data to an AI that would try to use the timings given in the save file to learn the timings of your specific printer.
5:57 Never tested on a 3D printer but on a CNC you can use G93 (inverse time feed) to just specify how long you want the move to take. Standard is G94 as will be active in your 3D printer which means feed per minute. If this worked it would have saved you a lot of time :)
Marlin software running on these does not support these G-code commands. As far as I've seen the planner there is no inverse time at all. Typical hardware Marlin is designed for has 8KB RAM, and planner gets only a couple hundred bytes, as there is a lot of other concurrent functionality as well.
If only I have a drawing tablet, I can probably use cv2 instead and detect circles and click on the center. As for the 3d printer movement, rather than use gcode, use the steppers themselves and move it directly using Arduino with stepper controllers to control the stepper motor. Feel free to go wild this way
Me, used to CAD software: HES GOING TO EDIT ALL THE GCODE BY HAND?!?! HES MAD!! My old pre-computer engineering teachers: *No, he’s beginning to BELIEVE*
the timing issue is probably made worse since you're combining a sequence of moves; if there's a tiny error on how much time each movement takes then the total error of a sequence of thousands of moves becomes massive, and as soon as the cursor is out of sync with where it's meant to be it'll just spiral out of control and only return to the correct time by random chance if at all.
it's why timing-sensitive programs like osu will likely determine rhythm relative to a fixed point in time rather than just adding up the deltas every frame
Here's a great idea, what if you recoded the printer itself to handle timing? Then, the beatmap reader could be recoded as an injection, (or be kept manually selecting beatmap) and it could play from there. And, you can use emulated key presses so it could play it perfectly without unranked, basically giving you an physical undetectable (by anti cheat, if osu has one, idk) hack. Great idea, 10/10, I might even do it
One other thing that might have thrown you off is the acceleration of the printer... it cannot just go full throttle without accelerating for a bit. Thus I'd recommend using a bowden style printer for lower weight on the hotend and higher acceleration settings...
I'm new and I subbed him today. But only by seeing the kind of emoji he used and the way he used "xd" and the fact that he plays osu! proved it to me that he is a discord user.
In order for it to work better you would need to use a different 3d printer firmware, the stock prusa uses marlin, klipper comes to mind has being "faster" and maybe more time accurate. But like you said a 3d printer firmware isn't designed to be time accurate (each move is actually modified by the firmware that is applying speed limitations as well as movement smoothing and more), so the best thing to do would be to make a custom firmware (a much more simple one than a full fledged 3d printer firmware).
I really wish you were able to do the same thing with something as crazy as a router or a machining mill, considering those actually take the feed rate a lot more seriously. If I had a Haas mill of my own, I would certainly love to give this a whirl for ya.
I'm pretty sure the speed issues you have are related to the printer's acceleration settings, it takes some time for stepper motors to accelerate/decelerate which could explain inconsistencies with travel speed.
The problem wit 3d printer was that the printer wasn't actually moving at your feedrate instantly: printing head has mass, so firmware accelerates and decelerates that mass smoothly, because if it wasn't - motors would skip steps
The reason why it's not consistently passing the map might be because of the "as fast as possible" instructions that can take more or less time than expected. You should have tested the fastest your printer could move the pointer, use this value + a certain margin as speed for each of your instructions and then add delays after the instruction to wait for the circle click. This should also solve the problem of needing to fine-tune your delays manually since you know the time it took for the previous instruction to operate and do basic math to get the rest of the wait needed.
"he just has a good gaming 3d printer"
Underrated comment
I am gonna use this everywhere now :)
nonono, it's a good "GAMING 3D printer "
See several years later and this jokes will be used everywhere
Good gaming 3d printer
Alternate title: How to cheat without actually cheating.
Cheat doesnt feel like cheating when u make ur own cheats,it feel like outsmart
He just has a really good 3d printer
but still actually cheating
Nah,he just has a gaming 3d printer
pro gamer move
Other tablet reviews: Ye that's the tablet I think it's pretty good
Funorange: *Hol up lemme get my 3d printer so I can review this shit*
It actually would be a good way to benchmark tablets IMO. 🤔
Good way to see the accuracy of smol areas
Damn it how do you always get a top comment?
I see you everywhere.
well he is a mouse player soo
- what is your osu play style?
- 3D printer
baguette
he is now becoming the michael reeves of the osu community
But not on crack!
Maybe...
Yeah sorry you can't compare anyone to Michael reeves
@@insidiosity ??
He just need more tasers
@@Benni259 i mean this guy is alright but he's no michael
Next video, How i got banned from osu
This is McOsu
@Ao _ mc osu is a practice client
Also with rx mod
@@katoumi5855 but tgat doesn't change anything and it'd not actually osu! It's mc osu
@@TDLSnail rx mod has a 0x score multiplier
The most genius part of this is that he didn't even bothered to make a mount for the pen, he just taped it.
hey, if it works...
When you're both a digital artist and an osu player:
"Time to get serious."
Why not both am i right?
and can program
12:47 So that's why the accuracy was changing
Prolly merged multiple replays together to make it look like an fc
But still really impressive
11:04 "this does put a smile on my face."
got an ad
@@ohparxs7601 f
@@honeybugart got a deliveroo ad lol
I don't know what ad's are.
*this post was made by youtube vanced gang*
@@si.ni.a0795 ma mamᕦ( ͡͡~͜ʖ ͡° )ᕤ
peppy: *well.. well.. looks what we have here...*
Fun Orange has been BANNED
KLEE
hi
@@r3v0kew hi
@@DoraSPS didn't you know you watch osu std content
Imagine being somebody who play osu for days just to lose to a 3d printer
days?
Please take back your imagination😂
6:35 *when you play osu for the first time*
three days later 11:04
@@m.farrelfahrezi4301 hah you wish
When you touch grass and woman too much
Do you maybe know what that song is
@@timonbubnic322 I'd also like to know, looks like a fun map
6:36 how the osu tutorial feels like for beginners
This might just be the highest effort a most interesting osu video ive seen. Nice.
"Hes gotta be hacking!!!!!!:!?$$:!!!$"
"Nah bro, he just has a better 3D printer"
The auto mod is now considered an actual player now lmao
As mark robber would say: " I am bad at osu, but I am good at programming, so I am good at osu
Did I just watch an Osu! Improvement video by a 3D Printer
"he's not hacking he just has a good 3d printer"
Alternate title : 3d printer tries to copy FunOrange's aim
5:57 Yes, the 'pythagagreamom theorem' my favourite theorem from math class
Imagine being sponsored by a digimon
It's pokemon smh
@@reiw02 gaomon is a thing in Digimon not pokemon
@@kraotodo1671 is that an r/wooosh moment i smell
@@justamicrowave5297 Fucking redditor
@@tsubakiwelfare9120 fucking human
If you wanted to actually try to make something usable and repeatable for this you should probably create a custom firmware for the printer's controller.
As for the changed in speed you perceived I would guess that that stems from the 3D printer's acceleration settings - you could probably crank them, especially if you remove some weight (ie remove hotbed assembly, replace bed with cardboard).
6:31 i'm literally wheezing that's literally me when i try to play a 7* map LMAO 💀💀💀💀💀💀
What's your rank?
Do you know what that song is maybe
@@chilly1661 im a 6 digit player even although i still do my best :(
That’s cool and all but let’s take it to the next level and use a plasma CNC cutter
This is the First step to create a CyborgCookieze. yes u’re doing it right bro
the machinations of your mind is an enigma
this has been on my mind and finally someone did it
its just shitty auto and this shit has better aim then me
This is gonna blow up soon i can feel it
the 3d printer can handle a lot of movement, so it won't blow up any time soon even if he puts it through difficult levels
@@101shush ...
When a 3D printer is better than you at osu! moment
Cool project dude!!
The computer vision thing would be fun to build but it’ll cost a high speed camera and an algorithm to get the centroid of the circles. For the dragging part(I don’t play osu), you’ll need some other method of detection. To make the timing accurate it is required to make a new machine using nema17 + arduino and code the algorithm for its movement. With this new setup, it should be possible to do taps also hehe.
But it will take a hell lot of time, I really enjoyed this video, pls make more of this!
11:04 the printer godmod
I really like this project and I think it is a really fun way to mess with a 3d printer that isn't just extruding plastic! Great work!
I do have some insight on your timing issue though. The speed in the gcode only defines the maximum speed during that move. Your printer takes that move command and interpolates it with acceleration and jerk. Stepper motors can't instantly be at top speed, otherwise they would miss steps or skip teeth on the belt so the processor in your 3d printer decides how fast to accelerate it. This is why it seemed inconsistent as well. Any short move it never reached the max speed that you had your python generate in the gcode file, it would start accelerating, and before it got to that speed, it would have to start decelerating. Any longer move, it would still have to accelerate and decelerate, but there would be a small window where it was moving at that speed set in the gcode so it was closer to the actual timing.
If you do decide to come back to this project (which I dont blame you if you dont) read up on how the acceleration and jerk settings work on the printer. There are gcode commands to change these on the fly which you might need to do for some shorter moves, but for longer moves, some extra math to figure out the extra time acceleration adds should be the source of your issue.
There are some moves and speeds that just might be impossible for the printer to hit. it was never designed to do something like this :P but its always fun to learn new things and experiment
imagine a livestream with the handcam showing a 3d printer playing osu lmao
I guess the real problem with the timing issues is that the prusa board doesn't process commands fast enough for this kind of application and that you would need to figure out what you max acceleration is and set that in the firmware. With a more powerful board like a duet you could probably do this consistently. I have a duet and I am pretty inclined to try this now
FunOrange : I teach my 3d printer how to play osu!
PPY : wait that illegal!
shoulda called it "pp printer"
6:35 when the 7 digit 3d printer tries to play 10* maps for the first time.
Peppy wants to know your location
Could you print with this coding and see what comes out? To be a 3D object I guess that it would have to print a few dots connected with a line to form a perimeter then move slightly up to build a new layer and repeat. I don't even know if it's possible but it would be so cool to see osu! dots as an object
imagine the nerves the 3d printer felt on those jumps
You should edit on Goodbye Moonmen map, its gonna be satisfying af
I updated the page at the exact second you went from 99k subs to 100k
Congrats man!
8:34 i started laughing histerically when i saw this, like, HOW THE HECK?!?!?!?!
3DPRINT ON OSU / ABSOLUTE GODMODE ON JUMP MAP?!? //THE FIRST 2000 PP (PERFORMANCE POINTS) PLAY ON OSU ///NEW TOP PLAYER | _Circle People_
you made this way easy to understand. I felt like i knew what you were saying even though i don't do coding things.
the dedication tho....
now, officially, a printer can play osu better than me
When the 3D printer has smoother aim than you…
machines are being scary now
you're a genius dude!
I can't believe someone being so innovative and creative enough to do something like this
727
727
727
3D printer: "What is this big Zigzag project you are making?"
Peppy: "you are a hacker!"
FunOrange with a printer: "Am i a joke to you?"
Hurts to say that a 3d printer is better than me at a circle clicking game
Idea: maybe you could measure the inertia (idk if there's a sensor that could do that at the required refresh rate) and pass the data to an AI that would try to use the timings given in the save file to learn the timings of your specific printer.
of course more manually submitted data would decrease learning time significantly
5:01"so after learning computer engineering for 4 years I really didn't want to learn anymore"
~FunOrange
People: what is your playstyle?
Fun orange: 3d printer
5:57
Never tested on a 3D printer but on a CNC you can use G93 (inverse time feed) to just specify how long you want the move to take.
Standard is G94 as will be active in your 3D printer which means feed per minute.
If this worked it would have saved you a lot of time :)
Marlin software running on these does not support these G-code commands. As far as I've seen the planner there is no inverse time at all. Typical hardware Marlin is designed for has 8KB RAM, and planner gets only a couple hundred bytes, as there is a lot of other concurrent functionality as well.
@@SianaGearz that’s a shame, I just figured that the printers run on gcode so would support all ISO g codes
Part of the slowness of the printer could be the default acceleration speed in firmware? Liked and subbed for the good effort!
If only I have a drawing tablet, I can probably use cv2 instead and detect circles and click on the center.
As for the 3d printer movement, rather than use gcode, use the steppers themselves and move it directly using Arduino with stepper controllers to control the stepper motor. Feel free to go wild this way
Me, used to CAD software:
HES GOING TO EDIT ALL THE GCODE BY HAND?!?! HES MAD!!
My old pre-computer engineering teachers:
*No, he’s beginning to BELIEVE*
They said a 3d printer can't play but look at this
People clicking on the video expecting the printer to break out dancing: .....
Reality: awkward middle school dance
I'm now gonna use "my 3d printer can play better then you" as a insult when my best friend mocks my slow tapping speed
the timing issue is probably made worse since you're combining a sequence of moves; if there's a tiny error on how much time each movement takes then the total error of a sequence of thousands of moves becomes massive, and as soon as the cursor is out of sync with where it's meant to be it'll just spiral out of control and only return to the correct time by random chance if at all.
it's why timing-sensitive programs like osu will likely determine rhythm relative to a fixed point in time rather than just adding up the deltas every frame
That machine plays better than me :(
amazing work!
When you're both a digital 3d artist and an osu player:
"Time to get serious." >:)
9:32 the amount of second hand pain I felt after hearing that omg I cannot believe you actually did that
you really took this video to heart huh ua-cam.com/video/KxGRhd_iWuE/v-deo.html
Here's a great idea, what if you recoded the printer itself to handle timing? Then, the beatmap reader could be recoded as an injection, (or be kept manually selecting beatmap) and it could play from there. And, you can use emulated key presses so it could play it perfectly without unranked, basically giving you an physical undetectable (by anti cheat, if osu has one, idk) hack. Great idea, 10/10, I might even do it
Imagine someone seeing the printer spazzing out like that but not the screen and they just go like "dafuq"
One other thing that might have thrown you off is the acceleration of the printer... it cannot just go full throttle without accelerating for a bit. Thus I'd recommend using a bowden style printer for lower weight on the hotend and higher acceleration settings...
I swear theres a michael reeves of every community at this point, fundy for minecraft, and you for osu
I'm new and I subbed him today.
But only by seeing the kind of emoji he used and the way he used "xd" and the fact that he plays osu! proved it to me that he is a discord user.
In order for it to work better you would need to use a different 3d printer firmware, the stock prusa uses marlin, klipper comes to mind has being "faster" and maybe more time accurate.
But like you said a 3d printer firmware isn't designed to be time accurate (each move is actually modified by the firmware that is applying speed limitations as well as movement smoothing and more), so the best thing to do would be to make a custom firmware (a much more simple one than a full fledged 3d printer firmware).
I really wish you were able to do the same thing with something as crazy as a router or a machining mill, considering those actually take the feed rate a lot more seriously. If I had a Haas mill of my own, I would certainly love to give this a whirl for ya.
I'm pretty sure the speed issues you have are related to the printer's acceleration settings, it takes some time for stepper motors to accelerate/decelerate which could explain inconsistencies with travel speed.
Bro I got an XP-Pen Ad on this video, when one of the first things you do is insult XP-Pen lol
The 3D printer is practicing for their captcha test to not be a robot
I never thinked I would have seen the pythagoras theorem out of school
At this point this is just a more sophisticated tas bot
The problem wit 3d printer was that the printer wasn't actually moving at your feedrate instantly: printing head has mass, so firmware accelerates and decelerates that mass smoothly, because if it wasn't - motors would skip steps
Hire this man nasa
now I want the printer to print a 3D model of this song using this instruction
Coming back for the second time seeing this, someone needs to make a machine that LITERALLY plays osu! for you.
5:00 no one:. Literally the most part of programers after university
A 3d printer almost sses a fool moon night
3d printer farming technique.
Mans so commit to the mouse he gave the printer his tablet to play osu
Goverment seeing data from his 3D printer: what the hell is this object he trying to construct
The reason why it's not consistently passing the map might be because of the "as fast as possible" instructions that can take more or less time than expected. You should have tested the fastest your printer could move the pointer, use this value + a certain margin as speed for each of your instructions and then add delays after the instruction to wait for the circle click. This should also solve the problem of needing to fine-tune your delays manually since you know the time it took for the previous instruction to operate and do basic math to get the rest of the wait needed.
Its so sad this only got 300k views this deserves way more.
FunOrange: (playing) THIS GAME SOOOO HARDDDD
3d printer: i'll play for you :) (hacking time)
a 3d printer is better at osu than me
Using the 4 years of education to good work
i cant believe a pirnter 3D play osu better than me
He isnt hacking, he just has a really good 3D printer
When you make the mistake of losing your S620 and get the Xp-Pen
"Fuck"
My manz 3D printer stole his gaming chair
6:35 pro osu player