Nothing on the table yet
The cards show up here by themselves as soon as they are played.
Your deck and your hand are your own. What you play onto the table is seen by everyone in the game — without anyone having to type anything in.
Without an account everything is saved only in this browser, and you cannot invite anyone. You can sign in later.
Starting the camera…
The cards show up here by themselves as soon as they are played.
Drag a screenshot here from Finder, paste with ⌘V, or pick a file. Mesa reads every player's table and makes one tab per video pane.
Your hand is replaced by whatever is found. To just add cards, close this view and paste among the cards instead.
The camera recognises cards against your deck — a hundred or so candidates instead of thirty thousand. That is the difference between recognition that works and a stream of unsure cards.
Don't photograph the basic lands. Fill those in as counts once the list has started to grow — the camera recognises a Mountain by its symbol anyway, and looks among twenty-four printings of each land no matter which one you own.
You can also drop the photo in this window, or paste it with ⌘V. Open Mesa on your phone to shoot directly.
It opens this deck on the phone. Photos you take there are read and saved to your account, and show up in this list.
Don't photograph these — fill in the counts. The camera recognises a basic land by its symbol.
Drag the frame so it covers the cards and no table. The frame is the resolution: twenty percent table is twenty percent of the title line.
Have the deck digitally? Paste it here. Exports from Moxfield, Arena, MTGO, Archidekt, TappedOut and Deckstats work as they are — one card per line, a count before the name, a set code after, and a Sideboard section if you have one.
One card name per line. A count in front works (2 Sol Ring, 1x Llanowar Elves), as does a set suffix from decklists (Sol Ring (LTC) 268). Typos are corrected automatically where possible.
Scan the code with your phone's camera — nothing to install. You sign in with the same account, and the phone becomes your camera in this game. Put it in a holder straight above your cards, and keep the deck and the graveyard out of the picture.
Hover the pile on the table to fan the cards out.
A picture of one or more cards — a cropped screenshot, a photo, a card image from the web. Whatever is found is added to your hand; what's already there is left alone.
How Mesa reads a screenshot: it first looks for the video panes (black gaps separate them),
then for dark card borders against the light table in each pane, and finally matches every hit against the set's image signatures.
Only cards that match clearly are added automatically — the rest end up in the confirm row at the top.
Matching happens against a limited set (⋯ → Card pool). That is what makes it work:
780 cards can be told apart visually, all 30,000 MTG cards cannot.
Card data and images come from Scryfall.
Everything is stored in this browser only.
Scanning matches against a limited set — that is why it works. 780 cards can be told apart visually; 30 000 cannot. Pick the set you are playing with.
The index is built once per set: ~780 card images are fetched from Scryfall, get a 528-byte image signature, and are stored locally. Takes about half a minute and never has to be redone.
Local recognition handles most cards on its own. For the ones it isn't sure about, an image model can decide — it sees the cropped card and the best candidates, and picks one.
Looking for the players' panes in the image…