Programming a 3D Printer to DESTROY Mobile Games

  Рет қаралды 172,824

BK Binary

BK Binary

Күн бұрын

Thanks for making it here! Today I'm showcasing a project wherein I use a 3D printer to destroy the mobile game WordHunt from game pigeon.
This project was tons of fun and I have a few more ideas for projects with the printer that will be equally absurd so I hope you guys are looking forward to it.
Anyways if you read this ily.
Code - github.com/Brendan-Kirtlan/Wo...
No compiled executables will be provided since it's specifically tailored for use on my own machine.
If you want to get in contact join my discord server - / discord
I don't check too often but feel free to message me. Also still have $500 of bounties :)
Music used (in order)
Stevia Sphere - Flying Saucers Are Still A Rumour / 5faecee9gisnhhp28
Spelunky HD OST - Yeti Caves (Eirik Suhrke) open.spotify.com/track/6mQ8nB...
Stevia Sphere - Elevator 9 steviasphere.bandcamp.com/tra...
Stevia Sphere - Plinky steviasphere.bandcamp.com/tra...
Stevia Sphere - Small Cute Machines steviasphere.bandcamp.com/tra...
Jin601 - Magic Pixel / ynegwtygv3qrpj8s6
Artists
Stevia Sphere - steviasphere.bandcamp.com/
Eirik Suhrke - phlogiston.bandcamp.com/
Jin601 - / jin601
Chapters
00:00 - Intro
00:28 - Background
00:56 - Algorithm to find all words
03:30 - Using OCR to get board
04:17 - Coding automatic inputs
06:01 - Programming 3D printer to play
08:35 - First test
12:38 - Montage
14:03 - Outro

