cardstream
Features

Card analysis for streamers. Fast & Accurate.

cardstream is a state machine wrapped around a card identification endpoint. Everything below either makes the identification better, or makes sure it only happens when it is actually worth paying for.

Recognition

Real-Time Card Identification from Any Stream

Four identification endpoints behind one switch — trading card games, sports cards, graded slabs and comics.

The whole match, flattened

Name, full name, set, set code, card number, series, year and subcategory arrive as one object per identified card — ready to read out, log or push into your own tooling.

Confidence you can act on

Every match carries the raw distance and a High / Medium / Low tier (cutoffs at 0.18 and 0.30). Set a result threshold and cards below it never reach the overlay.

Alternative matches

Every result comes with up to four other cards it could have been. If the top match is wrong, the right one is usually in that short list.

Prefills that narrow the search

Tell it the game, the set code or the writing system and the endpoint stops guessing them. Values are validated locally — a typo fails on your machine instead of quietly returning the wrong print.

Category per show

One flag, or the settings dialog mid-stream: tcg, sport, slab or comics. Switching drops any prefill the new category does not know rather than sending it a value it cannot use.

Front, back and rotation

Known attributes go out with the crop so the endpoint skips classifiers it does not need — fewer things to get wrong, faster answers.

The decision engine

Fast live streaming analysis with AI

One state machine, shared by both deployment shapes. Everything here runs on your own CPU, before anything leaves the machine.

Motion gate

A mean frame-diff says whether the scene has settled. Nothing downstream fires while the card is still moving through the frame.

Identity gate

Each card in the frame is compared with the previous one by an AI model via embedding. It answers one question — same card, or new card?

Three-tier detection throttle

Detection runs often while something is moving, rarely on a static card, and barely at all on an empty mat. The tiers are per-side config, not code.

Cooldown, no-retry, forget-after

A card that failed to match is not retried on a loop; a card held in frame is not re-identified; a card gone long enough is analysed fresh when it comes back.

Call guard and watchdog

One identification in flight at a time, with a minimum interval and a timeout that unsticks the pipeline if the endpoint hangs. A slow call never stalls the stream.

Superfast results

The AI models behind cardstream run on your personal computer. The system is very fast and you do not need any GPU.

Inputs

Supported video sources & types

Sources are pluggable; the analysis is identical whichever one you pick.

Cameras and files

A webcam index, a video file, a still image, or the browser webcam when you run the web UI. Good for testing a setup before the show.

Pull: RTSP, RTMP, SRT

Point it at an IP camera, an encoder or a restreamer and it pulls, with capped backoff reconnects when the feed drops.

Push: OBS straight in

Run it as a listener and let OBS push RTMP or SRT to it — one extra output next to the one feeding your marketplace.

WebSocket JPEG feeds

For homemade rigs: any process that can send JPEG frames over a socket is a valid source.

Three resolution knobs

What the camera captures, what gets sent, and what gets analysed are separate numbers. Analysis runs small and cheap; the crop that goes out for identification is re-cut from the full frame.

Frames stay yours

In client-side mode nothing leaves the machine except one JPEG crop per distinct card — not the stream, not the frames around it.

Models

Our weights, or yours

Analyse live streams with our prepared model for CPU. Need higher accuracy or extreme speed? Train your own and deploy it on GPUs!

RF-DETR segmentation

The default locator: a finetuned instance-segmentation .onnx export through onnxruntime, no torch required. The mask gives the card’s four corners, so the paid crop is deskewed and cut tight at the card edge.

RF-DETR / RT-DETRv2 detection

Bounding boxes as the opt-in alternative — ONNX for speed, or a transformers directory / hub id when you are still iterating on a finetune.

Weights included

The RF-DETR locator and the embedding model are trained by Ximilar and published Apache-2.0 — the installer fetches them, so there is no training step between you and a working pipeline.

Embedder backends

Torch, ONNX or LiteRT/TFLite embedding models for the same-card gate — run whichever runtime you already have on the machine.

Heavy imports stay lazy

Torch is not a dependency of the core. Install only the extras your backends need and everything else still runs.

Any identification service

The identification call is one swappable step. Point it at Ximilar, at a proprietary recogniser, or at a model you host yourself.

Running it

One process, next to the camera

Detection and the gates run on your machine, from a single installable package, and the one identification call goes straight from it to the API.

Two entrypoints, one pipeline

A headless command for rigs and scripts, and a local browser UI when you want to watch it work. Both take the same flags and build the same pipeline.

One credential, held locally

Your Ximilar key, read from the environment on your own machine. No account to create here, no middle tier to trust, nothing to keep running but the process itself.

Nothing blocks the loop

JPEG decode, detection, HTTP and disk writes all run off the event loop. A slow frame is dropped, not queued into a growing lag.

Live settings dialog

Thresholds, category, game, set code and writing system are retunable from the browser mid-stream — and every control is generated from one descriptor list, so the UI and the validation cannot drift.

An overlay built for streams

State badge, bounding box, and a history of every card you showed with the time it stayed in frame. A debug panel when you want to see the gates thinking.

Offline test suite

The whole suite runs without a network or a model file — fakes for the ONNX sessions and the detectors. Fork it and you can still tell if you broke something.

Open source. Self-hosted. Your stream, your stack.

No platform in the middle, no seat licence: connect the Ximilar API or your own identification system, and cardstream calls it once per distinct card instead of once per frame. Whether you're breaking on Whatnot, running a Fanatics Live-style show, or streaming your own live commerce setup, run cardstream tonight on the hardware you already have.