SimpleVision Svelte Themes

Simplevision

Visual OpenCV pipeline editor. Tauri + Svelte 5 desktop app; pipelines export as JSON or standalone Python.

SimpleVision

Build OpenCV pipelines graphically. Run them anywhere.


SimpleVision is a free, open-source educational tool for students learning computer vision. It lets you assemble image-processing pipelines step by step, preview each stage on a real frame, and export the result as portable JSON or runnable Python. Pipelines run locally through a bundled Python interpreter with OpenCV and numpy — no installation, no cloud, no network.

Windows installers ship today; macOS and Linux are on the roadmap. Auto-updates land via GitHub Releases.


Features

Visual Pipeline Editor

  • Drag-and-drop steps from a categorized function library — 22 operations covering acquisition, color, filtering, thresholding, morphology, and analysis
  • Live frame-by-frame preview — every step renders its own intermediate result so you can see exactly what the pipeline does
  • Per-step inspector with paper-tab Setup panels and contextual parameter controls
  • SVG overlays for detection results (bounding boxes, particle markers) layered on top of the source frame, not baked in

Export Anywhere

  • .simplevision — portable, schema-versioned pipeline definitions (JSON inside) that load in any SimpleVision install
  • .py codegen — drop-in Python scripts using cv2 calls, ready to run outside the app
  • Pipelines are deterministic: same JSON + same input = same output, on any machine

Self-Contained Runtime

  • Bundled Python interpreter (via python-build-standalone) with OpenCV and numpy pre-installed
  • End users don't need to install Python, pip, or anything else — the installer brings everything
  • Sidecar process spawned per pipeline run; results streamed back over stdout

Desktop Polish

  • Light-mode UI inspired by industrial vision tools, built with custom design tokens and the Geist typeface
  • Auto-updater wired up against GitHub Releases — users get new versions on next launch
  • Native file dialogs, no flashing console windows, GUI-subsystem release builds

Plugins

SimpleVision will soon support pre-trained AI models — segmentation, depth, detection — directly inside its pipeline editor. Open the Plugins menu to see what's available. (The first plugins will land in a follow-up release.)


Function Library

Acquisition

  • Load Image
  • Crop
  • Rotate / Flip
  • Resample
  • Calibrate

Color

  • Extract Luminance
  • RGB Split
  • HSL Split
  • Color Threshold
  • Color Match

Filtering

  • Gaussian Filter
  • Median Filter
  • Sobel Edges
  • Canny Edges
  • Morphology
  • Histogram

Threshold & Analysis

  • Threshold
  • Adaptive Threshold
  • Erode
  • Dilate
  • Blob Detection
  • Particle Analysis

Architecture

   ┌─────────────────────────────────────────────────────┐
   │                  Tauri Desktop Shell                │
   │                                                     │
   │   ┌─────────────────────────────────────────────┐   │
   │   │            Svelte 5 Frontend                │   │
   │   │                                             │   │
   │   │   Library  │  Pipeline  │  Viewer  │ Setup  │   │
   │   │                                             │   │
   │   │   Cubits (state) · Repositories · DI        │   │
   │   └────────────────────┬────────────────────────┘   │
   │                        │  Tauri IPC                 │
   │   ┌────────────────────┴────────────────────────┐   │
   │   │              Rust Core (src-tauri)          │   │
   │   │   File I/O · Sidecar lifecycle · Updater    │   │
   │   └────────────────────┬────────────────────────┘   │
   └────────────────────────┼────────────────────────────┘
                            │  stdin / stdout
                            │  (JSON pipeline → PNG + JSON results)
                   ┌────────┴────────┐
                   │  Python Sidecar │
                   │                 │
                   │  cv2  ·  numpy  │
                   │  simplevision_  │
                   │  runtime        │
                   └─────────────────┘

Workspace Layout

Desktop App — app/

SvelteKit (adapter-static, SPA mode)  ·  Tauri 2

The editor itself. Svelte 5 frontend with cubit-style state containers, repository-pattern persistence, and a thin Tauri backend handling file dialogs, sidecar spawning, and auto-update.

Svelte 5 · TypeScript · Vite · Tauri 2

Python Runtime — runtime/

simplevision  ·  Python 3.12

The execution engine. Reads a pipeline JSON from stdin, decodes each step, runs the corresponding OpenCV operation, and writes intermediate PNGs plus a results JSON.

