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.