Show HN: Cardcast.gg – Play paper Magic: The Gathering over webcam
cardcast.ggI've been building https://cardcast.gg, a web app for playing paper Magic: The Gathering remotely. You point a webcam at your play area and it identifies cards as you put them down. It's an alternative to Spelltable that I built for my friend group to play weekly with.
The main technical difference is detection. Spelltable uses perceptual hashing; cardcast uses modern ViT backbones so it's much faster and more accurate. If you import a decklist from Moxfield, Archidekt, or MTGGoldfish, the search narrows to that deck's card pool, greatly reducing false-positives.
What I have so far:
- Feature-parity with Spelltable. - No signup. Create a game, share the link, play (< 30s to get going). - Life totals, monarch tracking, initiative, turn timer, card info on hover. - Runs in-browser, WebRTC for video/audio, detection happens server-side per request.
Where I want to go with it:
- Push the inference to the client-side (WebGPU / Web Workers). - (provided above works well) Constantly detect cards in an AR-like overlay. - Build more-card intelligence into the product to avoid having to google things mid-game. (main cause of slowness in our pod)
Why I'm posting: the core works and my pod uses it weekly, but I'd like to find a few more enthusiastic users who want to contribute or help shape the roadmap — whether that's code (Python/FastAPI + React/TS), CV work, or just playing regularly and telling me what's broken.
Try it: https://cardcast.gg Discord: https://discord.gg/axRtvbsfAU
Happy to dig into the detection pipeline, hosting economics (Oracle free tier has been super awesome for this!), or anything else in the comments. It's been super fun and educational building this project, now I'm hoping you share it with you all. :) Oh cool! I've been doing similar experiments lately (using ViT's) to do card recognition, and so far it's been working really well for me. If you want to compare notes, I've open-sourced my code / weights [0] and written some blogs about how mine works [1]. I'd love to see if we can collaborate! > Push the inference to the client-side (WebGPU / Web Workers). I have an example of this working in webgpu / wasm here [2] along with a playground environment (demonstrated here [3]). I'm currently training a new version that uses a different ViT backbone more optimized for WASM inference -- it's currently converging, and I hope to have it finish training (or at least reach parity with the previous model) in about a week (took ~200 epochs for my last one to reach the level that it's at, and it takes about an hour per epoch in my current setup). You mentioned WebGPU -- I've run into issues with the MobileViT-XXS backbone producing bad results in WebGPU on Android, so YMMV in whether or not WebGPU is stable enough to use for this or not. I don't know if it's my problem or a true bug in the platform, but I've fallen back to WASM and things are working much better since then. [0] - https://github.com/HanClinto/CollectorVision [1] - https://blog.hanclin.to/posts/gh-19/