optcg-deck-builder / README.md
t22000t's picture
Initial commit: optcg-deck-builder Gradio Space
16eaadc
---
title: OPTCG Deck Builder
colorFrom: red
colorTo: blue
sdk: gradio
sdk_version: 5.49.1
python_version: "3.12"
app_file: app.py
pinned: false
license: mit
short_description: Auto-build legal 50-card One Piece TCG decks
---
# OPTCG Deck Builder
Pick any **Leader** from the [optcg-en-card-embeddings](https://huggingface.co/datasets/t22000t/optcg-en-card-embeddings) dataset and the Space generates a legal 50-card OPTCG deck around it. The ranker layers OPTCG deckbuilding rules on top of the Qwen3-Embedding-derived synergy score:
- **Color legality** - every card shares at least one color with the Leader.
- **Family bonus** - cards in the Leader's family (Straw Hat Crew, Marines, etc.) get a +0.10 synergy boost so they outrank merely-similar off-archetype options.
- **Copy cap** - each card appears at most 4 times (the OPTCG standard).
- **Cost curve targeting** - one of three style presets shapes how slots are distributed across costs.
Sister Space: [OPTCG Card Explorer](https://huggingface.co/spaces/t22000t/optcg-explorer) - semantic search, UMAP scatter, similar-cards browser.
## Style presets
Each preset is a target distribution that sums to 50 cards. The builder fills cost buckets in order, and any deficit at the end spills into a backfill pass over remaining top-synergy cards (so the total is *always* 50).
| Cost | aggro | midrange | control |
|--------|------:|---------:|--------:|
| 1 | 4 | 0 | 0 |
| 2 | 12 | 6 | 4 |
| 3 | 12 | 10 | 8 |
| 4 | 8 | 10 | 8 |
| 5 | 6 | 8 | 8 |
| 6 | 4 | 8 | 8 |
| 7 | 2 | 4 | 6 |
| 8+ | 2 | 4 | 8 |
## What the Space does *not* do
- No archetype/strategy detection (it does not know that, say, "Monkey.D.Luffy / OP01-001" is the aggro leader).
- No banlist or meta awareness.
- No card art (this is a structured-data / text-only project by design - see [parent project](https://github.com/timothy22000/optcg-cards) for the IP rationale).
- The result is a sketch you tweak, not a tournament-ready list.
## Configuration
- `HF_TOKEN` (Space secret) - required only while the source dataset stays private.
## Development
```bash
pip install -r requirements.txt
export HF_TOKEN=hf_... # only if the source dataset is private
python app.py
```
```bash
pytest -v # 21 hermetic tests
```
## License
MIT. Card data via the [vegapull](https://github.com/Coko7/vegapull) scraper. Not affiliated with Bandai or the One Piece Card Game.