Programming a 3D Printer to DESTROY Mobile Games

Sdílet
Vložit
  • čas přidán 2. 06. 2024
  • 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

Komentáře • 500

  • @KolMan2000
    @KolMan2000 Před měsícem +1050

    Now have it destroy people with perfectly calculated shots in 8-Ball

    • @RadioactiveBluePlatypus
      @RadioactiveBluePlatypus Před měsícem +39

      The channel "stuff made here" did this in real life.

    • @benm12310
      @benm12310 Před měsícem +9

      I wanna see it master the pong game. I swear there’s a randomizer as I can never get accurate shots lol

    • @freman
      @freman Před měsícem

      I'm almost convinced someone already has lol, I've seen people make incredible shots with no aim time

    • @bedwarsfan69
      @bedwarsfan69 Před 29 dny

      Yes

  • @leumasme
    @leumasme Před měsícem +610

    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 Před měsícem +29

      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 Před měsícem +33

      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 Před měsícem +3

      won't it also increase the sorting time by a lot?

    • @BelviGER
      @BelviGER Před měsícem +24

      ​@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 Před měsícem

      Another optimization - use G0 rapids between words :)

  • @ladyravendale1
    @ladyravendale1 Před měsícem +219

    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 Před měsícem +10

      Wouldnt 5 pixels give you 32?

    • @ladyravendale1
      @ladyravendale1 Před měsícem +5

      @@taxatogaming yep, I can’t count

    • @experimenteeer
      @experimenteeer Před měsícem +5

      OpenCV matchTemplate?

    • @dudedotmichael
      @dudedotmichael Před měsícem +24

      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 Před 21 dnem +5

      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 Před měsícem +279

    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 Před měsícem +49

      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 Před měsícem +8

      Agreed. Something to think about cause those mofos are not cheap.

    • @4nto418
      @4nto418 Před měsícem +1

      Can you not even start the print remotely ?

    • @Jojo43O9
      @Jojo43O9 Před měsícem

      @@4nto418 with the more expensive printers you can

    • @illcomeupwithanamelatter3632
      @illcomeupwithanamelatter3632 Před měsícem +1

      Idk about sending over USB. But you can use a micro SD card to transfer gcode

  • @NoorquackerInd
    @NoorquackerInd Před měsícem +87

    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 Před měsícem +9

      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.

  • @Jacobadia
    @Jacobadia Před měsícem +328

    “What’s printer?” Your friends are funny bro! “

    • @3v1Bunny
      @3v1Bunny Před měsícem +2

      Bambu Lab A1

    • @InfiniteCoder01
      @InfiniteCoder01 Před měsícem +1

      *A1 mini

    • @SullySadface
      @SullySadface Před měsícem +7

      He wasn't asking what the printer was he was quoting the video -_-

    • @Jacobadia
      @Jacobadia Před měsícem

      @@SullySadface haha yea. I’m glad someone understood

    • @Klannahar
      @Klannahar Před měsícem +1

      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.

  • @taylor5248
    @taylor5248 Před měsícem +56

    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)

  • @kalebwilkes4705
    @kalebwilkes4705 Před měsícem +37

    A less squishy stylus would probably recognize better at higher speeds

    • @JFed-9
      @JFed-9 Před 18 dny +1

      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

  • @80lab38
    @80lab38 Před měsícem +17

    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.

  • @kajatoth9151
    @kajatoth9151 Před měsícem +47

    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 ...

  • @vlc-cosplayer
    @vlc-cosplayer Před měsícem +98

    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 Před měsícem +10

      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 Před měsícem +1

      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 Před měsícem +2

      ​@@joe-skeenmaking it black and white would make things much easier and computationally faster though

    • @IbrahimDelil
      @IbrahimDelil Před měsícem +6

      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 Před měsícem

      The letters should be exactly the same bitmap you can easily check for.

  • @otter8899
    @otter8899 Před měsícem +126

    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  Před měsícem +39

      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 Před měsícem +30

      It could also probably be sped up by prioritizing words that start with the last letter of the previous word

    • @K0nomi
      @K0nomi Před měsícem +35

      ​@@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 Před měsícem +1

      @@K0nomi yess

    • @mentallydeficient8088
      @mentallydeficient8088 Před měsícem +2

      @@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

  • @lynxrbeam8732
    @lynxrbeam8732 Před měsícem +4

    7:45 “using some really basic math-“
    Proceeds to show not one single number and the absolute value of Poseidons trident.

  • @MQWalkman
    @MQWalkman Před měsícem +15

    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

  • @JorbIsMe
    @JorbIsMe Před měsícem +14

    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 💯

  • @N0p3Mark
    @N0p3Mark Před měsícem +3

    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  Před měsícem

      Thanks for the kind words!

  • @Xeoncross
    @Xeoncross Před měsícem +1

    Great video, you walked through the whole process which was fantastic. Short and concise. I'll be checking out your other videos.

  • @suleymantolgaacar5089
    @suleymantolgaacar5089 Před měsícem +2

    Cool project, and the editing was great. Keep them coming man :)

  • @jaygriffin6963
    @jaygriffin6963 Před měsícem +2

    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

  • @teamllr3137
    @teamllr3137 Před měsícem +11

    there are libraries to inject instruction to the printer via MQTT
    else, really nice Project !

  • @thewolfin
    @thewolfin Před 11 dny

    Thank you for the great video and props for taking the time to put in music credits

  • @kaydabalab
    @kaydabalab Před 19 dny

    dude! this is amazing! id love to see another video of the updated ideas you have

  • @WilsonBot
    @WilsonBot Před měsícem +1

    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.

  • @alexismandelias
    @alexismandelias Před měsícem +33

    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 Před měsícem +2

      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 Před měsícem +9

      Looking for words with a first letter physically close to the last letter of the previous word could help

    • @rjdverbeek
      @rjdverbeek Před měsícem +4

      Optimizing for words with less corners.
      Maybe also having less sharp corner turns will help with keeping up the speed.

    • @AsiAzzy
      @AsiAzzy Před měsícem

      @@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 Před měsícem

      ​@@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.

  • @SlowCuberThirstix
    @SlowCuberThirstix Před měsícem

    Really nice video, that I stumbled randomly on. Good luck on your CZcams adventure :)

  • @ArchistYT
    @ArchistYT Před 2 dny

    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

  • @hiltonmw
    @hiltonmw Před měsícem

    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. :)

  • @theorangebaron1595
    @theorangebaron1595 Před měsícem +1

    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.

  • @critical_always
    @critical_always Před měsícem +9

    The lesson I hope you learned from this. Don't listen to CZcams 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.

  • @4nto418
    @4nto418 Před měsícem +2

    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 Před měsícem

      Yep. OpenCV matchTemplate is the algo to use for this.

  • @ExtemporaneousnessOne
    @ExtemporaneousnessOne Před měsícem +16

    Yo this wild seriously impressive :O
    I didn't even realize you could use a 3d printer like that

    • @user-wo7rl4nm7w
      @user-wo7rl4nm7w Před 23 dny +1

      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

  • @AyaanThe0ne
    @AyaanThe0ne Před měsícem +1

    I cant tell you how much ive loved this video. Amazing 💪

  • @lucasperies6952
    @lucasperies6952 Před měsícem +3

    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  Před měsícem +2

      That's so crazy haha I didn't expect anyone from reddit finding this video

    • @lucasperies6952
      @lucasperies6952 Před měsícem

      @@BKBinary are you sweaty grun.... ?

  • @braddofner
    @braddofner Před měsícem

    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

  • @mylittleparody2277
    @mylittleparody2277 Před měsícem

    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!

  • @larryhannon49
    @larryhannon49 Před měsícem +1

    This has to be the best video on this platform damn

  • @maxb.5905
    @maxb.5905 Před měsícem

    dude thats such a cool project, how do you not have more views/subs?

  • @joe-skeen
    @joe-skeen Před měsícem +11

    For V2:
    * Ditch Bamboo Labs if you can't find a way to control over USB (there are plenty of cheap printers that work great with Octoprint or Klippr)
    * install Webcam to capture image, hooked up to something like Raspberry Pi
    * improve ML letter recognition (see my other comment)
    * control everything in a single process
    * profit

  • @RainShinotsu
    @RainShinotsu Před měsícem

    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…

  • @hulio3994
    @hulio3994 Před měsícem +1

    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.

  • @kyleallred984
    @kyleallred984 Před měsícem +1

    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

  • @natotj333
    @natotj333 Před měsícem

    Reeeeealy nice Idea and implementation!

  • @Ernzt8
    @Ernzt8 Před měsícem +1

    What are friends for if you can't totally destroy them 😆 Great project!

  • @Ishsa
    @Ishsa Před měsícem +1

    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.

  • @Xealous
    @Xealous Před měsícem +1

    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  Před měsícem

      I was thinking of doing this same thing! Thanks for letting me know it works!

  • @aze4308
    @aze4308 Před měsícem +8

    this is really cool!

  • @danielsalyi7194
    @danielsalyi7194 Před měsícem

    Great project, very interesting hiccups along the way, I thought solving the puzzle was gonna be the hardest

  • @brittonstudios
    @brittonstudios Před měsícem +1

    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 Před měsícem

      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.

  • @AsiAzzy
    @AsiAzzy Před měsícem +1

    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.

  • @endgame4883
    @endgame4883 Před 15 dny

    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

  • @xanderplayz3446
    @xanderplayz3446 Před měsícem

    Nice work, Brendan! Just a quick tip: Maybe import the other files instead of calling them via subprocess.

  • @Rolandfart
    @Rolandfart Před měsícem +1

    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 Před měsícem +1

      You still need to raise the pen in order to stop one word and start the next one

  • @paulmeynell8866
    @paulmeynell8866 Před měsícem

    That was really cool , well impressed

  • @benromarowski9235
    @benromarowski9235 Před měsícem

    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.

  • @Krcma96
    @Krcma96 Před měsícem

    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 😄

  • @Okuhno
    @Okuhno Před měsícem +1

    You should try upping acceleration >:)
    Also if you ever want a better 3d printer consider something running klipper (voron, annex k3, custom built) :P

  • @MrMausao
    @MrMausao Před měsícem +1

    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  Před měsícem +1

      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.

  • @iamsick5204
    @iamsick5204 Před měsícem

    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!

  • @johngriffith744
    @johngriffith744 Před měsícem

    And Skynet was born 😊 Fascinating video

  • @magnuzzs6186
    @magnuzzs6186 Před 22 dny

    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!

  • @ikocheratcr
    @ikocheratcr Před měsícem +1

    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.

  • @laurent4533
    @laurent4533 Před měsícem +3

    How do you not have like a million subs man

    • @BKBinary
      @BKBinary  Před měsícem +1

      hopefully soon :) thanks for the support

  • @zdrux
    @zdrux Před měsícem +1

    Came for the idea
    Stayed for the prolapse and turdions

  • @aceramey8245
    @aceramey8245 Před měsícem

    I just bought that same printer a week ago, it's so cool :)

  • @markokorevec3198
    @markokorevec3198 Před měsícem

    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.

  • @alixcozmo
    @alixcozmo Před 14 dny +1

    with jailbreaking you could use veency, also, very cool!

  • @danny3793
    @danny3793 Před 15 dny

    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.

  • @Braxel_
    @Braxel_ Před měsícem

    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.

  • @airpeguiV2
    @airpeguiV2 Před měsícem +1

    Underrated video!

  • @NakedSageAstrology
    @NakedSageAstrology Před měsícem

    Super cool idea!

  • @shivaargula4735
    @shivaargula4735 Před měsícem +1

    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.

  • @JamsterJules
    @JamsterJules Před měsícem +1

    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 😂

  • @FunnyIvri
    @FunnyIvri Před měsícem +1

    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

  • @frollard
    @frollard Před měsícem

    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.

  • @deecat2018
    @deecat2018 Před měsícem

    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

  • @menty6666
    @menty6666 Před měsícem

    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!

    • @BKBinary
      @BKBinary  Před měsícem +1

      Hey thanks a lot for the suggestions! Will definitely use your tips in improvement. Thanks for taking the time to leave this comment!

  • @DominoKiddoo
    @DominoKiddoo Před měsícem

    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.

  • @gajustempus
    @gajustempus Před měsícem

    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.

  • @fabcstlls
    @fabcstlls Před měsícem +1

    If someone beat me that HARD in WordHunt I'll get traumatized

  • @Cassandra.
    @Cassandra. Před měsícem

    this is a fire video, good shit

  • @ninjaman570
    @ninjaman570 Před měsícem

    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

  • @ralphgifford8652
    @ralphgifford8652 Před měsícem +1

    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 Před měsícem

      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

  • @StephanBuchin
    @StephanBuchin Před měsícem

    Great job. Maybe use a hard tip touch stylus and a spring to get better contact and go faster.

  • @Cr480mx
    @Cr480mx Před 29 dny

    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.

  • @TheSuperiorCat
    @TheSuperiorCat Před 28 dny

    that is actually insane :O

  • @YourComputerExpert
    @YourComputerExpert Před měsícem

    "Boring funeral? WordHunt." lmao subbed

  • @dawica
    @dawica Před 8 dny

    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

  • @Beateau
    @Beateau Před měsícem

    You could probably run close to double those speeds and still be accurate. You got this easy.

  • @MiDnYTe25
    @MiDnYTe25 Před měsícem

    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.

  • @ilaik
    @ilaik Před měsícem

    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)

  • @SullySadface
    @SullySadface Před měsícem

    >albinauric head
    truly, thou art maidenless

  • @UTubeRangerBob
    @UTubeRangerBob Před měsícem +1

    Now have it solve the "I'm not a robot" prompts.

  • @Progaros
    @Progaros Před měsícem

    improvement: sort withing each length group so that the words start with the same position* as the previous one ended
    * not necessarily letter, because letters can be duplicated
    example with numbers: 123456, 654, 432

  • @hiltonmw
    @hiltonmw Před měsícem

    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.

  • @arossfelder
    @arossfelder Před 19 dny

    7:48 the basic math that allows your stylus to quantum tunnel to the correct position

  • @Retroplanegeek
    @Retroplanegeek Před měsícem

    1 question tho why? All seriousness tho this is crazy impressive and cool great job subscribed

  • @ezram.4484
    @ezram.4484 Před měsícem

    This is the peak of engineering

  • @azim0ff
    @azim0ff Před měsícem

    You can optimize the print by sorting the words in a way where the next word starts at the location where previous word ended

  • @ft4jemc
    @ft4jemc Před měsícem

    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.

  • @purplepenguin43
    @purplepenguin43 Před 15 dny

    For the stylus is suggest lube or a fabric with metallic imbed like found in touch screen compatible gloves