Programming a 3D Printer to DESTROY Mobile Games

2024 ж. 14 Мам.
128 258 Рет қаралды

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

Пікірлер
  • Now have it destroy people with perfectly calculated shots in 8-Ball

    @KolMan2000@KolMan200017 күн бұрын
    • The channel "stuff made here" did this in real life.

      @RadioactiveBluePlatypus@RadioactiveBluePlatypus17 күн бұрын
    • I wanna see it master the pong game. I swear there’s a randomizer as I can never get accurate shots lol

      @benm12310@benm1231016 күн бұрын
    • I'm almost convinced someone already has lol, I've seen people make incredible shots with no aim time

      @freman@freman16 күн бұрын
    • Yes

      @bedwarsfan69@bedwarsfan6910 күн бұрын
  • 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.

    @leumasme@leumasme16 күн бұрын
    • 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.

      @experimenteeer@experimenteeer16 күн бұрын
    • 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.

      @Scrogan@Scrogan16 күн бұрын
    • won't it also increase the sorting time by a lot?

      @user-ro2tm3dp8x@user-ro2tm3dp8x16 күн бұрын
    • ​@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

      @BelviGER@BelviGER15 күн бұрын
    • Another optimization - use G0 rapids between words :)

      @MattWestwick@MattWestwick14 күн бұрын
  • “What’s printer?” Your friends are funny bro! “

    @Jacobadia@Jacobadia17 күн бұрын
    • Bambu Lab A1

      @3v1Bunny@3v1Bunny17 күн бұрын
    • *A1 mini

      @InfiniteCoder01@InfiniteCoder0117 күн бұрын
    • He wasn't asking what the printer was he was quoting the video -_-

      @SullySadface@SullySadface16 күн бұрын
    • @@SullySadface haha yea. I’m glad someone understood

      @Jacobadia@Jacobadia15 күн бұрын
    • 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.

      @Klannahar@Klannahar15 күн бұрын
  • 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.

    @ladyravendale1@ladyravendale117 күн бұрын
    • Wouldnt 5 pixels give you 32?

      @taxatogaming@taxatogaming16 күн бұрын
    • @@taxatogaming yep, I can’t count

      @ladyravendale1@ladyravendale116 күн бұрын
    • OpenCV matchTemplate?

      @experimenteeer@experimenteeer16 күн бұрын
    • 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.

      @dudedotmichael@dudedotmichael12 күн бұрын
    • 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

      @TripImmigration@TripImmigration3 күн бұрын
  • 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.

    @MaebhsUrbanity@MaebhsUrbanity17 күн бұрын
    • I know, bambu printers have some neat features, but with how closed of an ecosystem they have it's a hard no from me

      @superduperbjarne@superduperbjarne16 күн бұрын
    • Agreed. Something to think about cause those mofos are not cheap.

      @pepaw@pepaw16 күн бұрын
    • Can you not even start the print remotely ?

      @4nto418@4nto41816 күн бұрын
    • @@4nto418 with the more expensive printers you can

      @Jojo43O9@Jojo43O916 күн бұрын
    • Idk about sending over USB. But you can use a micro SD card to transfer gcode

      @illcomeupwithanamelatter3632@illcomeupwithanamelatter363216 күн бұрын
  • 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

    @NoorquackerInd@NoorquackerInd16 күн бұрын
    • 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.

      @meateaw@meateaw15 күн бұрын
  • 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)

    @taylor5248@taylor524816 күн бұрын
  • 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 ...

    @kajatoth9151@kajatoth915117 күн бұрын
    • underrated comment

      @aidenparsons6571@aidenparsons657115 күн бұрын
  • 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?

    @otter8899@otter889917 күн бұрын
    • 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.

      @BKBinary@BKBinary17 күн бұрын
    • It could also probably be sped up by prioritizing words that start with the last letter of the previous word

      @rrrrmrmr@rrrrmrmr17 күн бұрын
    • ​@@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

      @K0nomi@K0nomi16 күн бұрын
    • @@K0nomi yess

      @nassinger3365@nassinger336516 күн бұрын
    • @@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

      @mentallydeficient8088@mentallydeficient808815 күн бұрын
  • 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 👀

    @vlc-cosplayer@vlc-cosplayer17 күн бұрын
    • 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

      @joe-skeen@joe-skeen17 күн бұрын
    • 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.

      @nicholasfinch4087@nicholasfinch408717 күн бұрын
    • ​@@joe-skeenmaking it black and white would make things much easier and computationally faster though

      @K0nomi@K0nomi16 күн бұрын
    • 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.

      @IbrahimDelil@IbrahimDelil16 күн бұрын
    • The letters should be exactly the same bitmap you can easily check for.

      @Simplicity4711@Simplicity471113 күн бұрын
  • 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.

    @80lab38@80lab3816 күн бұрын
  • A less squishy stylus would probably recognize better at higher speeds

    @kalebwilkes4705@kalebwilkes470516 күн бұрын
    • 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

      @JFed-9@JFed-94 сағат бұрын
  • 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

    @MQWalkman@MQWalkman17 күн бұрын
  • 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 💯

    @JorbIsMe@JorbIsMe17 күн бұрын
  • 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

    @alexismandelias@alexismandelias17 күн бұрын
    • 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.

      @opitir@opitir17 күн бұрын
    • Looking for words with a first letter physically close to the last letter of the previous word could help

      @Hack--rz1io@Hack--rz1io17 күн бұрын
    • Optimizing for words with less corners. Maybe also having less sharp corner turns will help with keeping up the speed.

      @rjdverbeek@rjdverbeek16 күн бұрын
    • @@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!

      @AsiAzzy@AsiAzzy16 күн бұрын
    • ​@@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.

      @StolenBlock@StolenBlock16 күн бұрын
  • there are libraries to inject instruction to the printer via MQTT else, really nice Project !

    @teamllr3137@teamllr313717 күн бұрын
  • 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

    @jaygriffin6963@jaygriffin696316 күн бұрын
  • dude! this is amazing! id love to see another video of the updated ideas you have

    @kaydabalab@kaydabalabКүн бұрын
  • 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.

    @WilsonBot@WilsonBot15 күн бұрын
  • Great video, you walked through the whole process which was fantastic. Short and concise. I'll be checking out your other videos.

    @Xeoncross@Xeoncross15 күн бұрын
  • Cool project, and the editing was great. Keep them coming man :)

    @suleymantolgaacar5089@suleymantolgaacar508917 күн бұрын
  • 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

    @N0p3Mark@N0p3Mark15 күн бұрын
    • Thanks for the kind words!

      @BKBinary@BKBinary14 күн бұрын
  • 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. :)

    @hiltonmw@hiltonmw16 күн бұрын
  • Really nice video, that I stumbled randomly on. Good luck on your KZhead adventure :)

    @SlowCuberThirstix@SlowCuberThirstix15 күн бұрын
  • 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.

    @theorangebaron1595@theorangebaron159516 күн бұрын
  • Yo this wild seriously impressive :O I didn't even realize you could use a 3d printer like that

    @ExtemporaneousnessOne@ExtemporaneousnessOne17 күн бұрын
    • 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

      @user-wo7rl4nm7w@user-wo7rl4nm7w4 күн бұрын
  • 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.

    @4nto418@4nto41816 күн бұрын
    • Yep. OpenCV matchTemplate is the algo to use for this.

      @experimenteeer@experimenteeer16 күн бұрын
  • 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

    @kyleallred984@kyleallred98416 күн бұрын
  • 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

    @braddofner6407@braddofner640716 күн бұрын
  • Great project, very interesting hiccups along the way, I thought solving the puzzle was gonna be the hardest

    @danielsalyi7194@danielsalyi719416 күн бұрын
  • No way, I commented on this on Reddit not too long ago, and now the algorithm has brought me to the video. Awesome man!

    @lucasperies6952@lucasperies695216 күн бұрын
    • That's so crazy haha I didn't expect anyone from reddit finding this video

      @BKBinary@BKBinary16 күн бұрын
    • @@BKBinary are you sweaty grun.... ?

      @lucasperies6952@lucasperies695215 күн бұрын
  • 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.

    @Ishsa@Ishsa16 күн бұрын
  • dude thats such a cool project, how do you not have more views/subs?

    @maxb.5905@maxb.590517 күн бұрын
  • 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.

    @Xealous@Xealous14 күн бұрын
    • I was thinking of doing this same thing! Thanks for letting me know it works!

      @BKBinary@BKBinary14 күн бұрын
  • What are friends for if you can't totally destroy them 😆 Great project!

    @Ernzt8@Ernzt815 күн бұрын
  • This has to be the best video on this platform damn

    @larryhannon49@larryhannon4916 күн бұрын
  • 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.

    @benromarowski9235@benromarowski923516 күн бұрын
  • 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 😄

    @Krcma96@Krcma9617 күн бұрын
  • Reeeeealy nice Idea and implementation!

    @natotj333@natotj33315 күн бұрын
  • 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@brittonstudios16 күн бұрын
    • 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.

      @brittonstudios@brittonstudios16 күн бұрын
  • 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.

    @DominoKiddoo@DominoKiddoo16 күн бұрын
  • 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.

    @markokorevec3198@markokorevec319815 күн бұрын
  • 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.

    @hulio3994@hulio399416 күн бұрын
  • 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…

    @RainShinotsu@RainShinotsu17 күн бұрын
  • 7:45 “using some really basic math-“ Proceeds to show not one single number and the absolute value of Poseidons trident.

    @lynxrbeam8732@lynxrbeam873216 күн бұрын
  • 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.

    @frollard@frollard16 күн бұрын
  • You should try upping acceleration >:) Also if you ever want a better 3d printer consider something running klipper (voron, annex k3, custom built) :P

    @Okuhno@Okuhno16 күн бұрын
  • Nice work, Brendan! Just a quick tip: Maybe import the other files instead of calling them via subprocess.

    @xanderplayz3446@xanderplayz344616 күн бұрын
  • Funny, an interview question I used to ask many candidates is 'boggle solver' where I get them to spit out a list of possible words. The ideal solution of course uses the trie and DFS. Maybe I should get them to output gcode too 😂

    @Grazfather@Grazfather13 күн бұрын
    • Wish you interviewed me so I could nail that problem lol. Still haven't even landed my first interview with this market though

      @BKBinary@BKBinary10 күн бұрын
    • @@BKBinary Ugh, that's tough. Keeping with projects like this and you'll surely distinguish yourself above the rest.

      @Grazfather@Grazfather10 күн бұрын
  • 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.

    @shivaargula4735@shivaargula473517 күн бұрын
  • 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.

    @MrMausao@MrMausao14 күн бұрын
    • 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.

      @BKBinary@BKBinary14 күн бұрын
  • 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!

    @mylittleparody2277@mylittleparody227711 күн бұрын
  • 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.

    @Braxel_@Braxel_15 күн бұрын
  • 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.

    @Rolandfart@Rolandfart16 күн бұрын
    • You still need to raise the pen in order to stop one word and start the next one

      @The_Arx@The_Arx16 күн бұрын
  • this is really cool!

    @aze4308@aze430817 күн бұрын
  • Came for the idea Stayed for the prolapse and turdions

    @zdrux@zdrux14 күн бұрын
  • If someone beat me that HARD in WordHunt I'll get traumatized

    @fabcstlls@fabcstlls14 күн бұрын
  • 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.

    @hiltonmw@hiltonmw16 күн бұрын
  • random idea run the solved game list of words through a tie algorithm to get a list of words based on last letter of the first word and the first letter of the next. so if for example the first word is word and the second is droves it is preferred and the longest sequence gets put in first and then remove the already solved words from the list and repeat until you only have single words?

    @johanvink2337@johanvink233713 күн бұрын
  • 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!

    @iamsick5204@iamsick520416 күн бұрын
  • "Boring funeral? WordHunt." lmao subbed

    @YourComputerExpert@YourComputerExpert16 күн бұрын
  • That was really cool , well impressed

    @paulmeynell8866@paulmeynell886614 күн бұрын
  • You could probably run close to double those speeds and still be accurate. You got this easy.

    @Beateau@Beateau16 күн бұрын
  • 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

    @FunnyIvri@FunnyIvri17 күн бұрын
  • You could try to make the first letter of the next word match whatever letter was right next to the last letter of the previous word in the direction the printer was traveling in to reduce travel time between words.

    @skylerockspecial@skylerockspecial16 күн бұрын
  • Very cool!! A couple of armchair suggestions... Tesseract works better against B&W images than color, even seemingly black and white ones on the screen. Given you know the space each letter occupies, you might consider either only evaluating regions, or consider easyOCR, but easyOCR needs a word model, so I don't know if it can pick up on single letters. You'd still want to use regions, however because both packages are kind of a PITA in only finding first instances. A cheaper printer, like the low end Creality printer, allow for use of programs (like OctoPrint and others) that can allow live writing of gcode commands via terminal to output to the printer. You could stream your commands instead of creating a .gcode file to recover the FTP time. Lastly, since you find the solver list up front, inverting it to maximize the higher points from the longer words first could goose your score. Thanks for the fun watch!

    @menty6666@menty666614 күн бұрын
    • Hey thanks a lot for the suggestions! Will definitely use your tips in improvement. Thanks for taking the time to leave this comment!

      @BKBinary@BKBinary14 күн бұрын
  • 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 😂

    @JamsterJules@JamsterJules16 күн бұрын
  • 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

    @ninjaman570@ninjaman57014 күн бұрын
  • 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.

    @Cr480mx@Cr480mx11 күн бұрын
  • 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.

    @grantshardelow1522@grantshardelow152216 күн бұрын
  • 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.

    @AsiAzzy@AsiAzzy16 күн бұрын
  • I rememeber doing sort of the same thing couple years ago minus using the 3D printer to physically insert the words. My solution was using messenger variant of this app in regular browser on PC and writing a Python program that used selenium to control and extract stuff from browser and emulated mouse on top of it which iirc was significantly faster. Too bad my way of finding valid words was jank af compared to yours so it could never find the really juicy long ones, but it still absolutely smoked my wife at the game.

    @Vojtas35@Vojtas3516 күн бұрын
  • Great job. Maybe use a hard tip touch stylus and a spring to get better contact and go faster.

    @StephanBuchin@StephanBuchin17 күн бұрын
  • 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.

    @ft4jemc@ft4jemc17 күн бұрын
  • 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.

    @ikocheratcr@ikocheratcr16 күн бұрын
  • Idea to optimize the solver. Once it solves for the words, it should solve for the most optimal path(s) to solve with the least amount of pen travel. That would greatly increase the solve time but....I'm sure you can do it ;)

    @ztech-consulting@ztech-consulting15 күн бұрын
  • 7:48 the basic math that allows your stylus to quantum tunnel to the correct position

    @arossfelder@arossfelderКүн бұрын
  • 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)

    @ilaik@ilaik16 күн бұрын
  • I made long time ago something like that but with ESP32 that emulate BLE mouse and keyboard running small web server with API for command execution... lets say fishing in WoW was easy after that :D It even spoof model and S/N of existing keyboards and mouses :D

    @vladoportos@vladoportos16 күн бұрын
  • You can optimize the print by sorting the words in a way where the next word starts at the location where previous word ended

    @azim0ff@azim0ff16 күн бұрын
  • 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!

    @magnuzzs6186@magnuzzs61863 күн бұрын
  • 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@tomodovodoo64116 күн бұрын
    • 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.

      @tomodovodoo641@tomodovodoo64116 күн бұрын
  • I just bought that same printer a week ago, it's so cool :)

    @aceramey8245@aceramey824516 күн бұрын
  • >albinauric head truly, thou art maidenless

    @SullySadface@SullySadface16 күн бұрын
  • I need a Sudoku Solver for my X1C!!!!!

    @nicolasfarji@nicolasfarji16 күн бұрын
  • 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.

    @gajustempus@gajustempus15 күн бұрын
  • I cant tell you how much ive loved this video. Amazing 💪

    @AyaanThe0ne@AyaanThe0ne16 күн бұрын
  • minimize vertical travel of the stylist as much as possible and always start the next word with either the ending letter or the next closest letter as well as proatiseing words that would end close to the start of other words

    @Axofpik@Axofpik16 күн бұрын
  • You should add the input shaper gcode to the initialization gcode, then crank accelerations and print speed way up

    @user-wo7rl4nm7w@user-wo7rl4nm7w4 күн бұрын
  • Now have it solve the "I'm not a robot" prompts.

    @UTubeRangerBob@UTubeRangerBob16 күн бұрын
  • a sheet of conductive rubber over the screen and a roller stylus that pokes through the back instead of a the current stylus

    @bootstrappingcivilization5862@bootstrappingcivilization586216 күн бұрын
  • How do you not have like a million subs man

    @laurent4533@laurent453317 күн бұрын
    • hopefully soon :) thanks for the support

      @BKBinary@BKBinary17 күн бұрын
  • 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

    @deecat2018@deecat201815 күн бұрын
  • Super cool idea!

    @NakedSageAstrology@NakedSageAstrology15 күн бұрын
  • I'm inclined to wonder if there is a stylus with an actually rolling ball in the end. That way you could increase travel speed while still maintaining contact.

    @gbestwick@gbestwick13 күн бұрын
  • 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.

    @MiDnYTe25@MiDnYTe2515 күн бұрын
  • Would love to see an optimised follow up video

    @simonbianchet@simonbianchet15 күн бұрын
  • reprint a stylist holder that hold the stylus better and on more surface area of the stylus also connect the holder to the printer in more spots

    @finitfrog@finitfrog16 күн бұрын
  • You should have ditched the OCR and just compared bitmaps between the letters you have on the screen and pre-captured bitmap for each letter post the filtering step you did to make it black and white. I think they might even come out pixel perfect (the filter is deterministic) or if not they'd probably be 99 % there each time. WDYT?

    12 күн бұрын
  • You should go to open sauce in San Francisco this summer and show this off!

    @davidfarley375@davidfarley37516 күн бұрын
    • Saw this and applied when you commented, just got accepted today! Thanks for letting me know about it I'm super pumped to go

      @BKBinary@BKBinary8 күн бұрын
KZhead