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.
- Capture video from cameras, video files, or streams
- Process video using computer vision algorithms and machine learning models using WebAssembly
- Output results to a stream, video file, or data store
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
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 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:
blur.wasm
for image blurring using Goblurrs.wasm
for image blurring using Rustblurc.wasm
for image blurring using Cfacedetectyn.wasm
for face detection using a deep neural network using Gofacedetectynrs.wasm
for face detection using a deep neural network using Rustollama.wasm
live image descriptions using integration with Ollama using Gostyle-transfer.wasm
for a cool effect using fast neural style transfer using Go
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.
wasmVision includes experimental support for the Model Context Protocol (MCP) by providing a (MCP) Server. See MCP for more information.
wasmVision includes experimental support for GPU acceleration using CUDA.
For more information, see wasmVision with CUDA
For information on how to obtain development builds, or work on development for wasmVision itself, please see DEVELOPMENT