Skip to content
Public template

About

DRAW 2 Plugin for OBS, to integrate Yu-Gi-Oh! cards detector into your live streams and videos

Topics

Resources

Stars

11 stars

Watchers

2 watching

Forks

Repository files navigation

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.


📰 News

🃏 Latest card pool: CORI --- last updated 13-06-2026
🔧 Latest app version: 0.2.1-beta --- last updated 01-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

📄Documentation

🛠️ Installation

Follow the installation instruction depending on your operating system so everything works smoothly:

🪟 Windows
  1. Download the plugin installer from this link: DRAW2 Plugin Installer

  2. Run the installer and follow the on-screen instructions.

  3. Once the installation is complete, launch OBS Studio. If everything is set up correctly, you should see in the Docks menu a new option called Draw 2. You can activate the dock and dock it wherever you want.

The installation is complete, you can enjoy detecting !

🐧 Linux
  1. Download the plugin installer from this link: DRAW2 Plugin Installer

  2. 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
  3. Once the installation is complete, launch OBS Studio. If everything is set up correctly, you should see in the Docks menu a new option called Draw 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.

  4. If you already have a python installation you want to use you can pass this step. Any python installation with draw package 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
  5. Install draw backend (make sure git is installed):

    ~/.draw2-runtime/python/bin/python -m pip install "git+https://github.com/HichTala/draw2@obs-plugin"
  6. In the Draw 2 settings, set Select Python installation to the prefix folder (the one that contains bin/ and lib/), 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
  1. 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)

  2. 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 click Open Anyway and Open Anyway again and follow the on-screen instructions.

  3. Once the installation is complete, launch OBS Studio. If everything is set up correctly, you should see in the Docks menu a new option called Draw 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.

  4. If you already have a python installation you want to use you can pass this step. Any python installation with draw package 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
  5. Install draw backend (make sure git is installed):

    ~/.draw2-runtime/python/bin/python -m pip install "git+https://github.com/HichTala/draw2@obs-plugin"
  6. In the Draw 2 settings, set Select Python installation to the prefix folder (the one that contains bin/ and lib/), 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 !

🚀 Usage

When the plugin is installed and the model weights are downloaded, you can launch OBS Studio.

  1. Open the Docks menu and select Draw 2 to activate the plugin dock.
  2. In the Draw 2 dock, you can configure the plugin settings by clicking on the gear icon next to Start DRAW button:
    • Select Python installation: Path to the Python prefix that has the draw backend installed (the folder containing bin/ and lib/). Must be a full Python install, not a virtualenv.
    • Select Deck List: Choose the deck list file that contains the cards you want to detect. 3 deck lists can be handled at the same time. To add new deck lists, you can click the Open Folder button and drag and drop your deck list files (in ydk format) 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.
  3. 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.
  4. Click the Start DRAW button to start the detection process. The plugin will start detecting cards in real time and display them on the screen using the Draw Display source. The plugin start detecting from the moment you see the Stop DRAW button. If you don't see it something went wrong.
  5. In the other case you can enjoy the plugin!

Here is a small overview :)

⚙️ Building from source

🪟 Windows

Coming soon 👀

🐧 Linux

Building the plugin from source

  1. Install the build prerequisites with Homebrew:

    sudo apt update
    sudo apt install -y cmake
  2. Clone the source:

    git clone https://github.com/HichTala/draw2-plugin
    cd draw2-plugin
  3. Configure and build:

    cmake --preset linux
    cmake --build build_linux --config RelWithDebInfo
  4. The built plugin bundle is produced at:

    build_linux/RelWithDebInfo/
    
  5. 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 2 in the Docks menu.

Setting up the Python backend

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/python and the draw package 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 draw backend use the obs-plugin branch, that is the one that exposes the entry point the plugin launches (the default main branch 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/ and lib/), e.g. ~/.draw2-runtime/python. Expected layout:

    <prefix>/bin/python
    <prefix>/lib/python3.13/site-packages/draw
    
🍏 MacOS

Building the plugin from source

  1. Install the build prerequisites with Homebrew:

    brew install cmake ccache coreutils jq xcbeautify

    You also need a recent Xcode (with its command line tools).

  2. Clone the source:

    git clone https://github.com/HichTala/draw2-plugin
    cd draw2-plugin
  3. Configure and build:

    cmake --preset macos
    cmake --build build_macos --config RelWithDebInfo
  4. The built plugin bundle is produced at:

    build_macos/RelWithDebInfo/draw2-plugin.plugin
    
  5. 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 2 in the Docks menu.

Setting up the Python backend

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/python and the draw package 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 draw backend use the obs-plugin branch, that is the one that exposes the entry point the plugin launches (the default main branch 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/ and lib/), e.g. ~/.draw2-runtime/python. Expected layout:

    <prefix>/bin/python
    <prefix>/lib/python3.13/site-packages/draw
    

🔍Method Overview

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.

Medium


💬Contact

You can reach me on Twitter @hichtala or by email at hich.tala.phd@gmail.com.


⭐Star History

About

DRAW 2 Plugin for OBS, to integrate Yu-Gi-Oh! cards detector into your live streams and videos

Topics

Resources

Stars

11 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages