User Manual

Factorial Biomechanics — Video Analysis Platform

Quick Start

Get from upload to exported data in five steps.

1
Sign in and navigate to Video Analysis.
Log in with your Google account or email link. From the dashboard, click Video analysis in the top nav or New video analysis on the home page.
2
Load a video file.
Drag a video onto the upload area or click Choose file. Supported formats: MP4, MOV, WebM, and most browser-decodable codecs.
3
Calibrate distance and select temporal options for grounded results.
Enter a known measurement from the frame, select your desired unit and draw a calibration line for real-world measurements. Select the Video speed for your file, and choose a Data sampling rate (FPS) in the Calibration panel. You can also go to Advanced options to change the model settings and smoothing. The default model is Heavy on desktop or Lite on mobile.
4
Press Play — watch skeleton, angles, and COM render live.
The inference loop runs frame-by-frame, drawing keypoints, skeleton lines, 2D/3D joint angles, and the centre-of-mass marker directly on the video canvas, as selected in Visual options. Charts populate when paused or finished.
5
Export data or save the session.
Click on Save and download button to download CSV, JSON, or an annotated MP4, or save the session to your account so you can reload it later from My Sessions. When saving a new session, the video file is uploaded alongside the analysis data. Free tier uploads are publicly available, paid tiers have privacy options.

Walkthrough

A step-by-step journey through a full analysis session — from sign-in to export.

1 Opening the page

  • Sign in with your Google account or email link — authentication is required before you can access the analysis page.
  • This is a password-free account — when you enter an email address, you will receive an email with a confirmation link to log in. Google authentication is automatic.
  • A model-loading overlay appears with a progress bar while the pose detection model downloads and initialises.
  • On desktop, the Heavy model loads by default; on mobile, the Lite model is used instead. After the first load, the model is cached so subsequent visits start faster.
  • Once the model is ready the overlay disappears and the upload area is shown.

2 Loading a video

  • Drag a video file onto the upload area, or click Choose file to open a file picker.
  • The video stays local — it is decoded entirely in the browser.
  • After loading: the canvas resizes to match the video dimensions, and the timeline slider appears with three handles (trim-start at 0, playhead at the midpoint, trim-end at the video duration).
  • The model runs one warm-up inference to compile GPU shaders, preventing a stutter on the first real frame.
  • Charts are initialised with empty traces, and the Play and Record buttons become active.

See Uploading a video for supported formats and tips on large files.

3 Session details

Give your session a title, name your subject, add notes and keywords for a more detailed analysis.

4 Calibrating

Calibration is a multi-part process: spatial (pixels to real-world units) and temporal (video capture speed and data sampling rate).

  1. Spatial — enter a real-world reference length, select the unit (m / yd / ft / px). Examples include the height of the subject, known marks on the ground, or a real life measuring stick.
  2. Click Draw reference, then click two points on the canvas that match that known distance.
  3. Temporal — set the capture speed if the video is slow-motion (1/2× if shot at 60fps and slowed, 1/4× if shot at 120fps, 1/8× if shot at 240fps, etc.) and choose how many frames per second you want to analyze by selecting the Data sampling rate (FPS). For cameras that record high-speed video (like many action cams), keep the video speed at 1× and ensure that the Data sampling rate is set to the amount of frames per second that the video was shot at. If the Data sampling rate is lower than the frames per second of the recording, not all frames will be analyzed.
  4. Click Apply calibration to confirm. This clears the inference cache and recalculates the slider range.

The red warning "Units in px until calibration" disappears once calibration is applied. You can re-calibrate at any time — the cache resets each time.

See Calibration for all options and units.

5 Visual options

These toggles will only affect what you see as the video plays and when you export the annotated MP4, not the data generated from the videos.

  • Chronometer — elapsed time stamp drawn on the video canvas.
  • Keypoints — dots at each detected body landmark.
  • Skeleton — lines connecting keypoints to form a stick figure.
  • Angles — numerical 2D joint angle values drawn on the canvas.
  • 3D angles — depth-aware angle text labels on the canvas (experimental).
  • Center of mass — estimated whole-body COM position marker.
  • Inertia vector — arrow indicating COM average movement direction.
  • Anonymization — clears the video frame so only overlays are visible, removing identifiable visual information.
  • Score threshold — shows the model certainty for the position of each joint. Raise toward 1.0 for a cleaner skeleton (suppresses low-confidence keypoints), or lower toward 0 to show landmarks in occluded frames.