Пікірлер: 519
@KolMan2000
@KolMan2000 Ай бұрын
Now have it destroy people with perfectly calculated shots in 8-Ball
@RadioactiveBluePlatypus
@RadioactiveBluePlatypus Ай бұрын
The channel "stuff made here" did this in real life.
@benm12310
@benm12310 Ай бұрын
I wanna see it master the pong game. I swear there’s a randomizer as I can never get accurate shots lol
@freman
@freman Ай бұрын
I'm almost convinced someone already has lol, I've seen people make incredible shots with no aim time
@bedwarsfan69
@bedwarsfan69 Ай бұрын
Yes
@leumasme
@leumasme Ай бұрын
Idea to Improve this: Sort the words to solve not simply by length and alphabetically, but try to sort them so that any word that starts at a certain position follows after one that ends at the same position (or close to it). This would reduce travel time between words and get you closer to getting every word - especially for shorter words, a majority of the time is going to be spent traveling between words and not actually solving them.
@experimenteeer
@experimenteeer Ай бұрын
This was my first thought when seeing the printer in action. A lot of time was wasted traveling from the end on one work to the start of the next. I would still sort by word length and just improve travel time to get the most out of each score bracket.
@Scrogan
@Scrogan Ай бұрын
Pretty sure he can crank up the move speed of that printer, and reduce the Z hop height. Maybe it would require a different stylus. But even my ender 3 can move much faster than this was moving, the vibrations wouldn’t be a problem, probably.
@user-ro2tm3dp8x
@user-ro2tm3dp8x Ай бұрын
won't it also increase the sorting time by a lot?
@BelviGER
@BelviGER Ай бұрын
​@user-ro2tm3dp8x if he switches to literally any other printer brand he can remove all the manual steps of doing stuff on the printer, uploading a gcode file etc via programs like ponterface that can just feed your printer commands live That saves way more time than any reasonable sorting algorithm can take, and suddenly you can do it live. Don't have to solve the whole thing before the first move, just need to solve it quicker than the printer can move
@MattWestwick
@MattWestwick Ай бұрын
Another optimization - use G0 rapids between words :)
@ladyravendale1
@ladyravendale1 Ай бұрын
For the character recognition, since it’s a known set of just 26 images with fixed sizes, I would ditch ocr all together and check against predefined images for what letter it is. If you really want speed, you could probably instead check individual pixels. I can’t imagine it taking more that 10 well chosen pixels to identify any letter, with the limit being 6 since 5 only have 16 combinations.
@taxatogaming
@taxatogaming Ай бұрын
Wouldnt 5 pixels give you 32?
@ladyravendale1
@ladyravendale1 Ай бұрын
@@taxatogaming yep, I can’t count
@experimenteeer
@experimenteeer Ай бұрын
OpenCV matchTemplate?
@dudedotmichael
@dudedotmichael Ай бұрын
This person is 100% correct. Do this. Python's opencv match templating actually works really well for OCRing in this case. Simply make 26 screenshots, one for each letter. Then for each of the 16 squares compare against all 26 and use the one that matches the most. No need to do black and white conversion. Superfast, super accurate, easy to implement. Works well for automation software like sikulix or autohotkey. Btw, if you have a mac Quicktime can easily capture your screen from your phone as well saving you $7.
@TripImmigration
@TripImmigration 28 күн бұрын
True we did something similar on my research. The caveat is the contrast need to be crank to Jesus because if finds a little bit of gray, sayonara your numbers
@MaebhsUrbanity
@MaebhsUrbanity Ай бұрын
the fact that bambu printers don't support just senting GCODE over serial(USB) is wild, but I think there might be an unofficial on-printer octoprint plugin which whould allow you to use their api if you wanted to get it to start files for a future progect.
@superduperbjarne
@superduperbjarne Ай бұрын
I know, bambu printers have some neat features, but with how closed of an ecosystem they have it's a hard no from me
@pepaw
@pepaw Ай бұрын
Agreed. Something to think about cause those mofos are not cheap.
@4nto418
@4nto418 Ай бұрын
Can you not even start the print remotely ?
@Jojo43O9
@Jojo43O9 Ай бұрын
@@4nto418 with the more expensive printers you can
@illcomeupwithanamelatter3632
@illcomeupwithanamelatter3632 Ай бұрын
Idk about sending over USB. But you can use a micro SD card to transfer gcode
@taylor5248
@taylor5248 Ай бұрын
My collage has a big AG section, so the robotics team made a small seed planter that would dig a hole, add a seed, and water it before going to the next spot. The instructor called it “A 3D printer with an identity crisis” when it was watering it thought it was turning on the fan. (It used a printers boards)
@NoorquackerInd
@NoorquackerInd Ай бұрын
To prevent your stylus from destroying your phone, make sure you have a weak part in it that breaks _before_ your phone does. Think about how gas stations have break-away connectors so that driving away with the gas pump still in it doesn't spill gas everywhere and instead breaks apart in a controlled manner. While your print head might still be able to conflict with where your phone is and break it, at least incorrectly mounting the stylus won't screw up your phone
@meateaw
@meateaw Ай бұрын
The reason he is scared I think is less about the stylus; and more about the printer head itself crashing into the phone. I didn't pay attention but did he even remove the printing nozzle? that's a nice sharp metal point to scratch a phone screen.
@superslimanoniem4712
@superslimanoniem4712 3 күн бұрын
​@@meateawbrass is never going to scratch glass. A kot of pressure on that sharp point might end up cracking something though...
@Jacobadia
@Jacobadia Ай бұрын
“What’s printer?” Your friends are funny bro! “
@3v1Bunny
@3v1Bunny Ай бұрын
Bambu Lab A1
@InfiniteCoder01
@InfiniteCoder01 Ай бұрын
*A1 mini
@SullySadface
@SullySadface Ай бұрын
He wasn't asking what the printer was he was quoting the video -_-
@Jacobadia
@Jacobadia Ай бұрын
@@SullySadface haha yea. I’m glad someone understood
@Klannahar
@Klannahar Ай бұрын
If u play with a game and u get this msg about printer, how would u pt it context? printer has nothing to do with a game... U would be confused as well.
@kalebwilkes4705
@kalebwilkes4705 Ай бұрын
A less squishy stylus would probably recognize better at higher speeds
@JFed-9
@JFed-9 25 күн бұрын
The ones that almost look like a soft metal mesh (I assume it’s not metal given that it doesn’t scratch the screen, but that’s the only way I can describe it) seem to slide much easier. Could prevent skipping
@kajatoth9151
@kajatoth9151 Ай бұрын
Idk if you are already doing this but you can try to prefer words that starts with a letter that was a last letter in the previous word, example: cat - ton - new - win ...
@aidenparsons6571
@aidenparsons6571 Ай бұрын
underrated comment
@80lab38
@80lab38 Ай бұрын
the cheaper printers are usually less hassle when it comes to "non-standard tasks", since most of them use off the shelf microcontrollers with open source software.
@otter8899
@otter8899 Ай бұрын
there are some things you can do to improve the movement system just a bit and possibly break 60k points on average: 1. increase the movement speed of the XY axis by appending the F argument to the G0/G1 command (view the marlin docs on G0/G1) 2. decrease the Z hopping height as much as you can or speed it up more, or just start moving as it hops back up (using a smaller stylus could make this easier) and pytesseract sucks because of the font wordhunt uses, maybe you can try a different OCR model?
@BKBinary
@BKBinary Ай бұрын
Solid ideas, I'll have to try those. And yeah I assumed so. I tried 2 other ones but they were much slower than pytesseract. I even tried creating my own model for pytesseract using that font but there weren't many resources on it online so I couldn't figure it out.
@rrrrmrmr
@rrrrmrmr Ай бұрын
It could also probably be sped up by prioritizing words that start with the last letter of the previous word
@K0nomi
@K0nomi Ай бұрын
​@@BKBinarywhy not try using a standard image recognition library? you already made something to crop each letter, so just have a bank of the 26 images and check which each tile is closest to
@nassinger3365
@nassinger3365 Ай бұрын
@@K0nomi yess
@mentallydeficient8088
@mentallydeficient8088 Ай бұрын
@@rrrrmrmr generally minimizing movement between inputting words is a good idea, but im not sure if it would be more efficient after finishing a word to go for next word that starts with the last letter of the previous one, if the next word is a short one (example: builder -> rum) probably it would be more beneficial to move a few spaces to input a more valuable word. tho this all can slow down the g-code generation part, so im not sure if theres even a reason to bother
@vlc-cosplayer
@vlc-cosplayer Ай бұрын
Regarding the janky OCR: I think Tesseract is specifically meant for books, not individual letters. You'd probably have better luck with a simpler library that identifies single characters 👀
@joe-skeen
@joe-skeen Ай бұрын
Also there's only one font and size you need to account for. Should be able to make it more reliable by making a small ML training set, wouldn't even need to make it black and white
@nicholasfinch4087
@nicholasfinch4087 Ай бұрын
I wonder if he could also train some kind of model that can determine the letters too. But considering it's working pretty successfully with his current setup, it's probably fine.
@K0nomi
@K0nomi Ай бұрын
​@@joe-skeenmaking it black and white would make things much easier and computationally faster though
@IbrahimDelil
@IbrahimDelil Ай бұрын
he doesn't need an ocr at all! since he is getting a screenshot (lossless) he can just crop the letters and compare them to an array of all the letters, in base 64 or some shorter hash of it.
@Simplicity4711
@Simplicity4711 Ай бұрын
The letters should be exactly the same bitmap you can easily check for.
@N0p3Mark
@N0p3Mark Ай бұрын
I dig the fact that you always wanted a 3D printer and now that you have one, landed on an A1 Mini. I’ve done my fair share of printer nonsense over the years. I’m certain that with your ingenuity only great things can come from your newfound resource. Great video, thanks for sharing. Cheers
@BKBinary
@BKBinary Ай бұрын
Thanks for the kind words!
@JorbIsMe
@JorbIsMe Ай бұрын
Really creative idea and smartly executed. It's cool to see you expanding your projects more into engineering cause you get to actually unleash them into the real world, and I am happy to have been a small part of this one :). 12:38 is some fire editing 💯
@lynxrbeam8732
@lynxrbeam8732 Ай бұрын
7:45 “using some really basic math-“ Proceeds to show not one single number and the absolute value of Poseidons trident.
@MQWalkman
@MQWalkman Ай бұрын
This is great! Since you asked for improvement ideas you can get styluses with non-squishy tips - kinda like cheap Apple pencils - which may reduce lag
@teamllr3137
@teamllr3137 Ай бұрын
there are libraries to inject instruction to the printer via MQTT else, really nice Project !
@alexismandelias
@alexismandelias Ай бұрын
One more idea for impoving this masterpiece of a comouter science project would be to sort the words in decreasing value order (longest to shortest, or whatever else the game uses), so that the printer starts with these first
@opitir
@opitir Ай бұрын
That's what I was going to say. It improve two things: it minimize the number of times and the total time spent between words, and from what I've seen, it looks like the bigger words give you a better point/letter ratio.
@Hack--rz1io
@Hack--rz1io Ай бұрын
Looking for words with a first letter physically close to the last letter of the previous word could help
@rjdverbeek
@rjdverbeek Ай бұрын
Optimizing for words with less corners. Maybe also having less sharp corner turns will help with keeping up the speed.
@AsiAzzy
@AsiAzzy Ай бұрын
@@rjdverbeek I don't think corners are a problem. You can max the acceleration until steppers start to skip. Then add a slight curve as it won't matter much for the phone, so making some radius moves might help a lot to seriousl limit the max acceleration (to be safely under the skipping steps limit). Crank the speed up to max, let it rip!
@StolenBlock
@StolenBlock Ай бұрын
​@@AsiAzzy Yes, that's genius. And have it also cut corners for a bigger radius. Would be interesting if there's a speed in the steppers where they're having an torque cutout.
@maxv08
@maxv08 3 күн бұрын
this is amazing! how it doesn’t have 1mil+ views I don’t know. as someone who knows nothing about coding it’s mind-blowing to me that you can do this. props 🙌🏻
@4nto418
@4nto418 Ай бұрын
For the OCR thing, since the letters are identical all the time, you could go with taking reference images of the letters, comparing them to the images you have in the current game and whichever image has the highest % of similarity (should be around 99-100%...) is the correct one. You don't even have to do any processing beyond cropping.
@experimenteeer
@experimenteeer Ай бұрын
Yep. OpenCV matchTemplate is the algo to use for this.
@Xeoncross
@Xeoncross Ай бұрын
Great video, you walked through the whole process which was fantastic. Short and concise. I'll be checking out your other videos.
@jaygriffin6963
@jaygriffin6963 Ай бұрын
Great project! I also had the unsatiable desire to destroy my friends in word hunt. It was fun seeing someone else approach the problem (domination in silly word game) and your solution was objectively better (in my defense i was a junior in highschool) I could also never figure how to actually make it input on the phone (although i HAD thought about robot stylus i just couldnt rationalize it) so it was really fun seeing you succeed! thanks for sharing
@suleymantolgaacar5089
@suleymantolgaacar5089 Ай бұрын
Cool project, and the editing was great. Keep them coming man :)
@ArchistYT
@ArchistYT 9 күн бұрын
BRO - you're doing what I've been daydreaming about for a couple years!! I just have no clue how to script and create codes for something like this, but you've seriously inspired me to try this myself! It would be sick to collaborate with someone who knows how to do stuff like this and learn from ya :D
@critical_always
@critical_always Ай бұрын
The lesson I hope you learned from this. Don't listen to KZfaq hype and always go open source... Open source printers can be controlled directly saving the need to waste time uploading the solution. Effectively turning the printer into a real time robot. That opens the door to solve all kinds of games. I don't play games but fruit ninja springs to mind.
@thewolfin
@thewolfin 18 күн бұрын
Thank you for the great video and props for taking the time to put in music credits
@kaydabalab
@kaydabalab 26 күн бұрын
dude! this is amazing! id love to see another video of the updated ideas you have
@WilsonBot
@WilsonBot Ай бұрын
Made a project like this minus the automatic input for the SpellCast word game on Discord, love how far you took the idea. Tries really come in clutch for this application.
@ExtemporaneousnessOne
@ExtemporaneousnessOne Ай бұрын
Yo this wild seriously impressive :O I didn't even realize you could use a 3d printer like that
@user-wo7rl4nm7w
@user-wo7rl4nm7w Ай бұрын
The 3d printer itself isn't doing much, bambu labs printers do have resonance compensation, cloud printing, failure detection, and flow rate calibrations, that are processed by the printer itself, but otherwise, the print settings, and everything else is baked into the gcode
@hi-its-me22
@hi-its-me22 Ай бұрын
Improvement idea to maximize score with current setup. Reverse sort your results list so it starts by playing the largest/longest words first and works its way down to the 2-3-4 letter words. Great work loved this project. First time watcher but you’ve got one new subscriber here. :)
@Xealous
@Xealous Ай бұрын
I've had similar problems with tesseract, my solution was just to have a bunch of reference Pngs (one for each letter) and then just count how many pixels "match" for each one. since the font/backgrounds dont change this is very accurate. You can still apply image cleanup before as long as your reference images are close to the cleaned up images.
@BKBinary
@BKBinary Ай бұрын
I was thinking of doing this same thing! Thanks for letting me know it works!
@SlowCuberThirstix
@SlowCuberThirstix Ай бұрын
Really nice video, that I stumbled randomly on. Good luck on your KZfaq adventure :)
@theorangebaron1595
@theorangebaron1595 Ай бұрын
Haha this is great! Loved the video and the iteration process of your code and design. I wonder if you can increase the rapid travel move for the printer. This would allow it to retract faster and make travel moves faster. Some of the corexy motion systems would have insane travel speeds. The stylus would be a blur from moving so fast, and you could probably get a higher score. Sometimes when you just give the machine coordinates it moves at the “rapid” speed and this can be changed in the machine firmware.
@brittonstudios
@brittonstudios Ай бұрын
You can probably up the speed and acceleration in the gcode to move faster. Also, could have the solver start the next word from the last letter of the previous word to waste less time moving. Nice work!
@brittonstudios
@brittonstudios Ай бұрын
Well, added that before the end of the video, still think the second part about stacking the words to move less works… could also test to see how far you have to go to register for the outer words so you don’t have to go all the way to the center of them.
@kyleallred984
@kyleallred984 Ай бұрын
If you can get a felt tip styles for better accuracy and less resistance. Get a diy driver board for the motors and use octoprint for more automatic control. Possibly a camera, or just a simple timer, on the print head to detect a changed screen and stop the print
@Ishsa
@Ishsa Ай бұрын
If you do a little Post-Processing on the word list you generate, you can minimize your total path length and time spent not touching the phone, which will get you a lot more complete games. Also, it won't be a big optimization, but aiming for the center of each square is further than you necessarily need, so allowing the bot to cut some corners will save a couple precious hundredths of a second. I couldn't tell exactly how you're generating your trie or searching it, but my guess is there are some really fun encoding tricks that would save a lot of time as well. Matt Parker's video about how his viewers improved the speed of his code by like 22 million percent came to mind since this is also a word tree search problem.
@ThePrintHouse
@ThePrintHouse Ай бұрын
Im confused how the 1 single gcode file can process more than a single word on the screen. After each word is selected new letters "fall into place" and a new gcode file would need to be created, correct??
@Vazic-.-
@Vazic-.- 26 күн бұрын
“I can use it as a tax write off” I hope you know that doesn’t mean they pay for your 3D printer, it’s just without the added sales tax…
@hulio3994
@hulio3994 Ай бұрын
Things I think to improve it: Remove weight from moving parts Arrange the word order so that words starting with the letter the stylus is currently on are the next to be written. You can then also code an algorithm that calculates the correct word order to minimize the distance traveled and achieve the highest possible score.
@mylittleparody2277
@mylittleparody2277 Ай бұрын
Nice work! To speed up things: - Speed up letter recognition. Maybe just grab all the letters and compare each one. Even if it take the same amount of time(it wont) you will be way more reliable. - Try to find a way to inject the gcode directly. I can't believe such a pricey printer don't have a way to gobble up streamed gcode... - Change your paths. instead of doing (0,0,0) -> (0,0,10) -> (2,3,10) -> (2,3,0) , do (0,0,0) -> (1,1.5,10) -> (2,3,0) (it would make a triangle hop instead of a square one) - Also, use G0 if you didn't already, it is supposed (even if not always correctly coded) to be faster by don't guarantying using straight lines. - As other said, if you have done all of that, maybe try reorganizing the words. I would insert short ones to link the big ones at the start. It won't be that easy to code tho. Thank you for this fun video!
@braddofner
@braddofner Ай бұрын
I am certain you could get your printer to start the files automatically. I use Orca Slicer, which is open source I think, and it communicates with my P1S over my LAN no problems. Great project. I enjoyed coming on this journey with you
@lucasperies6952
@lucasperies6952 Ай бұрын
No way, I commented on this on Reddit not too long ago, and now the algorithm has brought me to the video. Awesome man!
@BKBinary
@BKBinary Ай бұрын
That's so crazy haha I didn't expect anyone from reddit finding this video
@lucasperies6952
@lucasperies6952 Ай бұрын
@@BKBinary are you sweaty grun.... ?
@endgame4883
@endgame4883 22 күн бұрын
one simple tip that could marginally improve scores, you can make the printer take a shorter path by making it go to the edges of the squares instead of the middle
@MrMausao
@MrMausao Ай бұрын
It seems like from the video that it is possible that the word number 0 ends in a corner and the word number 1 starts on the opposite corner. It would be nice to also sort the words for the smallest distance of the previous one ending. This could be tricky because the best word after one might be so small that it's best to do another one that is further away.
@BKBinary
@BKBinary Ай бұрын
I was thinking of doing this but still keeping them sorted by length. So I would minimize travel time in each word length but still do all the longest words first just in a much more efficient order.
@aze4308
@aze4308 Ай бұрын
this is really cool!
@benromarowski9235
@benromarowski9235 Ай бұрын
this was awesome! do all boards given by the game yield the same number of points? I see you solve the longer words first, but maybe you could make the program optimize the score by including the time that it takes to make a given word.
@RainShinotsu
@RainShinotsu Ай бұрын
Interesting video! For sending the gcode, maybe you could have tried another slicing software? I use Cura for my prints, but I might try Orca. One of those should support both arbitrary gcode and network printing, otherwise I'd be very surprised lmao. But idk, seems like even what you have so far is pretty efficient, so if it ain't broke…
@maxb.5905
@maxb.5905 Ай бұрын
dude thats such a cool project, how do you not have more views/subs?
@danielsalyi7194
@danielsalyi7194 Ай бұрын
Great project, very interesting hiccups along the way, I thought solving the puzzle was gonna be the hardest
@zdrux
@zdrux Ай бұрын
Came for the idea Stayed for the prolapse and turdions
@FunnyIvri
@FunnyIvri Ай бұрын
Instead of ocr i think just hard coding the position of each letter then then just compare it to the font directly will completely break it if you wanted to use a diffrent verison of word hunt with a different font, but would be very fast and simple
@markokorevec3198
@markokorevec3198 Ай бұрын
As for the letters, split them in separate images and then run OCR, it will most likely be 100% as with the current setup it tries to connect before/after letters into something more meaningful than just A or F or X.
@natotj333
@natotj333 Ай бұрын
Reeeeealy nice Idea and implementation!
@fabcstlls
@fabcstlls Ай бұрын
If someone beat me that HARD in WordHunt I'll get traumatized
@DanteEhome
@DanteEhome 6 күн бұрын
Honestly, it's the coolest thing I have seen in a while.
@magnuzzs6186
@magnuzzs6186 29 күн бұрын
Amazing! I got two questions: do you solve the longest words first? Second: do you solve words that are the closest to the end of the last word rather than words further away? Maybe these are some changes that could even improve the score. Great work!
@larryhannon49
@larryhannon49 Ай бұрын
This has to be the best video on this platform damn
@ikocheratcr
@ikocheratcr Ай бұрын
Interesting. Ideaa: * use a camera to capture screen, and make the whole thing stand alone to play one game after another. * for OCR maybe a small neuronal network trained to solve the 26 char images, very super specific, low resolution will cut it. ** if fully automated: are the buttons to start etc always on the same locations? * make it that you just put the phone on the bed, with app load to start the runs. yes any orientation :) Show the full "AI" Also, I get a clear message from this video: do not buy bambu printer due to proprietary closed interface, that sucks.
@Ernzt8
@Ernzt8 Ай бұрын
What are friends for if you can't totally destroy them 😆 Great project!
@Okuhno
@Okuhno Ай бұрын
You should try upping acceleration >:) Also if you ever want a better 3d printer consider something running klipper (voron, annex k3, custom built) :P
@danny3793
@danny3793 22 күн бұрын
Also - I think a way to maximize your potential max score would be to organize your words based on the position of the last letter of the previous word so that the move doesn’t need to be across the screen to start the next word, obviously this only works for a certain period of time depending upon the letters you get and the words you can make, but it would be a great way to boost through the majority of your dictionary really fast I think.
@xanderplayz3446
@xanderplayz3446 Ай бұрын
Nice work, Brendan! Just a quick tip: Maybe import the other files instead of calling them via subprocess.
@Krcma96
@Krcma96 Ай бұрын
I don't know it the bamboo labs printer have this option but you could connect the printer to the PC over USB, connect to the serial port of the printer from the python script and send the gcode commands that way. Really cool video and an interesting idea for a project. I might try doing something else then printing with my 3d printer now after this 😄
@frollard
@frollard Ай бұрын
To limit acceleration issues, consider using arc gcode commands. If you draw a pseudo bezier through the words it will get rid of most of the abrupt angle changes. Like you said already sorting the list to word-centipede chain the entries you could save a bit of time. Prioritize longer words but if you can insert a short word between long ones... You'll still finish all your long words but the cut jog time should get more in...(definitely, yes, supreme, end, diatribe -- instead of definitely /jog/ supreme /jog/ diatribe ...)Do like maze solving robot mice and cut every corner possible.
@surburous1221
@surburous1221 6 күн бұрын
super cool! just one question about yourself. what did you do to learn to code? did you do your own schooling or go to a local uni? asking because im a week into my own coding journey and im barely learning python and stuff and im just curious.
@AyaanThe0ne
@AyaanThe0ne Ай бұрын
I cant tell you how much ive loved this video. Amazing 💪
@paulmeynell8866
@paulmeynell8866 Ай бұрын
That was really cool , well impressed
@Rolandfart
@Rolandfart Ай бұрын
Here are a few ideas for increasing the score: 1. Use a less mushy stylus, small improvement but it could let you be more precise with raising lowering the pen. 2. Instead of moving from one word to the next based on which one is bigger, move to the next word by only raising the pen if it is absolutely necessary. This could be done by: char a = last character of the word you just solved char b = first character of the word you are going to solve next find a word in the list that starts with the a and ends with b and if a path can be created for that word starting and ending at the correct spots. Solve that word and you should be ready to solve the next biggest word. Only raise the pen if you cannot find an intermediary word.
@The_Arx
@The_Arx Ай бұрын
You still need to raise the pen in order to stop one word and start the next one
@alixcozmo
@alixcozmo 21 күн бұрын
with jailbreaking you could use veency, also, very cool!
@Braxel_
@Braxel_ Ай бұрын
A different printer that is not closed source and more basic, it's possible to take off the print head and hold only the stylus. Less weight and upping the speed should make it ever better since it does not have to worry about wobble or extruding. Still really cool idea and amazed how well it works.
@shivaargula4735
@shivaargula4735 Ай бұрын
IDK if you've done this but sort the word list so the starting character of the next word matches the finishing character of the previous word. You can also optimize the path the printer takes, it doesn't need to travel right through the center of each word, it can take racing lines lol. If you want to go even further, you could include the printer travel speed into the calculations and select the most optimal words in terms of score vs speed, so if it regularly gets partway through the 4 letter words, you can pick the best of them.
@AsiAzzy
@AsiAzzy Ай бұрын
I think it would be streamlined more to have a single process like RPI controlling printer directly (octoprint-klipper) and some webcam and processing on the RPI. If fast enough might not even need to pause the game. It may start with a word and by the time it moves the head it might have a bunch more. Also idk what path you generate for corners, but i'd do a large radius to not hit max accelearion in corners. Some mechanical improvements: Ged a static bed instead of a bed slinger like corexy, cathesian ender 5 style or delta A delta printer might offer interesting advantages out of the box with fast presets and light print head and bed is static. Then ditch the print head (the heavyweight printhead slows down the max speed and acceleration). Then move to faster Z (minmize Z hop maybe a harder stylus) with belted Z or even better is to hook and induction coil to act as a solenoid to pop up-down the stylus. Then furter make it faster by converting to larger pulleys, bigger steppers.. test to find max speed and acceleration supported. If skipping is not occuring, then bigger pulley on motor will grant more speed. Repeat until it skips. It might go with crazy 600mm/s+ even more with a lighthead stylus. For this i bet a delta conversion is beter suited beacuse the deleted printhead was the only mass that was limiting the acceleration and speed. Without it might reach speeds beyond 3d printing realm (maybe 1000-2000mm/s, maybe more idk). Corexy has the whole gantry to move that is the same mass, and bedslingers have the whole bed + phone so a delta might be the best. An even higher tier of mods might be with cone angle movements instead of stylus moving. To further increase speed, maybe moving the whole stylus is not the route. Maybe have a ball joint on a very long stylus and angle it to reach the phone. It can have two axis with strings to hook on the end of the stylus to angle it. Math will get harder but doable. Also when everything is maxxed, then it comes nema23 and other bigger grunty-er steppers and servos that can really speed up crazy fast (it can have a redection gear to raise the speed and lower the torque) It would be interesting to see further versions of this mobilephone games ultimate destroyer.
@Cr480mx
@Cr480mx Ай бұрын
I think redesigning the stylus holder to make it a bit stiffer, adjusting the z axis to the absolute minimum height required for the stylus to work (so its lightly touching it as it seems its pressing down quite a bit in the video) and reducing your z hop height, increase your acceleration would allow you to increase the speed i think. Couple with whatever back end programming wizardry you can achieve i think you could easily get double the scores.
@iamsick5204
@iamsick5204 Ай бұрын
You could speed it up by haveing the next word start with a nearby letter Also having the correct index of words This is incredible! I can't believe it worked first try!
@ninjaman570
@ninjaman570 Ай бұрын
I saw some other recommendations for faster solutions, but honestly a really easy solution would be to just increase the speed of the movements. I haven’t used a Bambu labs printer, but I imagine there’s options like most other printers to increase “printing speed”, because while it goes fast now, it can definitely move faster
@SP4CEBAR
@SP4CEBAR Ай бұрын
On IOS, of you go to settings, accessibility, switch control, you can control the entire phone using a variety of external devices: you can even control it with a midi keyboard
@aceramey8245
@aceramey8245 Ай бұрын
I just bought that same printer a week ago, it's so cool :)
@ralphgifford8652
@ralphgifford8652 Ай бұрын
You know, if your goal is to solve all possible words, you probably should program it to solve words not in point order priority, not in alphabetical priority, but where the last letter of one word is the first of the next one. So, after solving for piano, the next word could be opinion, followed by nap, etc. This decreases the transit time between words. What little I know about sorting algorithms says this could be really hard, but it would definitely be faster.
@TheAechBomb
@TheAechBomb Ай бұрын
you'd just need to order the final list of paths such that as many connect as possible; it'll never be perfect (travelling salesman problem and disconnected paths), but it'd be slightly faster
@DominoKiddoo
@DominoKiddoo Ай бұрын
THIS IS SO COOL! Future project idea: use the printer to type things on a keyboard, a wireless one for example and make it speedrun wordle.
@dawica
@dawica 15 күн бұрын
IDK how hard this would be for you, but you might want to have some kind of image recognition to detect whether a word was accepted by the game. It would help prune words from the scrabble list that aren't in the game's dictionary. It would need some amount of slop, though, to account for words which may have just been misinputed by the printer
@grantshardelow1522
@grantshardelow1522 Ай бұрын
Some slicer programs have print time estimations. You could try to calculate out the print time to exactly the game length time so that the stylus lifts once the time has run out.
@MiDnYTe25
@MiDnYTe25 Ай бұрын
Getting a Bambulab printer as your first is pretty sick, you'll not be disappointed in the printer. The closed source thing kinda sucks, but their value proposition is kinda unmatched rn.
@laurent4533
@laurent4533 Ай бұрын
How do you not have like a million subs man
@BKBinary
@BKBinary Ай бұрын
hopefully soon :) thanks for the support
@azim0ff
@azim0ff Ай бұрын
You can optimize the print by sorting the words in a way where the next word starts at the location where previous word ended
@the_epik_tabby6981
@the_epik_tabby6981 4 күн бұрын
1:51 DAMN DANIEL
@Beateau
@Beateau Ай бұрын
You could probably run close to double those speeds and still be accurate. You got this easy.
@fluffycritter
@fluffycritter Ай бұрын
A trie isn't the most time-efficient way to do this. A sorted list of words, with a prefix search done via binary search, tends to be faster, at least in C++, and the performance characteristics at play make it seem that in Python the time savings would be even better. And since you can just store the wordlist pre-sorted, the loading phase means just loading it into memory. In Python you can implement a binary search using 'bisect' and its default behavior will be a prefix search.
@NakedSageAstrology
@NakedSageAstrology Ай бұрын
Super cool idea!
@johngriffith744
@johngriffith744 Ай бұрын
And Skynet was born 😊 Fascinating video
@ft4jemc
@ft4jemc Ай бұрын
Since you already have the list created, you could add another sort where it optimizes the list based on closeness of words. Basically prioritize the words by how close they are when drawn.
@gajustempus
@gajustempus Ай бұрын
just flip the results file upside down - so the longest words are done first, then it proceeds with the shorter one's. That way the travel time of the stylos is optimized. You can optimize it even further by running an algorythm over it to arrange the words in such a way one word ends right next to the square of the next starting letter or minimal movement time. That way you should do a few more words extra withint he time limit. And lastly - try automation though Octoprint. That way your software talks directly to your printer, so no manual steps anymore. Should also save you a few seconds.
@hi-its-me22
@hi-its-me22 Ай бұрын
Another improvement idea… watch the screen for the countdown timer or the end screen. And have the stylus lift / home when the game is done.
@tomodovodoo641
@tomodovodoo641 Ай бұрын
There are many open source ocr implementations of single font detection of letters, or you can train one yourself. I can help if you need a custom neural net, but I think there's more than enough online to get you started with :D
@tomodovodoo641
@tomodovodoo641 Ай бұрын
Of course, since it's the same font every time, you can use a hardcoded solution by using just using the nearest coordinates to a general shape, which should only take a few compares, and is faster than an ML solution.
@JamsterJules
@JamsterJules Ай бұрын
Great project! I did a simular thing with BookWorm for the PC, Although being PC based i could just manipulate the mouse. Post an update please if you make any improvements. I suspect you got addicted to watching it run for a while 😂
@arossfelder
@arossfelder 26 күн бұрын
7:48 the basic math that allows your stylus to quantum tunnel to the correct position
@ilaik
@ilaik Ай бұрын
I had the same problem with tesseract (you need to configure it very accurately), instead I used EasyOCR (also python). It works really well and lets you train your own recognizer if needed (I'd just crop line by line and recognize them)
@StephanBuchin
@StephanBuchin Ай бұрын
Great job. Maybe use a hard tip touch stylus and a spring to get better contact and go faster.
@UTubeRangerBob
@UTubeRangerBob Ай бұрын
Now have it solve the "I'm not a robot" prompts.
@airpeguiV2
@airpeguiV2 Ай бұрын
Underrated video!
@deecat2018
@deecat2018 Ай бұрын
honestly best bambu lab ad i ever see that printer is very good and reliable tho for $249 con is about 3-5 time the price for its part(when need to repair) and closed source hard to mod its software(but it already refine by company) pro is best plug and play printer for today
How I made a 3D Level in a 2D Game
24:28
Spu7Nix
Рет қаралды 3 МЛН
How Communists Made Unbreakable Glass
15:02
fern
Рет қаралды 1,9 МЛН
ПАРАЗИТОВ МНОГО, НО ОН ОДИН!❤❤❤
01:00
Chapitosiki
Рет қаралды 2,9 МЛН
ДЕНЬ РОЖДЕНИЯ БАБУШКИ #shorts
00:19
Паша Осадчий
Рет қаралды 6 МЛН
Why You Should Always Help Others ❤️
00:40
Alan Chikin Chow
Рет қаралды 68 МЛН
Cheapest Bullet Time with a 9 Dollar Camera
6:59
3DSage
Рет қаралды 278 М.
the truth behind airplane mode
17:07
Answer in Progress
Рет қаралды 576 М.
High precision speed reducer using rope
20:19
Aaed Musa
Рет қаралды 943 М.
Storing Files in Minecraft | Project Showcase 3
13:10
BK Binary
Рет қаралды 1,3 МЛН
I'm a Mess, so I'm Making My Own File Organizer [TagStudio]
23:32
Forget WiFi! This Wireless Method is WAY Better?
12:14
GreatScott!
Рет қаралды 421 М.
I Made Real-life Airsoft AIM-ASSIST: Aimbot V3
25:19
Excessive Overkill
Рет қаралды 1 МЛН
Building a Mini Vegas-Sphere
7:16
Carl Bugeja
Рет қаралды 1 МЛН