DRAW 2 (which stands for Detect and Recognize A Wide range of cards version 2) is an object detector trained to detect Yu-Gi-Oh! cards in all types of images, and in particular in dueling images.
This project is the plugin part of the DRAW 2 system. It allows users to seamlessly integrate the detector directly into their live streams or recorded videos; and those without any particular technical skills. The plugin can display detected cards in real time for an enhanced viewing experience. The python backend project is available here.
This project is licensed under the GNU Affero General Public License v3.0; all contributions are welcome.
🃏 Latest card pool:
CORI--- last updated13-06-2026
🔧 Latest app version:0.2.1-beta--- last updated01-06-2026
| Date | Type | Description |
|---|---|---|
| 13-06-2026 | 🃏 Card Pool | Card pool updated --- now supports cards up to Chaos Origins |
| 01-06-2026 | 🔧 App Update | Released version 0.2.1-beta --- see release notes |
| 18-05-2026 | 🃏 Card Pool | Card pool updated --- now supports cards up to Blazing Dominion |
| 06-04-2026 | 🃏 Card Pool | Card pool updated --- now supports cards up to Maze of Muertos |
| 06-04-2026 | 🔧 App Update | Released version 0.2.0-beta --- see release notes |
| 09-03-2025 | 🔧 App Update | Released version 0.1.5-alpha --- see release notes |
| 24-08-2025 | 🃏 Card Pool | Card pool updated --- now supports cards up to Justic Hunter |
Follow the installation instruction depending on your operating system so everything works smoothly:
🪟 Windows
-
Download the plugin installer from this link: DRAW2 Plugin Installer
-
Run the installer and follow the on-screen instructions.
-
Once the installation is complete, launch OBS Studio. If everything is set up correctly, you should see in the
Docksmenu a new option calledDraw 2. You can activate the dock and dock it wherever you want.
The installation is complete, you can enjoy detecting !
🐧 Linux
-
Download the plugin installer from this link: DRAW2 Plugin Installer
-
Either run the installer by double-clicking it, and click install OR by launching the command:
sudo apt install ./draw2-plugin-0.2.1-x86_64-linux-gnu.deb
-
Once the installation is complete, launch OBS Studio. If everything is set up correctly, you should see in the
Docksmenu a new option calledDraw 2. You can activate the dock and dock it wherever you want. The installation is not complete yet, the plugin is installed, but you still need to install python backend, close OBS and follow next steps. -
If you already have a python installation you want to use you can pass this step. Any python installation with
drawpackage installed can work. We will use a self-contained CPython. A relocatable build from python-build-standalone:# pick the install_only build for your arch (x86_64 for Intel and AMD cpu) curl -fL -o python.tar.gz https://github.com/astral-sh/python-build-standalone/releases/download/20261009/cpython-3.13.16+20261009-x86_64-unknown-linux-gnu-install_only.tar.gz mkdir -p ~/.draw2-runtime && tar -xzf python.tar.gz -C ~/.draw2-runtime
-
Install
drawbackend (make sure git is installed):~/.draw2-runtime/python/bin/python -m pip install "git+https://github.com/HichTala/draw2@obs-plugin"
-
In the Draw 2 settings, set Select Python installation to the prefix folder (the one that contains
bin/andlib/), e.g.~/.draw2-runtime/python. Expected layout:<prefix>/bin/python <prefix>/lib/python3.13/site-packages/draw
The installation is complete, you can enjoy detecting !
🍏 MacOS
-
Download the plugin installer from this link: DRAW2 Plugin Installer (macOS build hasn't been released yet, we're currently working on it, it will be released soon, you can still run the plugin by building it from source)
-
Run the installer by double-clicking it, there you should see a popup telling you that apple could not verify the plugin, there you can click done, then go your settings a search for
Privacy & Security, scroll down until you see"draw2-plugin....pkg" was blocked to protect your Mac, here clickOpen AnywayandOpen Anywayagain and follow the on-screen instructions. -
Once the installation is complete, launch OBS Studio. If everything is set up correctly, you should see in the
Docksmenu a new option calledDraw 2. You can activate the dock and dock it wherever you want. The installation is not complete yet, the plugin is installed, but you still need to install python backend, close OBS and follow next steps. -
If you already have a python installation you want to use you can pass this step. Any python installation with
drawpackage installed can work. We will use a self-contained CPython. A relocatable build from python-build-standalone:# pick the install_only build for your arch (aarch64 for Apple Silicon) curl -fL -o python.tar.gz https://github.com/astral-sh/python-build-standalone/releases/download/20261009/cpython-3.13.16+20261009-aarch64-apple-darwin-install_only.tar.gz mkdir -p ~/.draw2-runtime && tar -xzf python.tar.gz -C ~/.draw2-runtime
-
Install
drawbackend (make sure git is installed):~/.draw2-runtime/python/bin/python -m pip install "git+https://github.com/HichTala/draw2@obs-plugin"
-
In the Draw 2 settings, set Select Python installation to the prefix folder (the one that contains
bin/andlib/), e.g.~/.draw2-runtime/python. Expected layout:<prefix>/bin/python <prefix>/lib/python3.13/site-packages/draw
The installation is complete, you can enjoy detecting !
When the plugin is installed and the model weights are downloaded, you can launch OBS Studio.
- Open the
Docksmenu and selectDraw 2to activate the plugin dock. - In the Draw 2 dock, you can configure the plugin settings by clicking on the gear icon next to
Start DRAWbutton:- Select Python installation: Path to the Python prefix that has the
drawbackend installed (the folder containingbin/andlib/). Must be a full Python install, not a virtualenv. See the macOS setup section for details. - Select Deck Lists: Choose the deck list file(s) with the cards you want to detect — up to 3.
To add deck lists, click
Open Folderand drop your.ydkfiles into the opened folder. - Minimum Out of Screen Time: The minimum time a card just detected can be displayed again.
- Minimum Screen Time: The minimum time a card is displayed.
- Confidence Threshold: Set the minimum confidence level for card detection. Detections below this threshold will be ignored.
- Advanced features (all off by default): opt-in toggles. Enable one here, then configure it where noted.
- Enable two players — adds a Player 2 set of deck lists and runs a separate detector per player, so two players can be processed at once. Leave it off for a single-player setup.
- Enable detector input crop — adds Crop (Left/Top/Right/Bottom, px) fields to the
Draw Displaysource, to focus detection on the region where cards are placed. - When crop is enabled, the source also gains a Preview detector input toggle: turn it on to make the source render the cropped frame it feeds the detector (so you can dial in the crop right in the source's preview), then turn it off to go back to showing detected cards.
- Enable debug logging — surfaces verbose diagnostics: the dock log shows the exact backend launch (resolved deck paths, channel, thresholds) and every backend line unfiltered, and the OBS log gets the capture details (input source, dimensions, crop). Handy when detection isn't behaving.
- Select Python installation: Path to the Python prefix that has the
- The plugin provide a new source called
Draw Display. You can add it to your scene like any other source. This source will display the detected cards on the screen. You can choose what source/scene to detect cards from. With two-player mode enabled, use the Detector / Player property on the source to pick which detector it reads from (Player 1 or Player 2); add oneDraw Displayper player to show both at once. - Click the
Start DRAWbutton to start the detection process. The plugin will start detecting cards in real time and display them on the screen using theDraw Displaysource. The plugin start detecting from the moment you see theStop DRAWbutton. If you don't see it something went wrong. - In the other case you can enjoy the plugin!
Here is a small overview :)
🪟 Windows
Coming soon 👀
🐧 Linux
-
Install the build prerequisites with Homebrew:
sudo apt update sudo apt install -y cmake
-
Clone the source:
git clone https://github.com/HichTala/draw2-plugin cd draw2-plugin -
Configure and build:
cmake --preset linux cmake --build build_linux --config RelWithDebInfo
-
The built plugin bundle is produced at:
build_linux/RelWithDebInfo/ -
Install it by copying the bundle into your OBS plugins folder, then restart OBS:
# adapt the path depending on your obs installation sudo cp -r release/RelWithDebInfo/* /usr/
Once OBS restarts, the plugin appears as
Draw 2in theDocksmenu.
The plugin runs the draw backend as a separate Python process, it does not
embed an interpreter. You provide a Python installation that has the draw
package, and the plugin launches <prefix>/bin/python and communicates with it
over shared memory.
The Python you point to just needs
bin/pythonand thedrawpackage importable. Any reasonably recent Python 3 works, it does not have to match the plugin's build. A self-contained CPython is the easiest to set up if you don't have a python installation already
-
You can refer to this repo to get a self-contained CPython python-build-standalone
-
To install the
drawbackend use theobs-pluginbranch, that is the one that exposes the entry point the plugin launches (the defaultmainbranch is the standalone CLI):~/.draw2-runtime/python/bin/python -m pip install "git+https://github.com/HichTala/draw2@obs-plugin"
-
In the Draw 2 settings, set Select Python installation to the prefix folder (the one that contains
bin/andlib/), e.g.~/.draw2-runtime/python. Expected layout:<prefix>/bin/python <prefix>/lib/python3.13/site-packages/draw
🍏 MacOS
-
Install the build prerequisites with Homebrew:
brew install cmake ccache coreutils jq xcbeautify
You also need a recent Xcode (with its command line tools).
-
Clone the source:
git clone https://github.com/HichTala/draw2-plugin cd draw2-plugin -
Configure and build:
cmake --preset macos cmake --build build_macos --config RelWithDebInfo
-
The built plugin bundle is produced at:
build_macos/RelWithDebInfo/draw2-plugin.plugin -
Install it by copying the bundle into your OBS plugins folder, then restart OBS:
mkdir -p "$HOME/Library/Application Support/obs-studio/plugins" cp -R build_macos/RelWithDebInfo/draw2-plugin.plugin \ "$HOME/Library/Application Support/obs-studio/plugins/"
Once OBS restarts, the plugin appears as
Draw 2in theDocksmenu.
The plugin runs the draw backend as a separate Python process, it does not
embed an interpreter. You provide a Python installation that has the draw
package, and the plugin launches <prefix>/bin/python and communicates with it
over shared memory.
The Python you point to just needs
bin/pythonand thedrawpackage importable. Any reasonably recent Python 3 works, it does not have to match the plugin's build. A self-contained CPython is the easiest to set up if you don't have a python installation already
-
You can refer to this repo to get a self-contained CPython python-build-standalone
-
To install the
drawbackend use theobs-pluginbranch, that is the one that exposes the entry point the plugin launches (the defaultmainbranch is the standalone CLI):~/.draw2-runtime/python/bin/python -m pip install "git+https://github.com/HichTala/draw2@obs-plugin"
-
In the Draw 2 settings, set Select Python installation to the prefix folder (the one that contains
bin/andlib/), e.g.~/.draw2-runtime/python. Expected layout:<prefix>/bin/python <prefix>/lib/python3.13/site-packages/draw
A medium blog post explaining the main process from data collection to final prediction has been written. You can access it at this address. If you have any questions, don't hesitate to open an issue.
You can reach me on Twitter @hichtala or by email at hich.tala.phd@gmail.com.