6 Advanced options

  • Model selection — choose Lite, Full, or Heavy in the sidebar. Models are cached in memory after first use, so switching back to a previously loaded model is instant. Using the Lite model is recommended for computers with less processing power.
  • Smoothing — on by default, this reduces keypoint jitter across frames. Disable it for frame-by-frame precision on very fast movements. Changing this setting triggers a model reload.
Tip: You can adjust all detection settings while paused — changes trigger an immediate redraw from the cache.

See Pose detection models and Smoothing for full details.

7 Running analysis

  • Press Play to start the inference loop. Each frame is: video drawn to canvas → pose estimated → biomechanics calculated (COM, angles, velocities) → overlays drawn → data cached.
  • Charts update when you pause or release the slider (not every frame, for performance).
  • Playback auto-stops at the trim-end handle and loops back to the trim-start position.
  • Use the playback speed buttons (100% – 10%) to slow down live playback for closer inspection. Slowing down the speed of video playback is recommended for computers with less processing power.
  • The Data lock button freezes the cache so replaying a section does not overwrite existing data.

See Playback controls for the full toolbar reference.

8 Reviewing results

  • Pause playback to inspect the data at your own pace.
  • Press the Data lock button to avoid unwanted re-writes as you evaluate the performance.
  • Scrub the centre slider handle to jump to any frame — the canvas redraws instantly from the cache.
  • Step forward or backward one frame at a time with the skip buttons.
  • Click any point on a chart to seek the video to that exact timestamp.
  • Toggle overlays on or off (skeleton, angles, COM, etc.) while paused — each change redraws immediately.
  • Use the Kinematics 3D chart to rotate and zoom the spatial trajectory.
  • The 3D skeleton view (below the charts) updates automatically with the current frame's depth data.
Tip: Toggle overlays while paused to compare the raw video against different visual layers without re-running inference.

See Visual overlays, Charts, and 3D Skeleton for details.

9 Adding annotations

  • Click a point on any chart to select it, then double-click to place an annotation at that location.
  • Annotations display the X/Y coordinates and include an arrow pointer to the data point.
  • The annotation can be moved by clicking and dragging; the arrow will stay at the precise coordinates, as will the text in the CSV file.
  • To remove an annotation, click on the text, select all, delete it and hit enter or click outside of it.
  • Annotations are saved with the session and included in data exports, so they persist when you reload.

See the Annotations section under Charts for more.

10 Saving your session

  • Ensure details are filled in: title, subject, notes, keywords.
  • Click Save and download on the bottom left of the window.
  • Select which type of session you would like to save: Private or Public. Anyone can save public sessions, while private sessions require a subscription tier.
  • For new sessions: the video file is uploaded to cloud storage (a progress bar shows upload status).
  • For re-saves: only the analysis data is re-uploaded — the video path is reused.
  • If you exceed your private session limit, you will be prompted to save as public instead.
  • After saving: the URL updates with the session ID, and the data lock engages automatically to protect the saved data.

See Saving a session for full details on what gets stored.

11 Exporting data

  • Click Save and download at the bottom of the sidebar.
  • Visuals can be saved from the playback bar and the graph controls.
  • Raw JSON — full data dump for programmatic use.
  • Wide CSV — configure columns (positions, velocities, angles, COM, scores, annotations) and keypoint groups (face, upper limb, hands, lower limb, feet) before downloading.
  • Trimmed CSV — only data within the trim handles.
  • Tidy CSV — long format for BI tools and statistical software.
  • Annotated MP4 — start recording before pressing Play, then stop to download.
  • Snapshot — capture the current canvas as a PNG.

See Data export for the full format reference and CSV column options.

12 Revisiting a session

  • Navigate to Home (top left) to see your session history, order by title, subject or date, and search by keywords.
  • From My Sessions, click the session title link to reopen it.
  • The page reloads with saved data: cache pre-populated, charts restored, annotations applied, calibration and model settings restored.
  • Data lock is on by default to protect saved data.
  • To re-analyse: unlock data, re-calibrate if necessary, then press Play.
  • Guest sessions (opened from the Community Directory) are read-only — you can view and export the data but not modify or delete it.

See Opening a session and Community Directory for more.

Video Analysis — Full Reference

All features available on the Video Analysis page.

Uploading a video

