FAQ

Frequently asked questions

Short answers to the questions that come up most. Can't find yours? Reach us from the website.

Setup & requirements

What do I need to run PoseLab?

The desktop app on macOS (Windows in deveopment), a PoseLab account, and a wired USB webcam for capture. Pose estimation runs on-device — no internet is required once you're activated.

Do I need Python installed?

Only for the advanced features. Custom metric scripts and BLE device plugins run in python3, so they require python3 on your PATH. Core capture, pose, and the built-in Angle/Distance metrics do not. If Python is missing, PoseLab shows a "Get Python" prompt in the relevant Settings sections.

Where does PoseLab store my data?

In a local application-support folder, per client and session — recordings, keyframes, device logs, metric configuration, and workbooks. Opt in to cloud backup to copy it off-machine and restore it elsewhere.

Cameras & pose

Why do I set a "viewing direction" on a camera?

A single 2D camera captures one anatomical plane. Front / Side / Top maps to Frontal / Sagittal / Transverse, and PoseLab projects your metrics onto that plane so an angle or distance means the same thing regardless of which camera measured it.

Can I track more than one camera at once?

Yes. Pose runs independently per Live Camera panel, so you can split the layout and watch several angles simultaneously, each with its own overlay.

Account, licensing & offline

Can I use PoseLab offline?

Yes. Your seat is verified on launch, and the app keeps working offline within a grace window after the last successful check.

What does cloud backup cover?

Your workspace — clients, sessions, and configuration — backed up to secure cloud storage and restorable on another machine.

Metrics & plugins

Angle isn't enough. What are my options?

Write a custom metric script in Python — any pose-derived value you can express in a compute() function becomes a first-class metric. See Custom metric scripts.

Can I test a plugin or metric without hardware?

Yes. Plugins have Run Mock profiles that feed synthetic BLE frames, and metric scripts have Test Metrics, which sends a deterministic standing pose. Both route output to the Developer Console.

Why isn't my plugin receiving data?

Frames route by characteristic: a plugin only receives frames whose characteristic matches its data_char. Check the UUID (they compare case-insensitively, and 16-bit ids match their 128-bit form), and confirm the plugin appears in the Devices panel — load errors show there and in the Developer Console.

Do my plugin's raw bytes reach my metric scripts?

No — only the named values you return from process() are exposed, as customDeviceData. Raw BLE bytes, pose joints, and viz packets are never shared automatically; you choose what to expose.

How do I share metrics or plugins with my team?

Metric configurations and workbook templates export as JSON; plugins and metric scripts are plain Python files you can copy directly (companion shader files export beside their script). Drop them into the matching directory on another machine and press Reload.