Featured Project

pkr.img

Chip photo → payouts. A web app that tracks player stacks and generates a minimal settlement graph.

Next.js FastAPI SQLAlchemy Roboflow SAM3 (fine-tuning)
pkr.img preview

What it does

Tracks chip stacks and computes payouts automatically.

Why it matters

Removes end-of-night math + reduces payment transfers.

What I built

Full-stack MVP + CV pipeline in progress.

Computer Vision: SAM3 Fine-Tuning (Roboflow)

Training a segmentation model to automatically detect chip stacks from photos.

Detection / Segmentation Output
SAM3 segmentation output for poker chips
Example prediction: chip masks overlaid on a real table image.

Pipeline

  • Labeled chip instances in Roboflow (segmentation masks).
  • Exported dataset + splits (train/val/test) for model training.
  • Fine-tuned SAM3 as the base segmentation model for chip masks.
  • Post-processing to compute chip counts and per-player totals.

Why SAM3?

Poker chip detection is challenging due to cluttered table scenes, overlapping chips, reflections, and variable lighting. Bounding-box detectors often fail to cleanly separate individual chips under occlusion.

SAM3’s segmentation-first approach produces cleaner chip boundaries in these cases. Fine-tuning the model on a Roboflow-labeled dataset allows it to adapt to chip colors and lighting while preserving strong generalization, enabling reliable downstream counting and valuation.

Architecture

Simple MVP stack — easy to extend.

  • web/ Next.js UI + routing
  • api/ FastAPI endpoints + SQLAlchemy models
  • db SQLite (upgrade path to Postgres)

System architecture diagram

Next

What I’m improving.

Better counting + calibration

Map masks → chip values reliably across angles/occlusions.

Realtime host dashboard

Push updates instantly when players resubmit photos.