opencv-python · numpy

Build Scripts — scripts/

setup-runtime.sh builds a local dev venv. build-sidecar.sh produces the portable python-build-standalone tree that ships inside release builds.

Samples & Docs — samples/, docs/

Reference images, example .simplevision pipelines, design notes, and the pipeline JSON schema.


Data Flow

 .simplevision  ──spawn──▸  python sidecar  ──load──▸  cv2 ops  ──write──▸  step_N.png
   (pipeline)            (stdin JSON)               (per step)             results.json
                                                                              │
                                                                              ▼
                                                                       SVG overlays
                                                                       in viewer

The frontend never calls OpenCV directly. Every pipeline run spawns a fresh Python process, feeds it the JSON, and reads back per-step output files from a sandboxed working directory next to the input frame.


Getting Started

Prerequisites

  • Node 20+ with pnpm 11+ (via corepack enable pnpm)
  • Rust stable + cargo (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  • Python 3.11+ (for the dev venv — release builds bundle their own)

Quick Start

pnpm install
pnpm setup:runtime      # builds runtime/.venv with OpenCV + numpy
pnpm tauri dev

The editor opens with the function library on the left and an empty pipeline ready to assemble.

[!TIP] Drop any .png or .jpg on the viewer to load it as the source frame. Add a Load Image step from the library to make the source frame part of the pipeline definition.


Release Builds (Bundled Sidecar)

For shippable installers, the Python interpreter + OpenCV + numpy + the simplevision package are bundled into the app as a portable python-build-standalone tree:

bash scripts/build-sidecar.sh   # one-time, populates app/src-tauri/python-runtime/
pnpm tauri build                # produces .msi + .nsis on Windows

Tauri ships the runtime tree inside the packaged binary via bundle.resources. End users don't need to install Python.

Interpreter resolution at runtime:

  1. SIMPLEVISION_PYTHON=/path/to/python — explicit override
  2. Bundled python-runtime/ inside the app's resource dir (release / after build-sidecar.sh)
  3. Dev venv at runtime/.venv/bin/python (from setup-runtime.sh)
Auto-Updater

Release builds check GitHub Releases for latest.json on startup. When a newer version is found, the user gets a prompt to download and restart.

  • Endpoint: https://github.com/AutoElecAB/SimpleVision/releases/latest/download/latest.json
  • Signatures: minisign / Tauri updater format (private key in CI, pubkey baked into tauri.conf.json)
  • Workflow: tag v* on main.github/workflows/release.yml builds, signs, uploads, and publishes
Project Structure
SimpleVision/
├── app/
│   ├── src/
│   │   └── lib/
│   │       ├── components/      # Svelte UI (library, pipeline, viewer, setup)
│   │       ├── cubits/          # State containers (pipeline, viewer, ...)
│   │       ├── repositories/    # File I/O + pipeline persistence
│   │       ├── pipeline/        # Pipeline execution coordination
│   │       ├── export/          # JSON + Python codegen
│   │       ├── updater/         # Auto-update flow
│   │       └── data/            # Function catalogue
│   └── src-tauri/               # Rust shell (Tauri 2) + bundled python-runtime
├── runtime/
│   └── simplevision/            # Python package (student API + execution engine)
├── scripts/
│   ├── setup-runtime.sh         # Local dev venv
│   └── build-sidecar.sh         # Portable python-build-standalone bundle
├── samples/                     # Reference images + example pipelines
├── docs/                        # Pipeline spec, design plans
└── .github/workflows/           # release.yml, cache-warm.yml

CI / CD

Workflow Trigger What it does
cache-warm push to main (touching Rust / lockfiles) Pre-builds Rust dependencies so release builds stay fast
release tag v* Builds Windows .msi + .nsis, signs the updater bundle, publishes the GitHub Release

Roadmap

  • macOS and Linux release builds (Windows shipping today)
  • Pattern matching op (template-based, with a "Create Template" flow)
  • Arithmetic ops — chain B − R style channel math
  • Histogram visualization in the inspector
  • Multi-pipeline projects with tabs
  • Native menus + accelerators (Ctrl+S, Ctrl+O)

License

Apache License 2.0 — see LICENSE.

SimpleVision is an independent, open-source educational project. It is not affiliated with, endorsed by, or derived from any commercial computer vision tool. All trademarks are the property of their respective owners.

Top categories

Loading Svelte Themes