{"id":15043476,"url":"https://github.com/wasmvision/wasmvision","last_synced_at":"2025-04-14T20:45:59.554Z","repository":{"id":257145229,"uuid":"857294975","full_name":"wasmvision/wasmvision","owner":"wasmvision","description":"wasmVision gets you going with computer vision using WebAssembly.","archived":false,"fork":false,"pushed_at":"2025-04-09T19:55:28.000Z","size":11538,"stargazers_count":179,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-09T20:42:21.972Z","etag":null,"topics":["c-language","computer-vision","golang","opencv","rust","tinygo","wasi","wasm","wasmcv","webassembly"],"latest_commit_sha":null,"homepage":"http://wasmvision.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wasmvision.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-14T09:15:37.000Z","updated_at":"2025-04-09T07:45:25.000Z","dependencies_parsed_at":"2024-09-15T12:03:20.289Z","dependency_job_id":"840e0ff1-6ebb-42aa-af2f-5b4e563df391","html_url":"https://github.com/wasmvision/wasmvision","commit_stats":{"total_commits":213,"total_committers":2,"mean_commits":106.5,"dds":"0.0046948356807511304","last_synced_commit":"a87c843f29e0d3fed9c09e67c348ca68e0bfc586"},"previous_names":["hybridgroup/wasmvision","wasmvision/wasmvision"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasmvision%2Fwasmvision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasmvision%2Fwasmvision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasmvision%2Fwasmvision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasmvision%2Fwasmvision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wasmvision","download_url":"https://codeload.github.com/wasmvision/wasmvision/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248960681,"owners_count":21189987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-language","computer-vision","golang","opencv","rust","tinygo","wasi","wasm","wasmcv","webassembly"],"created_at":"2024-09-24T20:49:06.815Z","updated_at":"2025-04-14T20:45:59.547Z","avatar_url":"https://github.com/wasmvision.png","language":"Go","funding_links":[],"categories":["Wireless Communication","Intro \u0026 Learning"],"sub_categories":["WASI and WASM Unknown","Hardware Players"],"readme":"![wasmvision-logo](./images/wasmvision-logo.png)\n\n# Get going with computer vision\n\n[![Linux](https://github.com/wasmvision/wasmvision/actions/workflows/linux.yml/badge.svg?branch=dev)](https://github.com/wasmvision/wasmvision/actions/workflows/linux.yml) [![macOS](https://github.com/wasmvision/wasmvision/actions/workflows/macos.yml/badge.svg?branch=dev)](https://github.com/wasmvision/wasmvision/actions/workflows/macos.yml) [![Windows](https://github.com/wasmvision/wasmvision/actions/workflows/windows.yml/badge.svg?branch=dev)](https://github.com/wasmvision/wasmvision/actions/workflows/windows.yml) [![Docker](https://github.com/wasmvision/wasmvision/actions/workflows/docker.yml/badge.svg?branch=dev)](https://github.com/wasmvision/wasmvision/actions/workflows/docker.yml)\n\nwasmVision gets you going with computer vision.\n\nIt provides a high-performance computer vision processing engine that is designed to be customized and extended using WebAssembly.\n\n## How it works\n\n- [Capture video from a camera, video file, or stream](./docs/capture.md)\n- [Process the video frames using WebAssembly](./docs/processor.md)\n- [Output the results to a stream or video file](./docs/output.md)\n\n```mermaid\nflowchart LR\n    subgraph engine\n        Capture\n        Runtime[WASM Runtime]\n        Runtime\u003c--\u003eMCP[MCP Server]\n        Capture--frame--\u003eRuntime\n        Capture\u003c--\u003eOpenCV\n        Runtime\u003c--\u003eOpenCV\n        OpenCV\u003c--\u003eCUDA\n    end\n    subgraph processors\n        Runtime--frame--\u003eprocessor1.wasm\n        Runtime--frame--\u003eprocessor2.wasm\n        Runtime--frame--\u003eprocessor3.wasm\n        Runtime--frame--\u003eprocessor4.wasm\n    end\n```\n\n### wasmVision Engine\n\nThe wasmVision engine is a standalone binary application for Linux, macOS, or Windows that contains everything you need with no other dependencies.\n\nIt is written in the [Go programming language](https://go.dev/) using the [GoCV Go language wrappers](https://github.com/hybridgroup/gocv) for [OpenCV](https://github.com/opencv/opencv) and the [Wazero WASM runtime](https://github.com/tetratelabs/wazero).\n\nSee the [ARCHITECTURE](./docs/architecture.md) document for more details.\n\n### wasmVision Processors\n\nwasmVision processing modules are WebAssembly guest modules that support the [wasmCV interface](https://wasmcv.org).\n\nProcessors can filter images, analyze them, and modify them using traditional computer vision algorithms.\n\nProcessors can also use deep neural networks and other machine learning algorithms, and can even download the models they need automatically.\n\nYou can use Go, Rust, or the C programming language to write the code for processors.\n\nWant some processors you can try out right away? Take a look at these:\n\n- [`blur.wasm`](./processors/blur/) for image blurring using Go\n- [`blurrs.wasm`](./processors/blurrs/) for image blurring using Rust\n- [`blurc.wasm`](./processors/blurc/) for image blurring using C\n- [`facedetectyn.wasm`](./processors/facedetectyn/) for face detection using a deep neural network using Go\n- [`facedetectynrs.wasm`](./processors/facedetectynrs/) for face detection using a deep neural network using Rust\n- [`ollama.wasm`](./processors/ollama/) live image descriptions using integration with [Ollama](https://ollama.com/) using Go\n- [`style-transfer.wasm`](./processors/style-transfer/) for a cool effect using fast neural style transfer using Go\n\nCheck out the [processors directory](./processors/) for the complete list.\n\nSee the [PROCESSOR](./docs/processor.md) document for more information about how processors work and how to develop your own.\n\n### MCP Server\n\nwasmVision includes experimental support for the [Model Context Protocol (MCP)](https://modelcontextprotocol.info/) by providing a [(MCP) Server](https://modelcontextprotocol.info/specification/draft/server/). See [MCP](./docs/mcp.md) for more information.\n\n### GPU Acceleration using CUDA\n\nwasmVision includes experimental support for GPU acceleration using [CUDA](https://en.wikipedia.org/wiki/CUDA).\n\nFor more information, see [using wasmVision with CUDA](./docs/cuda.md)\n\n## Quick start\n\n- [Linux](#linux)\n- [macOS](#macos)\n- [Windows](#windows)\n- [Docker](#docker)\n\n### Linux\n\nDownload the latest release for Linux under [Releases](https://github.com/wasmvision/wasmvision/releases) by clicking on the latest release.\n\nUnder \"Assets\" click on the link for either \"wasmvision-linux-amd64\" or \"wasmvision-linux-arm64\" depending on your processor.\n\nExtract the executable to your desired directory.\n\nYou might need to set the file as \"executable\", which you can do from the command line by running `chmod +x ./wasmvision` in the same directory to which you extracted the `wasmvision` executable.\n\nVerify wasmVision is installed by running these commands:\n\n```shell\ncd /path/to/wasmvision/install\nwasmvision version\n```\n\nNow you can run a test to capture video using your webcam, blur it using a WebAssembly processor, and then stream the output to port 8080 on your local machine:\n\n```shell\nwasmvision run -p blur\n```\n\nwasmVision will automatically download the `blur.wasm` processor from our repo to your local `$HOME/processors` directory.\n\nPoint your browser to `http://localhost:8080` and you can see the output.\n\n![mjpeg-stream](./images/mjpeg-stream.png)\n\nWant to know more? Please see [USING](./docs/using.md)\n\n### macOS\n\n**NOTE: wasmVision currently runs on M-series processors only when using the Homebrew installer. You must install from source to use Intel processors.**\n\nInstall wasmVision on macOS using Homebrew:\n\n```shell\nbrew tap wasmvision/tools\nbrew install wasmvision\n```\n\nVerify it is installed like this:\n\n```shell\nwasmvision version\n```\n\nNow you can run a test to capture video using your webcam, blur it using a WebAssembly processor, and then stream the output to port 8080 on your local machine:\n\n```shell\nwasmvision run -p blur\n```\n\nwasmVision will automatically download the `blur.wasm` processor from our repo to your local `$HOME/processors` directory.\n\nPoint your browser to `http://localhost:8080` and you can see the output.\n\nWant to know more? Please see [USING](./docs/using.md)\n\n### Windows\n\nDownload the latest release for Windows under [Releases](https://github.com/wasmvision/wasmvision/releases) by clicking on the latest release.\n\nUnder the \"Assets\" click on the link for \"wasmvision-windows-amd64\".\n\nNOTE: you will likely need to configure your Windows Defender to download the ZIP file with the `wasmvision.exe` executable.\n\nExtract the executable to your desired directory.\n\nVerify it is installed like this:\n\n```shell\nchdir C:\\path\\to\\wasmvision\\install\nwasmvision.exe version\n```\n\nNow you can run a test to capture video using your webcam, blur it using a WebAssembly processor, and then stream the output to port 8080 on your local machine:\n\n```shell\nwasmvision.exe run -p blur\n```\n\nwasmVision will automatically download the `blur.wasm` processor from our repo to your local `$HOME/processors` directory.\n\nYou will probably need to configure Windows Firewall to allow the `wasmvision.exe` executable to access the network port on your local machine.\n\nPoint your browser to `http://localhost:8080` and you can see the output.\n\nWant to know more? Please see [USING](./docs/using.md)\n\n### Docker\n\n**NOTE for macOS users: camera input does not work with Docker on macOS. File sources only.**\n\nYou can run wasmVision using Docker.\n\nPull the current development version:\n\n```shell\ndocker pull ghcr.io/wasmvision/wasmvision:main\n```\n\nVerify it is installed like this:\n\n```shell\ndocker run ghcr.io/wasmvision/wasmvision:main version\n```\n\nNow you can run a test to capture video using your webcam, blur it using a WebAssembly processor, and then stream the output to port 8080 on your local machine:\n\n```shell\ndocker run --privileged --network=host ghcr.io/wasmvision/wasmvision:main run -p /processors/blur.wasm\n```\n\nPoint your browser to `http://localhost:8080` and you can see the output.\n\nWant to know more? Please see [USING](./docs/using.md)\n\n## Development\n\nFor information on how to obtain development builds, or work on development for wasmVision itself, please see [DEVELOPMENT](./docs/development.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwasmvision%2Fwasmvision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwasmvision%2Fwasmvision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwasmvision%2Fwasmvision/lists"}