Skip to content

InPoint-Automation/The-Bubbler

Repository files navigation

Bubbler

Icon

Description

Balloon a PDF print, classify callouts, and fill inspection sheets. Free, open source, fully offline.

Features

  • Click a callout to balloon it - automatically fills number/nominal/tolerance/fits/etc
  • Works fully offline
  • Handles dimensions, threads, GD&T, fits, surface finish, holes, and more
  • Fills in tolerances automatically (ISO 2768, ISO 286 fits)
  • Enter measurements in the program directly, including expressions for differential measurements
  • Export inspection sheet and the ballooned PDF
  • Flag out-of-tolerance results
  • Custom trained region and symbol detector models included
  • Can also leverage a VLM (requires internet to download model from Hugging Face)

Requirements

  • Linux, Windows, or macOS. Prebuilt binaries need no Python.
  • From source: Python 3.10 to 3.12.

Installation

Download the binary for your OS from Releases. No Python needed.

  • Windows: run Bubbler.exe
  • Linux: chmod +x Bubbler-x86_64.AppImage && ./Bubbler-x86_64.AppImage (may need libfuse2)
  • macOS: open Bubbler.app (unsigned, right-click then Open)

From source: see DEV.md.

Usage

Open a drawing, click to place bubbles.

You can measure in the program or externally.

Save exports the ballooned PDF and .xlsx inspection report sheet.

Bubbler screenshot

Contributing

Feel free to fork this project or contribute a PR. Build and Windows packaging instructions are in the developer readme DEV.md.

Licenses

Main code

This project is licensed under the GPLv3+

See LICENSE file for details.

Third-Party Components

Full license texts for all bundled and depended-on components are in the Third Party Licenses directory.

Bundled assets:

  • Lucide - ISC License (portions derived from Feather, MIT) - Toolbar and ribbon icons, recolored at runtime into Qt icons
  • Florence-2-base-ft - MIT License - Optional VLM callout reader (model weights)
  • PaddleOCR-VL / PP-OCRv4 - Apache-2.0 License - Optional VLM/OCR callout readers (model weights)

Runtime dependencies (installed via pip, compiled into the binaries by Nuitka):

  • PyMuPDF - AGPL-3.0 License (or commercial from Artifex) - PDF parsing, rendering, and text/word-box extraction
  • PySide6 (Qt for Python) - LGPL-3.0 License - GUI framework. Qt ships several licenses Third Party Licenses/pyside6
  • openpyxl - MIT License - Reading and writing the .xlsx inspection sheet
  • NumPy - BSD-3-Clause License - Array and numerical operations
  • ONNX Runtime - MIT License - Runs the detector and reader .onnx models (CUDA / DirectML / CPU execution providers)
  • RapidOCR - Apache-2.0 License - OCR engine (ships its own ONNX models)
  • PaddleOCR - Apache-2.0 License - PP-OCRv4 OCR engine and PaddleOCR-VL reader
  • PaddlePaddle - Apache-2.0 License - Runtime backing the PaddleOCR readers
  • tokenizers - Apache-2.0 License - Tokenizer for the Florence-2 reader

Training also uses Ultralytics (AGPL-3.0), PyTorch (BSD-3-Clause), onnx, onnxsim, and pillow.

The detector models shipped under bubbler/models/ (gdt_symbols.onnx, gdt_regions.onnx) are trained by InPoint Automation and released under the project's GPLv3+.

Credits

This project was developed by InPoint Automation Sp. z o.o. https://inpointautomation.com/

Changelog

See CHANGELOG.md for the full version history.

About

Balloon a PDF print, classify callouts, and fill inspection sheets. Free, open source, fully offline.

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages