Skip to content

wasmvision/wasmvision

Repository files navigation

wasmvision-logo

Get going with computer vision

Linux macOS Windows Docker

wasmVision is a high-performance computer vision processing engine that includes advanced algorithms and vision models for machine learning.

It is designed to be customized and extended using WebAssembly, can run on embedded devices or run in the cloud, and takes advantage of hardware acceleration.

How it works

flowchart TD
    subgraph wasmVision
        subgraph engine
            subgraph Capture
                Devices
            end
            Runtime[WASM Runtime]
            Capture--frame-->Runtime
            Capture<-->OpenCV
            Runtime<-->Models
            OpenCV<-->Models
            OpenCV<-->CUDA
            subgraph Platform
                logging
                config
                http
                datastore
                time
            end
            Runtime<-->MCP[MCP Server]
        end
        subgraph processors
            Runtime--frame-->processor1.wasm
            Runtime--frame-->processor2.wasm
            Runtime--frame-->processor3.wasm
            Runtime--frame-->processor4.wasm
        end
        processor1.wasm-->logging
        processor2.wasm-->logging
        processor2.wasm-->datastore
    end
Loading

wasmVision Engine

The wasmVision engine is a standalone binary application for Linux, macOS, or Windows that contains everything you need with no other dependencies.

It is written in the Go programming language using the GoCV Go language wrappers for OpenCV and the Wazero WASM runtime.

See the ARCHITECTURE document for more details.

wasmVision Processors

wasmVision processing modules are WebAssembly guest modules that support the wasmCV interface.

Processors can filter images, analyze them, and modify them using traditional computer vision algorithms.

Processors can also use deep neural networks and machine learning models, and can even download the models they need automatically.

You can use the Go, Rust, and C programming language to write the code for processors.

Want some processors you can try out right away? Take a look at these:

Check out the Processors List for the complete list.

Want more information about how processors work and how to develop your own? See Concepts - Processors.

MCP Server

wasmVision includes experimental support for the Model Context Protocol (MCP) by providing a (MCP) Server. See MCP for more information.

GPU Acceleration using CUDA

wasmVision includes experimental support for GPU acceleration using CUDA.

For more information, see wasmVision with CUDA

Quick start

mjpeg-stream

Development

For information on how to obtain development builds, or work on development for wasmVision itself, please see DEVELOPMENT