# Train RuView Models

Trains, fine-tunes and evaluates RuView pose and embedding models, then publishes them.

- Repository: https://github.com/ruvnet/RuView (101983 stars)
- Category: Data and ML
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ruvnet/RuView --skill ruview-model-training -g -a claude-code -y`
Codex: `npx skills add ruvnet/RuView --skill ruview-model-training -g -a codex -y`
Cursor: `npx skills add ruvnet/RuView --skill ruview-model-training -g -a cursor -y`
Gemini CLI: `npx skills add ruvnet/RuView --skill ruview-model-training -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add ruvnet/RuView`

## Description

Train RuView models, camera-free WiFlow pose (10 sensor signals, no labels), camera-supervised pose (MediaPipe + ESP32 CSI → 92.9% PCK@20, ADR-079), RuVector contrastive embeddings (AETHER, ADR-024), domain generalization (MERIDIAN, ADR-027), local SNN environment adaptation, plus GPU training on GCloud and Hugging Face publishing. Use when building, fine-tuning, evaluating, or shipping a model.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# RuView Model Training

RuView trains several kinds of model. Pick the track that matches the goal; all of them run on a laptop, with an optional GPU path.

## Track A, Camera-free pose (WiFlow), no cameras, no labels

Trains 17-keypoint pose from 10 sensor signals. Fast, fully unsupervised, modest accuracy.

```bash
cd v2
# Pretrain on raw CSI (contrastive)
cargo run -p wifi-densepose-sensing-server -- --pretrain --dataset data/csi/ --pretrain-epochs 50
# Train pose head, save an RVF artifact
cargo run -p wifi-densepose-sensing-server -- --train --dataset data/mmfi/ --epochs 100 --save-rvf model.rvf
```

~84 s on an M4 Pro. Benchmarks: `node scripts/benchmark-wiflow.js`, eval: `node scripts/eval-wiflow.js`.

## Track B, Camera-supervised pose (ADR-079) → 92.9% PCK@20

Uses a webcam + MediaPipe as ground truth, paired with ESP32 CSI. ~19 min on a laptop.

```bash
# 1. Collect paired data (camera + CSI)
python scripts/collect-ground-truth.py        # MediaPipe pose landmarks
python scripts/collect-training-data.py       # CSI capture, time-synced
node scripts/align-ground-truth.js            # align camera ↔ CSI timestamps

# 2. Train (the camera-supervised path through the sensing-server / train crate)
cd v2
cargo run -p wifi-densepose-sensing-server -- --train --dataset data/paired/ --epochs <N> --save-rvf model.rvf

# 3. Evaluate
cd .. && node scripts/eval-wiflow.js          # reports PCK@20
```

Requires `data/pose_landmarker_lite.task` (MediaPipe model). See `docs/adr/ADR-079-camera-ground-truth-training.md`.

## Track C, RuVector contrastive embeddings (AETHER, ADR-024)

CSI subcarrier amplitude/phase → embeddings for re-ID and retrieval (171K emb/s on M4 Pro). Driven by `wifi-densepose-train` + `wifi-densepose-ruvector` (RuVector v2.0.4). Spectrogram embeddings: ADR-076.

The rest: https://github.com/ruvnet/RuView/blob/HEAD/plugins/ruview/skills/ruview-model-training/SKILL.md
