Developed and tested on Ubuntu 26.04. Includes packaging script for Windows machine to generate executable.
- Clone the repository
git clone https://github.com/InPoint-Automation/The-Bubbler.git
cd The-Bubbler
- Create a Python 3.12 virtual environment and install dependencies:
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- Run the app:
python Bubbler.py
packaging/build.py is the single OS-detecting build path to one shippable item per OS:
Windows -> bin/Bubbler.exe
Linux -> bin/Bubbler-x86_64.AppImage
macOS -> bin/Bubbler.app
- Linux:
sudo apt-get install python3.12-dev patchelf binutils clang. build.py defaults to clang, GCC likes to OOM - Windows: python.org 3.12 with the
pylauncher + MSVC Build Tools (Desktop C++). - macOS: clang from Xcode command-line tools.
python packaging/make_build_venv.py
.build-venv/bin/python packaging/build.py
.build-venv/bin/python packaging/make_appimage.py # Linux only
.build-venv\Scripts\python packaging\build.py # Windows
-
Training deps are already in
requirements.txt(pillow, ultralytics, onnx, onnxsim, torch). -
Region detector
python train/generate_regions.py --out train/data/region --n 6000
python train/train.py --data train/data/region/data.yaml --out bubbler/models/gdt_regions.onnx --device 0 --batch 32 --epochs 80
- symbol detector
python train/generate_dataset.py --out train/data/symbols --n 6000
python train/train.py --data train/data/symbols/data.yaml --out bubbler/models/gdt_symbols.onnx --device 0 --batch 32 --epochs 80
- Validate:
python train/eval_regions.py --model bubbler/models/gdt_regions.onnx --conf 0.35 --show-misses
python train/check_onnx.py --dir train/bgs --out-dir train/preds
- (Offline VLM/OCR) place reader weights under
bubbler/models/
- Florence-2 (
onnx-community/Florence-2-base-fttomodels/florence2/) - P-OCRv4 + PaddleOCR-VL (run once on Linux, copy the paddle cache in). RapidOCR ships its own ONNX.