Architecture
Overview
This diagram shows the major parts of the wasmVision system architecture and how they fit together.
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
Engine
The wasmVision engine. Includes platform capabilities such as MJPEG streaming and saving to files.
Capture
This is how wasmVision can capture or import images or video to be processed from a connected webcam, from files, or from streams. For more information see Capture.
Devices
Specific hardware or software devices that capture images or video. Currently supported devices are a connected camera, a file input, or a stream input using GStreamer.
Runtime
The wasmVision runtime consists of the WebAssembly runtime engine (currently Wazero) and the wasmVision host platform API functions such as logging, configuration, and making http calls to external servers.
Processors
The image processing modules that are used by wasmVision. These are modules written using Go, Rust, or C, and compiled into WebAssembly. They use the wasmCV interface and the wasmVision platform interface. For more information see Processors.
OpenCV
The computer vision processing capabilities implemented using OpenCV with the GoCV language wrappers. The wasmCV programming API is used for this integration.
Models
Machine learning models used for computer vision that can be used directly by processors. There are “well-known” models that can be automatically downloaded by wasmVision when they are needed by a specific Processor. See the Models list for more information.
Platform
The wasmVision platform capabilities provide essential services for processing modules such as logging and access to persistent data. See Platform for more information.
MCP Server
wasmVision includes experimental support for the Model Context Protocol (MCP) by providing a (MCP) Server. See MCP for more information.
CUDA
wasmVision includes experimental support for GPU acceleration using CUDA.
See using wasmVision with CUDA for more information.