Software Scoping the MTG Sorter

Поділитися
Вставка
  • Опубліковано 19 жов 2024

КОМЕНТАРІ • 97

  • @Varler_
    @Varler_ Рік тому +8

    Excited to hear about more progress! Thanks for keeping us updated on this amazing project! :)

  • @Zaezar
    @Zaezar Рік тому +4

    Even if you only are able to deliver on half of these, I'm incredibly excited. Even a simple machine capable of putting alphabet stuff into two piles would suffice for me. While I know it's a far ways off, I'm definitely getting in on a build once you have anything available!

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Heck yeah that's great to hear! I'm certainly excited working on it as well!

  • @sealard9635
    @sealard9635 Рік тому +10

    While this sounds very very cool, I’m a bit worried about feature creep. If the software launches with just a few of these then that’s totally great. If these are all planned launch features then it will be harder to get this off the ground

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +8

      Valid concern, I definitely don't plan to include all the features mentioned here at launch. Initial features would probably just be 1-6 or 1-5, with more added later!

    • @Kevin-dj5kw
      @Kevin-dj5kw Рік тому +1

      @@jackbaumgartel I’d like to see it get to your priority 6 topic, for at least the sake of randomizing cube packs, or cards from a single set to redraft (able to repack 1rare/mythic, 3 uncommon, 11 commons; or a variation like 5 uncommon and 10 commons for example). I saw this on one of the market sorters and thought this would be a great feature for private individuals or groups to utilize in the long term.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@Kevin-dj5kw Thanks for the input, and agreed I think a lot of people would really enjoy such a feature!

    • @mojoturner5292
      @mojoturner5292 Рік тому +2

      I agree about future creep, but it could also be a entry lever (5-6 features), mid (8-10 features), top (10+ features). Etc.

  • @TheeBuddylee
    @TheeBuddylee Рік тому +2

    Exciting series and project. Thanks for the clarity

  • @politikh
    @politikh Рік тому +2

    Very interesting project! Thank you for keeping us informed and happy coding!

  • @valkaerion
    @valkaerion Рік тому +1

    Definitely excited to see how this project comes along and agree with the priority list of features 👍

  • @ReidFisher86
    @ReidFisher86 Рік тому +9

    Re: foil detection. In the bottom left, next to the set code, there’s an indicator icon for whether a card is foil. Not sure if this detail would help in detection. All foils have a star icon. All non foils have a dot instead.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +4

      Thank you, I hadn't heard that before so I appreciate the info. I'll dig into it some more myself, but by any chance do you know when they started doing that / which sets?

    • @politikh
      @politikh Рік тому +2

      @@jackbaumgartel I think it was when they implemented the M15 frame?

  • @lucaslopera8983
    @lucaslopera8983 Рік тому +1

    love the updates and the work, best of luck going forward!

  • @TraeKryzer
    @TraeKryzer Рік тому +1

    Haven't watch it yet, but already excited! Been waiting to see more! I just got back into casually coding stuff, and have been coding an MTG project.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      Awesome to hear!

    • @TraeKryzer
      @TraeKryzer Рік тому +1

      @@jackbaumgartel I was actually wondering if you wanted any help with this. I may not be the most experienced, but everything about this has been a huge interest of mine for the longest time.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      @@TraeKryzer Thanks for the offer! I'm not sure if you're on the email list yet, but that's where I'll likely be turning as I encounter issues and need help! Right now I haven't needed any outside support, but I'll be sure to find you when I do

  • @804robiccc
    @804robiccc Рік тому +1

    Looking forward to being able to get one

  • @reillocb
    @reillocb Рік тому +1

    Looks good so far, although the only edge case i can think of that you didn't explicitly mention is repacking for drafts, cubes, or even jumpstart specifically. Looking forward to the next~

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +2

      Ah yeah those are good ones, thanks for mentioning them!

    • @nine1690
      @nine1690 Рік тому

      In regards to this, I believe that being able to specify a list of cards & their amounts as a set/cube, and pack sorting specifications such as 1 of each color, rarity amounts, etc, would be amazing! Although while its my main usecase for this, I also completely understand that it may be limited in scope. Definitely something to scout the userbase for to know when to implement it in that specific stage!

  • @thebutcher946
    @thebutcher946 Рік тому +1

    I can't wait to see more, very interested !

  • @devlinmurray5853
    @devlinmurray5853 Рік тому +1

    This is awesome project that you are doing. I have thought about doing this as well because I have about 15k bulk in Pokemon cards I am currently sorting manually. Just subscribed. Looking forward to the finished product.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Thank you for the support and glad to hear you like the project!

    • @devlinmurray5853
      @devlinmurray5853 Рік тому +1

      @@jackbaumgartel I was looking at your wishlist and saw that everything has been purchased. Do you have an updated list? I would like to support you. I also really like the idea of a kit once this is said and done.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@devlinmurray5853 Thank you so much for the support! I'll be sure to add some more items that I need for the project soon. And glad to hear you like the kit option!

  • @KianSheik
    @KianSheik Рік тому +1

    I'm going to make a video of my card sorter now, you've inspired me

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      Heck yeah! Great to hear my friend, let me know when you post it!

  • @blixuk
    @blixuk Рік тому +1

    You could potentially use use a light sensor to measure the amount of reflected light from a normal card vs a foil card. Shining an LED on to the card and having the senor measure the amount of light, with a threshold cutoff. This could give a potential rating if a card if foil or not.

  • @dromeurexe9636
    @dromeurexe9636 Рік тому +1

    Hey there, lovely video and spiffy sweater.
    Note concerning the custom sorting criteria: It would be nice to be able to combine or override criteria. ie slots 1-X sort by card type, but slot X+1 will receive any cards with a value of >$3.
    Also card color vs color identity would be nice for cards with colored activated abilities.
    The most ideal version (in my eyes) would be being able to assign Scryfall-esque criteria to each bin and giving bins priority over others.
    You may have already considered or mentioned the features, so I don't pretend to be having novel ideas.
    Additionally, I have no real experience with software design, and I presume it's not as easy as "make it do Scryfall" 😂
    Super excited to see how it turns out!

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Haha thank you! And I appreciate the input. It should work similarly to what you describe here, where you can set rules for each bin, and decide which bins receive priority if multiple criteria are met. As someone with a little bit of software design experience, it actually looks more like this :)
      {
      while Running:
      do(Scryfall stuff)
      }

    • @reillocb
      @reillocb Рік тому +2

      @@jackbaumgartel there's gotta be a way to gain access to the scryfall api, like archidekt did

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@reillocb I could, but that goes back to the whole “not relying on outside entities for crucial operations” thing

  • @fgregerfeaxcwfeffece
    @fgregerfeaxcwfeffece Рік тому +1

    Since you got the photos anyway I suggest extensive journaling from the start meaning:
    "DEBUG" Should include the image of the card including everything the system managed to read from it.
    This will not just help in development but also be really handy when it comes to processing the error pile. Maybe a card just failed because some insect decided to sit the in just the right moment. Or someone opened the window and the wind blew some debris... In those examples the end user will see: Oh, not the fault of the machine or the card, just bad luck. Or position the machine somewhere where the cat does not want to play with it.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      I appreciate your enthusiasm here! Do you think that processing is worth the extra work? Simply training a ML model to recognize those same scans was much more efficient and reliable than the OCR solution.

    • @fgregerfeaxcwfeffece
      @fgregerfeaxcwfeffece Рік тому +1

      @@jackbaumgartel This seems like a miscommunication. In this case I lumped everything that happens later into processing. Including just putting it in the input stack again.
      I currently know of 2 cases where the CPU temperature of an random embedded device tells you when someone opens a window in an office. So I will never underestimate Environmental Hazards that where not accounted for.
      Because both times it took us very long too find out why this load pattern is so weird. In one case it involved thermal throttling an in the other it was just plain bizarre because the device was 4m away from the window and *double* cased. So no one expected the airflow from the window to have impact this significant. We only found out because we involved more people around at that time in a brainstorming.
      And optical sensors, well, a tiny insect could just sit on the camera(remember, yours will be stationary), the sun (or other light source) might cause weird reflections etc pp. Stuff like that might ruin a random amount of scans that would have worked perfectly under test conditions.
      In my expectations this is more about some unexpected optical edge case that's very limited to the time and location the device will operate. And those events might be really hard to track down without the photos.
      And further: Having more relevant data is always better when handling unexpected messy real life situations.

  • @thrillcell
    @thrillcell Рік тому +1

    Really exciting work! Since the card recognition alone would be really useful, I wonder if it could be built in a modular/service manner. Where it doesn’t necessarily need to be used with the sorter. Where the recognition portion could be used independently if desired? I have a personal project that would be a life saver on

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      Yeah that's a great idea! It would be a bit difficult to get the software working well camera-independent, but certainly would be nice for a lot of people I agree

  • @triforceeternal
    @triforceeternal Рік тому +2

    I am not a programmer but I'll take a guess at how to tackle the Mystery Booster/The List issue with an analogous feature in a speedrunning program called LiveSplit - it matches frames from a given video to determine when to start and stop a timer. If there was a way to scan the entire card image, and then, once the image has been rotated or corrected/normalized, detect for black (non-List card) or non-black (List card) on just that tiny portion of it, hopefully that wouldn't add too much processing time. Maybe there could be a library of List cards that the program cross-references, checks the card name against, and skips this step entirely if a given card isn't on the List?
    As for foils, if there is a light shining directly on each card, a foil card will reflect much more light than a non-foil, then maybe a check for the luminance of the resulting scan might be possible? I figure image processing is a lot harder than I imagine it to be though, so no idea if this has already been done by the larger companies working on the same problem.
    I personally wouldn't mind a "manual review" pile option but that obviously doesn't scale. It sounds complicated but having multiple thresholds of confidence for 'speed' sorting vs 'accurate' sorting (where the 'speed' setting skips the steps for checking set, condition, foil, language and List, etc) might be another option?
    Sorry for the long comment haha, I just spend a lot of time sorting and I like brainstorming about how to make it more efficient :)

    • @jameskassal4777
      @jameskassal4777 Рік тому +1

      The difference between this and LiveSplit is in confidence. LiveSplit compares image data, and if it hits a certain confidence threshold (90%+) then it stops the timer. Now, imagine if you’re trying to apply that logic to a mark on a card that’s millimeters in surface area, with a camera that is ideally rather cheap. It’s unfortunately going to be quite difficult.
      And the issue with your foil idea is that glossy cards can easily become false positives. What would be more effective is trying to isolate the rainbow sheen, but given WotC’s new foiling methods I’m not even sure that’s reliable anymore.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      No need to apologize, I love the enthusiasm and appreciate you taking the time to share your thoughts! What you're describing with LiveSplit sounds very similar to an image recognition technique I tested in an earlier video called Image Hashing. It similarly compares two images based on their pixel values. It worked but wasn't the most effective solution.
      For foils, you're spot on with general reflectivity, but that means an additional sensor, cost, & complexity for the project.
      And one thing that I didn't mention is that the software should store all of the card scans for you to review on a computer, so if there are any in the "rejects" pile you can take a look without needing to actually sift through them. Anyways though I'll be going over more technical details about how I'm solving things in a later video! Thanks again for sharing!

  • @sum1unopk49
    @sum1unopk49 Рік тому +1

    Will the functionality be able to include tokens? I have a 4 row box of tokens that desperately need sorted....
    Love the project so far!! Really looking forward to more news

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Aha I knew I was forgetting a big one! Yes most tokens will fall in with the "Normal" cards, and thus should be covered. The few exceptions may just be some double-sided tokens. Thank you for asking that and I appreciate the kind words!

  • @LolaliciousSmiley
    @LolaliciousSmiley Рік тому +2

    What about the ability to remember the order of cards, so that you could re-feed a sorted stack to sub-sort it faster? My proposed use case is sorting a stack by color, then re-feeding a specific color stack into the machine to sort by rarity. If the sorting machine can remember (or receive input on) the order of the cards in each stack, it can sub-sort without re-scanning each card, which should be faster, I think. If this is going to be used in retail spaces, increased speed becomes more valuable.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Thanks for the input, that’s a great idea. Every time you sort, it will know exactly what is in each resulting pile, so a refeeding option wouldn’t be too difficult to add!

  • @emiyot
    @emiyot Рік тому +1

    i am constantly checking for updates on this project, love it so much and really hope that it will be open source or will at least have the project files for sale.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      Heck yeah thank you for the kind words! Yes I'm planning on selling a kit/DIY version in addition to the ready-to-run model.

    • @emiyot
      @emiyot Рік тому +1

      @@jackbaumgartel is there a time frame you have for when it should be available or at least one you are aiming for?

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@emiyot Online wisdom says that it's ill-advised to launch new products on & around major holidays. (Crowdfunding is the most feasible option for me) So I'm aiming for a launch at the end of January right now. Actual time until delivery would be determined then!

  • @nonlinear3084
    @nonlinear3084 Рік тому +1

    You're doing great. Keep it up

  • @amwence1
    @amwence1 Рік тому +2

    Do you plan on making this project open source, so that we can follow along, or possibly attempt to build our own machines based on the plans you have. Does this have a github page we can follow?

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +2

      Thanks for asking! My two prior code-based videos both had Github repos linked, but I haven't yet committed to moving the whole project open-source. I am planning on offering a kit so you can build your own! (as opposed to having the custom parts machined on your own)

    • @jameskassal4777
      @jameskassal4777 Рік тому +1

      @@jackbaumgartel I believe your best case scenario would be to do it like Ender. Open source everything and distribute kits, as the ease of buying kits far outweighs the minor cost benefit of making them from scratch, especially as the average user won’t have access to the means to fabricate it.
      Especially the model, as I’d love to train it on identifying custom proxies for Cube!

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@jameskassal4777 Thanks for the input!

    • @thrillcell
      @thrillcell Рік тому +2

      @@jackbaumgartel I would absolutely love to play with the code after the initial launch! I was hoping to create my own catalog/ingestion system where I could open packs on my desk by hand, but the biggest missing piece is the card recognition.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@thrillcell Great to hear, and yeah the card recognition tends to be the tricky part!

  • @Jaryth000
    @Jaryth000 Рік тому +1

    Surprised Error Handling and Confidence is 4th on that list, and not second. Having export and sorting options is also a must, don't me wrong, but if the output is unreliable (incorrect cards, low confidence) it’ll be unusable, as you’ll have to manually go through and verify the results anyway to be sure, defeating the purpose. Really feels that 4 and 2 should be swapped.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Yeah that’s fair! Practically, I wouldn’t release anything that doesn’t have 1-5 fully functioning, so in my head the exact order of the first few didn’t matter as much

    • @Jaryth000
      @Jaryth000 Рік тому +1

      @@jackbaumgartel Thats kinda what I had figured honestly

  • @jpcontrerasv
    @jpcontrerasv Рік тому +1

    Keep the great work!

  • @ek3203
    @ek3203 Рік тому +1

    good luck!

  • @nickybeingnicky
    @nickybeingnicky Рік тому +1

    Love this project! Keep up the good work!!

  • @brendand3765
    @brendand3765 Рік тому +4

    I am a but sadden by how low the priority for non English cards is, as a European they are very present here. But I also understand the challenges, it could make any OCR solution way more difficult. It seems a solution used by other programs is to focus on the illustration instead, but that's probably harder than text.
    Anyways I am happy to see the focus you put on project management and scoping, often an under rated part of a project

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +2

      I'm sorry about that as well. I initially had it higher on the list, but lowered it after learning a bit more about what it would take. (~70,000 unique english printings vs. ~360,000 unique international printings) It's a challenge I'm excited to tackle, I just want to get the program on it's feet before expanding the scope by that much.

    • @brendand3765
      @brendand3765 Рік тому +2

      Maybe splitting the feature to :
      1. Recognize a Llanowar Elves even if it's in German
      2. Recognize that the card is in German
      Could help make the feature more accessible.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @William Uniac Thanks for sharing!

  • @KianSheik
    @KianSheik Рік тому +1

    Such a coincidence that we both started building card sorting robots at the same time. My goals are very similar to yours, but I'm going a gantry style system with suction, the extract opposite hahah. I think maybe if we work together on the vision we can get better results because that code is reusable. I'm planning for my design to be completely open source so you're welcome to use my vision code if you'd like to try it

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      I appreciate it, I’m focussing more on the hardware right now for mine, but I’ll keep that in mind as I get into the software side

    • @yam3880
      @yam3880 Рік тому +1

      Hello , I'm also trying to build one !! But with the same system as the youtuber ! Is your vision code working ?

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@yam3880 Glad to hear you're building one too! I've got parts & pieces together of the computer vision but haven't put everything together yet

  • @fgregerfeaxcwfeffece
    @fgregerfeaxcwfeffece Рік тому +1

    Without international support OCR alone should get very good results.
    Offline OCR has REALLY good results nowadays with "artificial text". I used "tesseract".
    Export to real open standards like CSV or JSON should be trivial. About every language has JSON libs by now. However I suggest something with at least some typing.* To avoid surprises in data structure. Like 1/0 randomly switching with true false and "true" "false".)*
    Bogus proprietary formats like MsOffice however are still Voodoo. Yeah, you can dance and pray to the swamp god. But the results may vary don't expect something close to reliable.
    What do you expect under "more"?
    *Javascript or PHP are example outliers here. Mostly to ensure the output will match the format the existing inventory system expects. Without that compatibility requirement, whatever PHP for example would produce would be consistent enough.

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Thanks for the input, I actually already tried using Tesseract OCR with disappointing results. ua-cam.com/video/8nltbbyOI6Y/v-deo.html

    • @fgregerfeaxcwfeffece
      @fgregerfeaxcwfeffece Рік тому +1

      @@jackbaumgartel Oh, yeah, I actually forgot about printings of same named cards in different sets and how relevant that might be.
      But something I found that you seem to have underestimated in that video:
      Cropping the image has an unintuitively high impact on accuracy. So you should give cropping specific sections a try when in doubt.
      I assume it has to do with contrast statistics that have complex interactions that get vastly simplified if there are less pixels total.

  • @GeeksJocks
    @GeeksJocks Рік тому +1

    Great video bro 😊

  • @punpun8910
    @punpun8910 Рік тому +1

    Would this work for other TCGs or only MTG?

    • @jackbaumgartel
      @jackbaumgartel  Рік тому +1

      Magic is my main priority right now. Once the project is off the ground and things are going well, I'll definitely look to expand towards other TCGs!

    • @punpun8910
      @punpun8910 Рік тому +1

      @@jackbaumgartel okay 👌 good to hear boss man

  • @mojoturner5292
    @mojoturner5292 Рік тому +1

    One of the sorting mechanisms could be number piles or alphabetized....this would be great for collectors to put cards in order.

    • @mojoturner5292
      @mojoturner5292 Рік тому +1

      Additionally, if you set up a Kickstarter, many of us would be interested...:)

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@mojoturner5292 Great to hear, thanks for the support!

    • @mojoturner5292
      @mojoturner5292 Рік тому +1

      Have you thought about a pricing model? Or once you get all together, selling the kit?

    • @jackbaumgartel
      @jackbaumgartel  Рік тому

      @@mojoturner5292 Not sure exactly what you mean by a pricing model, but yes I certainly plan on selling the full machine and a kit!

    • @mojoturner5292
      @mojoturner5292 Рік тому +1

      @@jackbaumgartel I mean that you could price an entry model with 5 sorters for (x), 7 sorters for (×+), and 9 sorters for (×++). Think iPhone like a base model with addons.