
Webcam-first 3D scanning suite. One ordinary webcam in, a printable mesh out. No depth sensor, no markers required, everything on-device.

The core experience is markerless: point or move a webcam at an object and MONOCLE recovers geometry using monocular depth (and, for multi-view, a feed-forward reconstruction model). It captures color, previews the result in a real 3D viewport, and exports STL for printing plus color formats. There is also a live depth preview that runs a depth model in the browser in real time.
Working, actively developed. Signed and notarized installers are published by CI on a version tag: macOS (Apple Silicon), Windows, and Linux AppImage (x64 and arm64/Raspberry Pi). The bundled interpreter runs on macOS 11+ (it ships the OpenBLAS build of numpy/scipy, not the macOS-14-only Accelerate one). What is in place:
See docs/roadmap.md for what is validated versus in progress, and the known issues at the end of that file.
| Capture | 3D preview |
|---|---|
![]() | ![]() |
apps/
desktop/ Electron + Vue 3 app, supervises the sidecar
packages/
protocol/ @monoclejs/protocol JSON-RPC framing + sidecar contract
configs/
tsconfig/ shared TypeScript config
sidecar/ Python inference process (depth, fusion, meshing, export)
scripts/ model fetch, signed build
docs/ architecture, roadmap, build/release, design, SLAM, screenshots
@monoclejs/protocol publishes to npm independently. The desktop app is
private.
Prerequisites: Node 22.12+, pnpm 10+, Python 3.11+ (3.12 recommended for the sidecar extras).
pnpm install
pnpm build # build the libraries
pnpm --filter @monoclejs/desktop fetch:models # live-depth models (needed for the live preview in dev)
pnpm dev:desktop # launch the app with hot reload
The app auto-starts the inference engine. For real reconstruction install the sidecar extras:
cd sidecar
python3 -m venv .venv
.venv/bin/pip install -e '.[depth]' # onnxruntime monocular depth
.venv/bin/pip install -e '.[reconstruct]' # torch (MPS) + Open3D fusion
The app's supervisor prefers, in order, a MONOCLE_PYTHON override, a bundled
interpreter, sidecar/.venv, then system Python. For a self-contained build that
needs no local Python, pnpm --filter @monoclejs/desktop bundle:python bundles a
relocatable interpreter with the sidecar installed; see
docs/BUILD.md.
Pick a preset, start the camera, and scan:
Then preview in 3D and save. STL is the print target; choose PLY or GLB to keep color, or 3MF for color printing.
Light inference (the live depth preview) runs in the renderer via onnxruntime-web on WebGPU; heavy inference (multi-view reconstruction, TSDF fusion, meshing, export) runs in a supervised Python sidecar over JSON-RPC.
The only workspace library the app depends on is @monoclejs/protocol, the
JSON-RPC contract it speaks to the sidecar. Detail in
docs/architecture.md.
Installers for macOS (Apple Silicon, signed and notarized), Windows (NSIS), and Linux (AppImage, x64 + arm64) are built by GitHub Actions on a version tag. Code signing and the full list of GitHub secrets are documented in docs/BUILD.md. For a local build:
pnpm --filter @monoclejs/desktop package # unsigned installer
pnpm --filter @monoclejs/desktop package:bundled # self-contained, bundles Python
scripts/build-signed.sh # signed (env-driven), see docs/BUILD.md
pnpm build / pnpm test / pnpm typecheck / pnpm exec prettier --check .
run across the workspace via Turborepo.pnpm --filter @monoclejs/desktop screenshots regenerates the README shots.Code is MIT. Model weights carry their own licenses, which differ from the code and from each other; the sidecar records each backend's weight license and a commercial-use flag so a shippable build can exclude non-commercial weights. Depth Anything V2 Small is Apache-2.0. Re-check any weight license at the version you pin.
73 commits
Python
48.7%
TypeScript
32.2%
Vue
13.8%
JavaScript
4.1%

