Go Back

moxa-vision

A stereo-vision pipeline for a moxibustion treatment system. A Raspberry Pi captures a MetaSense 435 depth camera, JPEG-encodes four channels — IR, depth, an RGB overlay, and colour — and pushes them over a single TCP socket to a laptop, which serves a live quad view in the browser and sends camera controls back up the same connection.

Explore the interactive system map →

Every source file, what it actually does, and the named function or socket that connects it to the next. Click a box to open its dossier; click a wire to read what crosses it. Available in English and 中文 — the toggle sits in the top-right corner.

How it works

Piece Runs on Job
quad_sender Raspberry Pi capture, JPEG-encode, push 4 channels over one socket
stream_server laptop receive, demux by stream id, serve MJPEG + controls
the browser page anywhere 2x2 live view, FPS readout, IR laser and stereo tuning

One TCP connection carries all four channels, each frame tagged with its stream id. Because TCP is full duplex, the laser toggle and the stereo-matcher sliders travel back up the same connection — no second port, and no reconnect when you press a button.

Written in C++17 with OpenCV, cross-compiled for aarch64 against a sysroot cloned from the board. The streaming path is about 1,530 lines of code across seven files.