The Video Analysis page accepts any video format your browser can decode natively — typically MP4 (H.264/H.265), MOV, WebM (VP8/VP9/AV1), and OGG.

  • Drag & drop — drag a file from your file manager directly onto the video upload area.
  • File picker — click the Choose file button to open a system file dialog.
  • All decoding and inference run locally in the browser.
  • Very large files (>500 MB) may be slow to seek; consider trimming beforehand.

Pose detection models

Three pose detection model variants are available:

Model Speed Accuracy Best for
Lite Fastest Lower Real-time preview, mobile devices (default on mobile)
Full Moderate Good General use
Heavy Slowest Highest Research, slow-motion footage (default on desktop)

The default model is Heavy on desktop-sized screens and Lite on mobile to preserve performance. Each model is loaded once on first use and kept in a cache — switching back to a previously loaded model is instant. Computers with good processing power will be able to use the Heavy model in real time, with no lag. The Score threshold slider (0–1, step 0.05, default 0.30) filters out keypoints below a confidence level — raise it to suppress noise, lower it to capture more landmarks in occluded frames.

Smoothing

The Smoothing toggle (in the model/detection panel) controls the built-in temporal smoothing filter. When enabled (the default), keypoint positions are stabilised across consecutive frames to reduce jitter. Disabling smoothing gives raw per-frame detections, which may be preferable for very fast movements or when analysing frame-by-frame discontinuities.

Changing the smoothing setting triggers a model reload. The smoothing state is saved and restored with sessions.

Calibration