Webcam-first 3D scanning suite. One ordinary webcam in, a printable mesh out. No depth sensor, no markers required, everything on-device.

The core experience is markerless: point or move a webcam at an object and MONOCLE recovers geometry using monocular depth (and, for multi-view, a feed-forward reconstruction model). It captures color, previews the result in a real 3D viewport, and exports STL for printing plus color formats. There is also a live depth preview that runs a depth model in the browser in real time.
Working, actively developed. Signed and notarized installers are published by CI on a version tag: macOS (Apple Silicon), Windows, and Linux AppImage (x64 and arm64/Raspberry Pi). The bundled interpreter runs on macOS 11+ (it ships the OpenBLAS build of numpy/scipy, not the macOS-14-only Accelerate one). What is in place:
See docs/roadmap.md for what is validated versus in progress, and the known issues at the end of that file.
| Capture | 3D preview |
|---|---|
![]() | ![]() |
apps/
desktop/ Electron + Vue 3 app, supervises the sidecar
packages/
protocol/ @monoclejs/protocol JSON-RPC framing + sidecar contract
configs/
tsconfig/ shared TypeScript config
sidecar/ Python inference process (depth, fusion, meshing, export)
scripts/ model fetch, signed build
docs/ architecture, roadmap, build/release, design, SLAM, screenshots
@monoclejs/protocol publishes to npm independently. The desktop app is
private.
Prerequisites: Node 22.12+, pnpm 10+, Python 3.11+ (3.12 recommended for the sidecar extras).
pnpm install
pnpm build # build the libraries
pnpm --filter @monoclejs/desktop fetch:models # live-depth models (needed for the live preview in dev)
pnpm dev:desktop # launch the app with hot reload
The app auto-starts the inference engine. For real reconstruction install the sidecar extras:
cd sidecar
python3 -m venv .venv
.venv/bin/pip install -e '.[depth]' # onnxruntime monocular depth
.venv/bin/pip install -e '.[reconstruct]' # torch (MPS) + Open3D fusion
The app's supervisor prefers, in order, a MONOCLE_PYTHON override, a bundled
interpreter, sidecar/.venv, then system Python. For a self-contained build that
needs no local Python, pnpm --filter @monoclejs/desktop bundle:python bundles a
relocatable interpreter with the sidecar installed; see
docs/BUILD.md.
Pick a preset, start the camera, and scan:
Then preview in 3D and save. STL is the print target; choose PLY or GLB to keep color, or 3MF for color printing.
Light inference (the live depth preview) runs in the renderer via onnxruntime-web on WebGPU; heavy inference (multi-view reconstruction, TSDF fusion, meshing, export) runs in a supervised Python sidecar over JSON-RPC.
The only workspace library the app depends on is @monoclejs/protocol, the
JSON-RPC contract it speaks to the sidecar. Detail in
docs/architecture.md.
Installers for macOS (Apple Silicon, signed and notarized), Windows (NSIS), and Linux (AppImage, x64 + arm64) are built by GitHub Actions on a version tag. Code signing and the full list of GitHub secrets are documented in docs/BUILD.md. For a local build:
pnpm --filter @monoclejs/desktop package # unsigned installer
pnpm --filter @monoclejs/desktop package:bundled # self-contained, bundles Python
scripts/build-signed.sh # signed (env-driven), see docs/BUILD.md
pnpm build / pnpm test / pnpm typecheck / pnpm exec prettier --check .
run across the workspace via Turborepo.pnpm --filter @monoclejs/desktop screenshots regenerates the README shots.Code is MIT. Model weights carry their own licenses, which differ from the code and from each other; the sidecar records each backend's weight license and a commercial-use flag so a shippable build can exclude non-commercial weights. Depth Anything V2 Small is Apache-2.0. Re-check any weight license at the version you pin.
73 commits
Python
48.7%
TypeScript
32.2%
Vue
13.8%
JavaScript
4.1%