Skip to main content

mvkit

Machine vision inspection for production lines — a framework you install, not a library you call.

mvkit runs an unattended inspection loop: wait for a trigger, grab a frame, run an inspection chain, report the verdict to the line, repeat. Cameras, triggers, result sinks and inspection modules are all plugins, so a new site is a configuration change rather than a code change.

No PyTorch in the default install. The runtime is onnxruntime + numpy + opencv.


Install

pip install mvkit              # CPU
pip install "mvkit[gpu]"       # NVIDIA CUDA via onnxruntime-gpu
pip install "mvkit[genicam]"   # GenICam/GenTL industrial cameras

Then:

mvkit serve                    # http://127.0.0.1:8000 — dashboard and REST API
mvkit doctor                   # what is installed, what is missing, and why

The dashboard opens on a demo file camera reading the bundled sample images, so a fresh install has something to look at before any hardware arrives.


What it does

Layer Plugins
Cameras file · opencv (webcam, RTSP) · watch_folder · harvester (GenICam)
Triggers hardware · digital_input · software · interval · push
Result sinks digital_output · modbus_tcp · log — several at once
Inspection see below

The runtime keeps capture, inference and dispatch on separate threads with bounded queues, so a slow PLC never stalls inference and a fast line never silently piles up frames. Camera drop-outs reconnect with backoff; a watchdog heartbeat tells the line when the inspector itself has stopped.

Inspection modules

Module What it checks Weights
barcode 1D barcodes, QR, DataMatrix none
presence part present / missing, by template none
count number of objects none
color colour deviation (Lab ΔE) none
patchcore surface defects — teach from 5–10 good parts DINOv2 (ONNX)
crane surface defects, zero-shot CLIP + DINOv2 (ONNX)
detect object detection D-FINE (ONNX)
detect_gate detect a region, then inspect only that region D-FINE (ONNX)
ocr text reading — needs mvkit[ocr] and PyTorch EasyOCR
schad structural + logical anomalies — needs mvkit[train] and PyTorch trained on your machine

Model weights are not bundled in the wheel. They are downloaded per module on first use, or imported from a disk:

mvkit models download --module patchcore
mvkit models import D:\mvkit_assets
mvkit models status

Teaching a part

Upload five to ten good samples in the dashboard; no defect images are required and no labelling is involved. The result is stored on your machine and never leaves it, and a product folder can be copied to another machine as it is.

Teaching from the command line is not available yet.


What needs to be installed separately

Two things cannot come from PyPI.

Industrial camera SDKs. harvesters talks to a GenTL producer (.cti), and that file ships with the camera vendor's runtime — Basler pylon, Hikrobot MVS, Teledyne FLIR Spinnaker, and so on. Install the vendor runtime and mvkit will find the producer on its own. Order does not matter; the search happens when a camera is opened, not at install time.

PyTorch, for mvkit[ocr] and mvkit[train] only. PyPI metadata cannot express which CUDA build you need, so install it yourself first:

pip install torch --index-url https://download.pytorch.org/whl/cu128
pip install "mvkit[train]"

mvkit doctor reports both, and distinguishes "not installed" from "broken".


Where things are stored

Location
Model cache %LOCALAPPDATA%\mvkit\Cache · ~/Library/Caches/mvkit · ~/.cache/mvkit
Products, teaching results, logs %LOCALAPPDATA%\mvkit\artifacts · ~/Library/Application Support/mvkit/artifacts · ~/.local/share/mvkit/artifacts
Site configuration %APPDATA%\mvkit\site.yaml · ~/.config/mvkit/site.yaml

A product folder is self-contained: copy it to another machine and inspection works there. Retraining caches live outside it and can be deleted.

Line PCs often have a small system drive. mvkit doctor prints the artifacts path with free space; move it with mvkit config set artifacts_dir D:\....


Evaluation

All modules are available for three months. After that, barcode, presence, count and color keep working; the rest need a licence.

An expired licence never stops a running line. Inspection in progress continues; only starting a new run and teaching new products are blocked, and the dashboard warns 30, 7 and 1 days ahead.

Your teaching results are yours. They are not deleted when a licence expires and can always be exported.

For a licence, email vislab2026@gmail.com with your name, organisation and intended use.


License

Proprietary. Evaluation and non-commercial research use only — see LICENSE. Contact the copyright holder for commercial licensing.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mvkit-0.1.7-cp311-cp311-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.11Windows x86-64

File details

Details for the file mvkit-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mvkit-0.1.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mvkit-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2ff221acaa9d70b1cbf26ad29290c4e783ecb7d07c44211a6ee27a3f74bcd1ea
MD5 1098568b20afdd9fdb667499ac144a52
BLAKE2b-256 dbbb359fa77c2c8cfbfeddac971fa92fb447fde7cce929cd5066ddf961fc90d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mvkit-0.1.7-cp311-cp311-win_amd64.whl:

Publisher: release.yml on theodore-labs/mvkit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.0

1 file

0.2.23

1 file

0.2.22

1 file

0.2.21

1 file

0.2.20

1 file

0.2.19

1 file

0.2.18

1 file

0.2.17

1 file

0.2.16

1 file

0.2.15

1 file

0.2.14

1 file

0.2.13

1 file

0.2.11

1 file

0.2.10

1 file

0.2.8

1 file

0.2.7

20 files

0.2.6

1 file

0.2.5

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

This release

0.1.7 This release

1 file

0.1.6

1 file

0.1.5

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page