Тёмный

Software Scoping the MTG Sorter 

Jack Baumgartel
Подписаться 5 тыс.
Просмотров 3,2 тыс.
50% 1

Email List Signup: forms.gle/PhGeMd3evfK27uaq5
My last video sparked quite a few comments asking about the software's planned features, so here are my answers! I apologize this video doesn't show any real progress on the project, but I think it's still important to define my feature scope outright, even if the priorities listed here change as the project evolves. To clarify, I don't plan to include all items listed here immediately. Items 7 & onwards will likely come as updates post-launch. One item I also forgot to mention is the potential to add recognition for other TCGs. Once I get the software & hardware working well for Magic cards, I'll definitely be looking to expand support for Pokemon, Yu-Gi-Oh and more.
Also I know it's been a few weeks since my last upload, but I should be able to share updates more regularly from here on out. On another note I've changed the video background to some more neutral colors and rebalanced my audio a bit. Both of those changes came from suggestions in my comments, so please feel free to keep that feedback coming. :) I appreciate all the views I've been getting and I'm super excited to continue developing this for the community!
Chapters
0:00 Intro & Overview
0:54 Feature List
4:00 Priorities
6:20 Outro

Опубликовано:

 

3 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 97   
@sealard9635
@sealard9635 Год назад
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 Год назад
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 Год назад
@@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 Год назад
I agree about future creep, but it could also be a entry lever (5-6 features), mid (8-10 features), top (10+ features). Etc.
@Varler_
@Varler_ Год назад
Excited to hear about more progress! Thanks for keeping us updated on this amazing project! :)
@jackbaumgartel
@jackbaumgartel Год назад
You're welcome, thanks for the kind words!
@ReidFisher86
@ReidFisher86 Год назад
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 Год назад
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 Год назад
@@jackbaumgartel I think it was when they implemented the M15 frame?
@Zaezar
@Zaezar Год назад
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 Год назад
Heck yeah that's great to hear! I'm certainly excited working on it as well!
@blixuk
@blixuk Год назад
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.
@politikh
@politikh Год назад
Very interesting project! Thank you for keeping us informed and happy coding!
@jackbaumgartel
@jackbaumgartel Год назад
Thank you!
@TheeBuddylee
@TheeBuddylee Год назад
Exciting series and project. Thanks for the clarity
@jackbaumgartel
@jackbaumgartel Год назад
You're welcome, thank you for the kind words!
@lucaslopera8983
@lucaslopera8983 Год назад
love the updates and the work, best of luck going forward!
@jackbaumgartel
@jackbaumgartel Год назад
Thank you, I appreciate it!
@valkaerion
@valkaerion Год назад
Definitely excited to see how this project comes along and agree with the priority list of features 👍
@jackbaumgartel
@jackbaumgartel Год назад
Great to hear, thanks for the support!
@TraeKryzer
@TraeKryzer Год назад
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 Год назад
@@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 Год назад
@@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
@fgregerfeaxcwfeffece
@fgregerfeaxcwfeffece Год назад
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 Год назад
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 Год назад
@@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.
@reillocb
@reillocb Год назад
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 Год назад
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 Год назад
I can't wait to see more, very interested !
@jackbaumgartel
@jackbaumgartel Год назад
Thank you!
@devlinmurray5853
@devlinmurray5853 Год назад
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 Год назад
Thank you for the support and glad to hear you like the project!
@devlinmurray5853
@devlinmurray5853 Год назад
@@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!
@804robiccc
@804robiccc Год назад
Looking forward to being able to get one
@jackbaumgartel
@jackbaumgartel Год назад
Great to hear!
@KianSheik
@KianSheik Год назад
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!
@nonlinear3084
@nonlinear3084 Год назад
You're doing great. Keep it up
@jackbaumgartel
@jackbaumgartel Год назад
Thank you, I appreciate it
@dromeurexe9636
@dromeurexe9636 Год назад
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 Год назад
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 Год назад
@@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
@LolaliciousSmiley
@LolaliciousSmiley Год назад
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 Год назад
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!
@jpcontrerasv
@jpcontrerasv Год назад
Keep the great work!
@jackbaumgartel
@jackbaumgartel Год назад
Will do, thank you!
@GeeksJocks
@GeeksJocks Год назад
Great video bro 😊
@jackbaumgartel
@jackbaumgartel Год назад
Thanks! :)
@nickybeingnicky
@nickybeingnicky Год назад
Love this project! Keep up the good work!!
@jackbaumgartel
@jackbaumgartel Год назад
Thank you, and will do!
@ek3203
@ek3203 Год назад
good luck!
@jackbaumgartel
@jackbaumgartel Год назад
Thank you!
@emiyot
@emiyot Год назад
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 Год назад
@@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!
@thrillcell
@thrillcell Год назад
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 Год назад
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 Год назад
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!
@fgregerfeaxcwfeffece
@fgregerfeaxcwfeffece Год назад
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 Год назад
Thanks for the input, I actually already tried using Tesseract OCR with disappointing results. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8nltbbyOI6Y.html
@fgregerfeaxcwfeffece
@fgregerfeaxcwfeffece Год назад
@@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.
@KianSheik
@KianSheik Год назад
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 Год назад
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
@brendand3765
@brendand3765 Год назад
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 Год назад
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 Год назад
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!
@sum1unopk49
@sum1unopk49 Год назад
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 Год назад
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!
@Jaryth000
@Jaryth000 Год назад
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 Год назад
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 Год назад
@@jackbaumgartel Thats kinda what I had figured honestly
@mojoturner5292
@mojoturner5292 Год назад
One of the sorting mechanisms could be number piles or alphabetized....this would be great for collectors to put cards in order.
@mojoturner5292
@mojoturner5292 Год назад
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 Год назад
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 Год назад
@@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.
@amwence1
@amwence1 Год назад
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 Год назад
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 Год назад
@@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 Год назад
@@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!
@punpun8910
@punpun8910 Год назад
Would this work for other TCGs or only MTG?
@jackbaumgartel
@jackbaumgartel Год назад
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 Год назад
@@jackbaumgartel okay 👌 good to hear boss man
Далее
AI Learns Magic the Gathering Cards
5:43
Просмотров 10 тыс.
Top 10 Worst Alternate Win Conditions
17:25
Просмотров 204 тыс.
Penalty: Portugal - Slovenia
02:03
Просмотров 1,3 млн
UK Election charts are a nightmare
28:16
Просмотров 140 тыс.
ScanSnap And Quicklist
10:21
Просмотров 4,1 тыс.
Magic-Sorter is fixed
12:14
Просмотров 179
Penalty: Portugal - Slovenia
02:03
Просмотров 1,3 млн