The Calibration panel controls two independent concepts: spatial calibration (converting pixels to real-world units) and temporal calibration (accounting for the video's true capture speed and choosing a data sampling rate).

Spatial calibration

  1. Open the Calibration panel in the settings sidebar.
  2. Enter the real-world length in the reference measure field.
  3. Select the unit: m (metres), yd (yards), ft (feet), or px (pixels — disables unit conversion).
  4. Click Draw reference, then click two points on the video frame that correspond to the known distance (e.g., a ruler, mat edge, or body height).
  5. Click Apply calibration to confirm. Until you press this button, all spatial outputs remain in pixels.
A red warning — "Units in px until calibration" — is shown below the Calibration panel until a valid spatial calibration has been applied.

Temporal calibration

  • Capture speed (Video speed) — set this if the video was recorded in slow-motion. Options: , 1/2×, 1/4×, 1/8×, 1/10×, 1/20×. This scales timestamps so that velocity and acceleration calculations reflect real-world time, not the slowed-down playback.
  • Data sampling rate (FPS) — determines how many frames per second the inference engine samples. Common values: 30, 60, 120, 240, 300 FPS, plus broadcast standards (23.976, 24, 25, 29.97, 48, 50, 59.94, 100) and a Limitless option that samples every decoded frame.

Both the capture speed and sampling rate are applied when you click Apply calibration. Without calibration, spatial outputs are reported in pixels and velocity in px/s.

Visual overlays

All overlays are toggled independently via the Display panel (accessible from both the sidebar and the mobile offcanvas menu). Changes take effect immediately on the next drawn frame.

OverlayDescription
ChronometerElapsed time stamp drawn in the bottom-left corner of the video canvas. Adjustments to Video speed are represented as they are applied.
KeypointsBlack dots with white outline at each detected body landmark.
SkeletonLines connecting keypoints to form a stick figure.
2D AnglesNumerical joint angle values drawn next to each joint on the canvas (hip, knee, ankle, shoulder, elbow).
3D AnglesDepth-aware angle values drawn to the left of each joint on the 2D canvas (knee and elbow). This toggle does not control the 3D skeleton view — it only adds 3D angle text labels on the main video canvas.
Centre of Mass (COM)Estimated whole-body COM position shown as a filled dark-purple circle with a white outline.
Inertia vectorArrow indicating the COM average movement direction and magnitude, computed from the last 33 COM history points.
AnonymizationWhen enabled, the video frame is completely cleared (blank canvas) and only the overlays (skeleton, angles, COM, etc.) are drawn on the empty background. This removes all identifiable visual information from the subject.
Score thresholdSlider (0–1, step 0.05, default 0.30) — keypoints below this confidence score are hidden. Adjust higher to suppress noisy detections or lower to show more landmarks in occluded frames.

Playback controls

The bottom toolbar contains the main playback controls. On mobile, some buttons move into the overflow menu.

  • Play / Pause — start or stop inference playback. When the playhead reaches the trim-end handle, playback automatically stops and loops back to the trim-start position.
  • Timeline slider — defines the frames that populate the data in graphs and CSV — a three-handle slider:
    • Left handle — trim start (in-point). Sets where playback begins.
    • Centre handle — playhead / scrub position. Drag to jump to any frame. When paused, the canvas redraws from cached data instantly.
    • Right handle — trim end (out-point). Sets where playback stops.
  • Skip frames — step forward or backward one frame at a time while paused.
  • Data lock — freezes the inference cache so that new frames no longer overwrite existing data. Useful for inspecting a specific segment without losing previously captured data when scrubbing or replaying.
  • Playback speed — controls the actual video playback rate. Options: 100%, 75%, 66%, 50%, 30%, 10%. This is separate from the Capture speed in the Calibration panel (which scales timestamps for slow-motion video).
  • Volume / Mute — toggle audio mute on or off.
  • Snapshot — captures the current canvas frame as a PNG download. On desktop it appears as a toolbar button; on mobile it is accessible via the overflow menu.
  • Redraw — forces a re-render of the current frame from cached data.
  • Picture-in-Picture (PiP) — detaches the video into a floating system overlay so you can view charts while the video plays.

Charts

All charts update as the video is paused or when it ends. A vertical dashed line tracks the current playback position. Clicking a point on any chart seeks the video to that timestamp. For easy video and chart visualization, use Picture in picture.

ChartWhat it shows
Kinematic Data (3D)Interactive 3D scatter plot showing keypoint position trajectories over time (Time vs. Horizontal X vs. Vertical Y). One trace per landmark plus COM. Rotatable and zoomable. Axes scale to the video's aspect ratio.
Vertical DisplacementVertical (Y) position of selected keypoints over time. Includes COM trace.
Horizontal DisplacementHorizontal (X) position of selected keypoints over time. Note: X values are on the vertical axis and time on the horizontal axis for this chart.
Angular / Angles2D and 3D joint angle traces over time. Includes hip, knee, ankle, shoulder, and elbow angles, plus COM vertical position on a secondary axis. Some traces are hidden by default — click the legend entry to reveal them.
Calculations (COM)COM velocity, speed, and acceleration derived from calibrated displacement data.
Keypoint SpeedInstantaneous speed of each selected landmark over time, as well as vertical and horizontal velocities for each keypoint.

Annotations

Double-click a chart to add an annotation at the last-clicked point. The annotation displays the X and Y coordinates and includes an arrow pointer. Annotations can be moved by dragging, without affecting the data or the coordinates they point to; clicking on the x,y coordinates allows the text to be changed; substituting the coordinates with common events e.g. toe-off, touchdown, peak, etc. is recommended. To remove an annotation, clear its text. Annotations are saved with the session and included in data exports.

Trace visibility

Click a legend item to toggle that trace on or off. Double-click a legend item to isolate it (hide all others). This applies to all charts.

3D Skeleton Experimental

The 3D Skeleton panel renders a real-time interactive 3D skeleton view below the charts. It uses the depth estimates from the pose model to reconstruct a 3D stick figure that updates automatically during inference. Because depth is inferred from a single monocular camera, this view is approximate and best used for qualitative assessment.

The view can be rotated by dragging and zoomed with the scroll wheel. The 3D skeleton is always visible when keypoint data is available — there is no separate toggle to show or hide it.

The 3D Angles switch in the Display panel controls 3D angle text labels on the 2D video canvas, not the 3D skeleton view.

Recording & Snapshots

  • Record annotated video — click Record button and the video will play and analyze until stopped. The app encodes an MP4 of the annotated canvas (keypoints, skeleton, angles, COM). Click Stop recording to finalize and download the file. Recording automatically stops when playback reaches the trim-end handle.
  • Snapshot — captures the current canvas frame as a PNG image and triggers an immediate download. On desktop, the snapshot button is in the bottom toolbar. On mobile, it is accessible via the overflow menu item.

Recording runs at the same resolution as the source video. Very long recordings may generate large files — recording at a slower playback speed does not reduce file size.

AI Chat Assistant

The Chat Assistant panel (accessible via the chat icon in the toolbar) uses AI to answer questions about your session. It can answer questions about the current session data, interpret angles and velocities, and suggest follow-up analyses. The assistant can also receive chart screenshots to analyse visual patterns.

What the assistant can do:

  • Summarize biomechanical findings visible in the charts.
  • Compare observed angles to normative ranges.
  • Suggest coaching or clinical observations based on the data.
  • Analyse chart screenshots for visual patterns.

Example prompts:

  • "What is the peak knee flexion angle and when does it occur?"
  • "Does the COM trajectory suggest a lateral shift during this movement?"
  • "Compare left and right hip angles through the cycle."
AI Chat is available to all users, with added capabilities for paid tiers. The assistant does not store conversation history between sessions.

Saving a session

Click Save session in the toolbar to persist the current analysis to your account. You will be prompted to fill in:

  • Title — a short descriptive name for the session.
  • Subject — athlete or patient identifier (kept private unless you set visibility to public).
  • Notes — free-form observations or clinical notes.
  • Keywords — comma-separated tags for filtering in My Sessions.
  • PrivacyPrivate (only you can see it) or Public (appears in the Community Directory). If you have reached your private session limit, you will be prompted to save as public instead.

What gets uploaded

Session data (keypoint coordinates, angles, COM, annotations, calibration settings, trace visibility, and model configuration) is stored in the cloud. For new sessions, the original video file is also uploaded to cloud storage. A progress bar shows the upload progress. When re-saving an existing session, the previously uploaded video path is reused and the video is not re-uploaded, but calibration, annotations and details can be overwritten.

Private session limits

Each tier has a maximum number of private sessions. If you exceed your limit, you will be asked whether to save as a public session instead.

Data Export

The Export panel offers multiple formats. All exports use the data currently in memory (i.e., up to the last processed frame).

FormatDescription
Raw JSONFull keypoint coordinates, angles, COM, and metadata for every processed frame. Suitable for programmatic analysis.
Trimmed CSVCleaned CSV covering only the trim region (defined by the left and right handles on the timeline slider).
Tidy CSVLong-format CSV — one row per keypoint per frame. Designed for BI tools like Looker Studio, or statistical software (R, Python/pandas).
Wide CSVOne row per frame with all selected data as separate columns. Configurable via the CSV Export accordion (see below).
Annotated MP4Recorded video with overlays baked in (requires recording to have been started before playback).
Chart PNGDownloads the currently visible chart as an image.

Wide CSV export options

The CSV Export accordion in the sidebar lets you select exactly which columns to include in the Wide CSV:

  • Column groups (checkboxes): 2D positions (px) (default on), 2D positions (calibrated), Confidence scores, Keypoint velocity & speed, 3D keypoints, Center of mass, COM velocity & speed, 2D joint angles (default on), 3D joint angles, Annotations.
  • Keypoint selection — a collapsible sub-panel with group filters: Face & head, Upper limb (shoulder → wrist), Hands (pinky, index, thumb), Lower limb (hip → ankle), Feet (heel, foot index). Quick buttons: All / None.

My Sessions

The My Sessions page lists all analysis sessions you have saved to your account.

Sessions table

The table columns are:

  • Title — the name you gave the session on save. This is a clickable link that opens the session.
  • PrivacyPrivate or Public.
  • Subject — the subject/athlete identifier entered at save time.
  • Keywords — tags for quick filtering. Use the search box above the table to filter by any column.
  • Date — timestamp of when the session was saved.

A Give feedback modal is available from this page to share suggestions or report issues.

Each tier has a private session limit. Upgrade to a higher tier to increase your session storage.

Opening / resuming a session

Click the session title link in the table to open that session. The Video Analysis page will load with the saved keypoint data, charts, annotations, model settings, and calibration pre-populated. You can continue analysing from where you left off or export the data.

Note: the original video is not automatically re-loaded into the player. If you want to see the video alongside the data, re-upload the same local file after opening the session.

Deleting a session

Click the trash icon at the end of a session row and confirm the deletion in the dialog. This action is permanent — the session data is permanently removed and cannot be recovered.

Community Directory

The Community Directory shows all sessions that users have set to Public.

  • Browsing — sessions are displayed in a searchable, sortable table similar to My Sessions. The table includes an additional Author column showing the session creator's alias. You can filter by title, subject, author, or keywords.
  • Opening a community session — click the session title link to open that session in a new tab on the Video Analysis page. You can view and explore the data but cannot edit or delete another user's session.
  • Difference from My Sessions — My Sessions shows only your own data (private + public). Community Directory shows only public sessions from all users, including your own public ones.