♥ Support

Help & Reference

Reference documentation for all biomex.studio tools. For step-by-step workflows see Tutorials.

Overview

biomex.studio is a free, browser-based biomechanics analysis platform. All processing runs locally in your browser — no data is uploaded to any server, no account is required, and the tools work offline after loading. Designed for undergraduate and postgraduate sports science students and practitioners.

Key principles

  • Local processing — your video and data never leaves your device.
  • Session files — export a session JSON from Analyse to save your work and reload it later. Session files are human-readable JSON.
  • Calibration — distances are in pixels until you calibrate a scale. Always set scale and FPS before exporting kinematics.
  • Filtering — Kinematics, Angle-Angle, Normalise, Signal, and IMU all offer Butterworth low-pass filtering. The default 6 Hz follows Winter (2009) for slow movements; increase to 10–20 Hz for fast sports movements.

Citing biomex.studio

Please cite biomex.studio if you use it in published research, teaching materials, or professional practice. A Cite button appears in the top-right of every page and generates formatted citations with today's date, plus downloads for reference managers.

Recommended citation (APA)

Callaway, A. (). biomex.studio. https://biomex.studio

The year is populated dynamically when you use the Cite button — it will always reflect the year of access.

🎬 Analyse

biomex.studio/analyse

The core video analysis tool. Load a video, place annotations frame by frame, then export kinematics or a full session backup.

Annotation types

  • Marker (M) — single point. Tracks XY position over time.
  • Angle (A) — three points (proximal, vertex, distal). Tracks the included angle over time.
  • Distance (L) — two points. Tracks the distance between them.
  • Line — two points without measurement. For reference lines.
  • Shape — rectangle or ellipse. Visual reference only.

Workflow

  1. Load a video (MP4 / H.264 recommended; MOV and WebM also work).
  2. Set FPS and scale in the Calibration tab. Click Apply Calibration.
  3. Select an annotation tool and click the video to place points.
  4. Step through frames with . Copy the annotation to the next frame with F, then drag to adjust, or enable auto-tracking.
  5. Open the Tools panel to access Kinematics, Dual Video, External Data import, Print Report, and Session export.

Auto-tracking

Toggle tracking on any marker, line, or angle annotation — either via the ⟳ Off/ON button on the annotation card, or by right-clicking the annotation directly on the video. Lines track 2 points, angles track 3 — each point gets its own independent template, so a joint angle defined by hip / knee / ankle markers will follow all three through the movement. The tool uses normalised cross-correlation (NCC) template matching. Works best with high-contrast points on plain backgrounds. Adjust Template size and Search radius in the Calibration tab if tracking is unreliable. If one point of a multi-point annotation is lost (an orange ! appears above the affected handle), the other points keep tracking; if all are lost, tracking disables itself.

Correcting tracking drift

If a tracked point drifts off the feature, the recovery flow is: pause the video, switch to the Select tool (V), drag the handle back to the correct position, then press play. The template re-captures automatically from the corrected position, the lost flag clears, and tracking continues forward from there. If you'd rather refresh templates without dragging individual handles — say all points have drifted together — right-click the annotation and choose ⟳ Refresh tracking; this re-captures every point's template at its current visible position. The frames before the pause keep their (drifted) positions — to fix those, scrub back and drag each frame's point manually. For single-frame nudges, the button on the annotation card copies the current frame's points to the next frame.

Dual video

Enable in Quick Actions. Loads a second video side-by-side. Both share transport controls. Use the sync offset slider (±5 s) to align footage from different cameras.

External data import

Import a CSV or Excel file containing time-series data (force, EMG, GPS...). A waveform strip appears below the video and stays synchronised during playback. Map the time column and adjust the offset to align it with the video.

Session files

Export a Session JSON from Tools to save everything: calibration, all annotations with their frame data, session metadata, and video filename. Load a session JSON via Tools > Load Session to resume.

Kinematics chart

Click any tracked annotation (marker, distance, or angle) to open the kinematics chart docked at the bottom of the video. Switch between Position, Velocity, and Acceleration. The chart shows a playhead cursor that follows the current video frame, and marks peaks (red) and troughs (teal) on the trace automatically. The current frame's value appears in a pill at the top right of the chart toolbar.

Annotated video export

Export a video file with all annotations rendered on top, frame by frame. Tools panel > Export > Annotated Video ✂. Choose the frame range and output format (WebM in Chrome/Firefox, MP4 in Safari where supported, with automatic fallback). The render runs at roughly real-time inside your browser using the MediaRecorder API — your video never uploads. Useful for student assignments and coach feedback where the angles need to be visible in the footage itself.

Tip: Keep your video file and session JSON in the same folder. The session stores the filename; you reload the video manually when resuming.

📈 Kinematics

biomex.studio/kinematics

Full-page viewer for position, velocity, and acceleration derived from tracked annotations. Opens directly from the Analyse tool, or accepts a CSV upload.

Data input

  • From Analyse — click Kinematics in Quick Actions, then Full view →. Data is passed via localStorage.
  • CSV upload — upload a file with columns: frame, time, and one or more value columns. A header row is assumed.

Filter

On by default at 6 Hz Butterworth low-pass. Applied to position data before differentiation — essential for acceleration, which amplifies noise heavily. Options: Butterworth, Moving average, Savitzky-Golay, or None (raw).

Warning: Differentiating unfiltered manually-digitised position data produces unusable acceleration values. Always filter unless your data is already very smooth.

Normative reference bands

Select Hip, Knee, or Ankle (gait) from the Norm. reference dropdown. Adds a shaded orange region showing the typical ROM range from Winter (2009). Assumes the y-axis is in degrees.

↗ Angle-Angle

biomex.studio/angle

Joint coordination plots. Two angle time-series are plotted against each other to reveal coordination patterns across the movement cycle.

  • Colour by time — dark to light gradient shows movement direction through the cycle.
  • Cycle detection — automatically segments the data into cycles using local minima. Overlays all cycles and the mean.
  • Coupling angle — mean vector coding angle computed between consecutive data points. 0°/180° = in-phase; 90°/270° = anti-phase.
  • Filter — off by default. Applied to both angle series before plotting if enabled.

⇄ Compare Sessions

biomex.studio/compare

Overlay kinematics from two session JSON files. Designed for pre/post intervention, left/right limb comparison, or between athletes.

  • Load two session JSON files exported from Analyse (Tools > Export > Session JSON).
  • Select which annotations to compare from each session. Annotations need at least 2 tracked frames.
  • Toggle Align to frame 0 to align both series to their start rather than their original timestamps.
  • Switch between Position, Velocity, and Acceleration views.
  • The difference trace (orange dashed) shows Session A minus Session B at each time point.
  • The metrics table compares mean, SD, peak, and ROM for each session with colour-coded difference values.
Note: The tool extracts data from the stored frame data in the session JSON. Calibration is applied if it was set in the original session. If not calibrated, values are in pixels.

⬆ Jump Analyser

biomex.studio/jump

Force plate analysis for countermovement jumps (CMJ), squat jumps (SJ), and drop jumps (DJ). Upload vertical GRF data as CSV or Excel.

Required data format

  • Columns: time (s) and vertical force (N). Headers assumed on row 1.
  • Include at least 0.5 s of quiet standing before the jump for body weight estimation.
  • Typical sample rates: 500–2000 Hz.

Key outputs

  • Jump height — computed by both flight time method (Linthorne, 2001) and impulse-momentum method (Moir, 2008).
  • RSI — reactive strength index (jump height / contact time). For DJ only.
  • Peak force and net impulse.
  • Rate of force development — peak RFD in N/s.

⚡ Sprint Mechanics

biomex.studio/sprint

Compute velocity and acceleration from split times or a velocity-time series.

Split times mode

Enter cumulative times (not split times — the tool computes those) at each distance. Works with timing gates, video timestamps (frame / FPS), or stopwatch. Default splits: 0, 5, 10, 20, 30, 40, 60 m. Add or remove rows freely.

Velocity series mode

Paste or upload a velocity-time series from GPS, radar gun, or optical tracking. One value per line (velocity only) or two columns (time, velocity).

Key metrics

  • Peak velocity (m/s and km/h) and time to peak.
  • Flying 10m best — automatically found as the fastest 10 m split.
  • Split average velocity for each interval.
  • Peak acceleration in velocity series mode.

〜 Time Normalise

biomex.studio/normalise

Resample repeated signals to a 0–100% cycle time, then compute mean ± SD across cycles. Designed for gait, EMG, force, and any cyclical data.

Modes

  • Simple normalisation — treats the entire uploaded signal as one cycle.
  • Detect cycles — finds cycle boundaries using a threshold on the signal. Set the threshold as a percentage of signal range.

Pre-filter

Toggle Pre-filter signal to apply a Butterworth low-pass before normalising. Useful when noisy data causes missed or false cycle boundaries. Set the cutoff and sample rate.

Normative reference bands

After running, select a joint (Hip, Knee, or Ankle) from the Compare to normative gait card. Overlays Winter (2009) mean ± 1 SD from Table 4.1. Assumes the normalised data represents one complete gait cycle (0–100%).

〜 Signal Processing

biomex.studio/signal

Apply processing operations to a single time-series column from CSV or Excel. Before and after are overlaid on the same chart.

Operations

  • Filter — Butterworth LP/HP/band-pass, moving average, or Savitzky-Golay. Butterworth is zero-phase (forward-backward application, 4th order effective).
  • Rectify — full-wave (absolute value). First step in standard EMG processing.
  • RMS envelope — moving root mean square. Set window in milliseconds. Typical: 50–100 ms for EMG.
  • Differentiate — first derivative via central differences. Output in signal units per second.
  • Integrate — cumulative trapezoid rule. Output in signal units × second.
  • FFT spectrum — power spectral density. Identifies dominant frequencies and noise floor. Use this first to choose a filter cutoff.
  • Peak normalise — scales to 0–100% of peak absolute value.
EMG workflow: Run FFT first to see the spectrum → Band-pass filter (10–500 Hz) → Rectify → RMS envelope. See the EMG tutorial for a walkthrough.

📡 IMU / Step Detection

biomex.studio/imu

Upload accelerometer data from a wearable device and automatically detect footstrikes. Works with single-axis (vertical) or resultant acceleration.

Settings

  • Threshold — peaks above this value are counted as footstrikes. Start at 1.2 g for walking, 2–3 g for running. Lower if steps are missed; raise if false detections appear.
  • Minimum gap — minimum time between steps (ms). Prevents double-counting within a single footstrike. 250 ms is appropriate for running; 400 ms for walking.
  • Leg length — optional. Used to estimate step length from step time via Grieve & Gear (1966).

Outputs

  • Step count, mean cadence (steps/min), mean and SD step time.
  • Symmetry index — compares odd vs even steps (left vs right approximation). Values above 6% asymmetry may be clinically relevant (Robinson et al., 1987).
  • Step-by-step table with time, step time, cadence, and peak acceleration.
Limitation: The tool cannot distinguish left from right footstrikes without additional labelling. Odd/even step alternation is used as a proxy for L/R symmetry. This is valid for continuous walking/running but not for step-counting tasks with starts and stops.

⚖ Centre of Mass

biomex.studio/com

Whole-body centre of mass from a single photograph using segmental analysis (de Leva, 1996). Digitise 17 joint centres, select sex-specific segment parameters, and the CoM position is computed.

Digitising order

Points must be placed in the specified order: vertex, right shoulder, left shoulder, right hip, left hip, right knee, left knee, right ankle, left ankle, right elbow, left elbow, right wrist, left wrist, right foot, left foot, mid-cervical, mid-lumbar.

Teaching note: Segment parameters from de Leva (1996) are sex-specific proportional masses and CoM positions. The tool uses Table 4 (males) and Table 5 (females). Students should understand these come from cadaver and imaging studies and represent mean values — not every individual.

🎯 Projectile Motion

biomex.studio/projectile

Teaching tool for projectile motion analysis from a stroboscopic image. The worked solution panel fills in 10 equations with your actual values as you digitise — designed to be followed alongside student notes.

Steps

  1. Upload a stroboscopic photo or composite image showing the projectile at multiple positions.
  2. Set calibration: draw a line over a known reference distance in the image.
  3. Set the time interval: enter the stroboscope frequency (Hz) or video frame rate.
  4. Click each projectile position from first to last (minimum 3).
  5. Click Analyse. The right panel steps through all 10 calculations.

Worked equations

Steps computed: time interval → horizontal displacements → vertical displacements → horizontal velocity → initial vertical velocity (with gravity correction) → launch speed → launch angle → maximum height → time of flight → theoretical range. Each step shows the general formula, substituted values, and result.

Air resistance

If the measured trajectory deviates from the theoretical parabola by more than 5% of the height range, a note appears explaining drag effects. Deviation is larger for light, fast projectiles (shuttlecock, tennis ball) and negligible for heavy ones (shot put).

🧍 Posture Analysis

biomex.studio/posture

Compute joint angles and clinical flags from a single photograph. Four preset landmark kits cover common assessment scenarios.

Presets

  • Full body lateral — ear, shoulder, hip, knee, ankle. Computes trunk inclination, head-forward posture angle, knee stance flexion, and plumb line deviations at three levels.
  • Full body frontal — bilateral shoulders, hips, knees, ankles. Computes shoulder and hip height asymmetry, trunk lateral lean, and left/right knee alignment deviation.
  • Lower limb (Q angle) — ASIS, patella, tibial tubercle, ankle. Computes Q angle and HKA deviation.
  • Upper limb / shoulder — C7, bilateral acromia, elbows. Computes shoulder height asymmetry and cervical lateral deviation.

Clinical flags

Each measurement is flagged as Normal, Mild, or Notable based on published reference values. Thresholds are sourced from Kendall et al. (2005), Norkin & Levangie (2011), Magee (2014), and Myer et al. (2010). These are reference values — clinical interpretation requires professional judgement.

🔗 Kinetic Chain

biomex.studio/kinetic-chain

Analyse proximal-to-distal sequencing in throwing, kicking, and striking movements. Plots peak angular velocity for each segment in the kinetic chain against time, revealing whether the distal cascade pattern is present.

Sequencing principle

In skilled overhead throwing and kicking, proximal segments peak first and decelerate before distal segments peak. This transfers energy efficiently along the chain. The tool identifies whether each segment peaks after the one proximal to it and computes a sequencing score.

📊 Reliability

biomex.studio/reliability

Multi-trial averaging and reliability analysis for repeated measurements. Computes mean ± SD curves, ICC, CV, SEM, and MDC across multiple trials.

Key outputs

  • ICC(2,1) — two-way mixed effects, absolute agreement. Benchmarks: >0.75 good, >0.90 excellent (Koo & Li, 2016).
  • CV% — coefficient of variation as percentage. Lower is better.
  • SEM — standard error of measurement in original units.
  • MDC — minimum detectable change (1.96 × √2 × SEM). The smallest real change beyond measurement error.
  • Bland-Altman plot — for two-trial case, shows agreement with limits of agreement (mean diff ± 1.96 SD).

🌊 Noise Simulator

biomex.studio/noise

Teaching tool for filter design. Pick a clean signal preset (CMJ, drop landing, walking GRF, sine wave), add noise sources (mains hum, baseline drift, broadband, quantisation, spikes), then apply a filter and see what survives.

Filters

  • Butterworth low-pass — zero-phase, second-order. Cutoff in Hz. The standard force-plate filter.
  • Butterworth high-pass — removes drift below cutoff.
  • Notch — kills a narrow band, auto-tuned to your local mains frequency (50 or 60 Hz).
  • Moving average — simple but smears peaks. Window length in samples.

Reading the quality bars

Four metrics turn green / amber / red based on filter performance: RMSE vs the clean signal, peak preserved %, impulse preserved %, and SNR in dB. Aggressive low-pass filters score well on RMSE but lose peaks — useful to demonstrate the trade-off.

Tip: Try the "Too aggressive" preset on a drop landing to see why over-filtering hides the impact peak.

⚙ Free Body Diagram

biomex.studio/fbd

Interactive single-segment static equilibrium with a movable muscle attachment. Pick a preset (elbow flexion, ankle plantarflexion, knee extension), then drag sliders to see how segment angle, muscle insertion distance, line-of-action angle, and external load change the required muscle force, mechanical advantage, and joint reaction force.

What's computed

  • Muscle force — required to maintain static equilibrium given the load and the moment arms.
  • Mechanical advantage — ratio of load arm to muscle moment arm. <1 means the muscle is at a disadvantage.
  • Joint reaction force — vector sum of all forces at the joint. Usually much larger than the external load.
  • Equilibrium check — ΣFx, ΣFy, ΣM. Should all be ≈ 0 when the system is in static equilibrium.

Session save/load

Save your slider configuration as a JSON file with the Save session button, then reload it later to continue a worked example or share a setup with students.

↑ GRF Vector Overlay

biomex.studio/grf

Pair a sagittal-view video with a force-plate CSV to draw the ground reaction force vector on the footage. Scrub the video, see the vector grow and shrink in real time.

Workflow

  1. Load a sagittal-view video (side-on view of the action).
  2. Load a force CSV. The tool auto-detects the vertical force column (Fz, vGRF, force_z…). For 3-axis files (Fx/Fy/Fz), the vertical component is used and the AP/ML axes are ignored.
  3. Scrub the video to a frame where the force visibly peaks, then click Sync to peak. The CSV's maximum is aligned to that frame.
  4. Click the foot position on the video to anchor the vector base.
  5. Play the video — the vector updates live and the force-time chart shows a cursor following the current sample.

Export and session

Export a side-by-side PNG (annotated frame + force-time chart with cursor) for use in reports. Save a session JSON to preserve the anchor point, sync settings, and display options for later — you'll need to re-load the video and CSV but everything else restores.

Tip: Slow-motion video makes peak-sync much easier. Phone-shot 240 fps clips work well.

Keyboard shortcuts

Available in the Analyse video page. Shortcuts are disabled when typing in an input field.

SpacePlay / pause
Next frame
Previous frame
Shift →Forward 10 frames
Shift ←Back 10 frames
FCopy annotation to next frame
MMarker tool
AAngle tool
LDistance (line) tool
VSelect / move tool
EscDeselect annotation
DelDelete selected frame data

File formats

Input formats accepted

  • Video — MP4 with H.264 codec is most reliable across browsers; MOV and WebM also work in modern browsers. AVI, WMV, FLV, MKV are not supported by browsers and must be converted first. Free conversion tools: HandBrake (handbrake.fr), VLC (Convert/Save), or ffmpeg (ffmpeg -i input.avi -c:v libx264 -crf 23 output.mp4).
  • Data files — CSV (comma-separated, UTF-8) and Excel (XLSX, XLS). All data tools accept both. A header row is assumed. If there is no header, column numbers are used.
  • Images — JPEG, PNG, HEIC (for CoM, Projectile, and Posture). Images stay in your browser.
  • Session JSON — produced by Analyse (Export > Session JSON). Used for Load Session and Compare.

Export formats

  • CSV — all data tools export tabular data as comma-separated values.
  • PNG — chart exports from all tools. Annotated frame from Analyse.
  • Session JSON — complete session backup from Analyse.
  • BibTeX / RIS / RefWorks — citation downloads from the Cite modal.
  • PDF report — from Analyse Tools > Print Report. Opens a formatted print page; use browser Print > Save as PDF.

CSV format for data tools

All data tools (Jump, Sprint, Signal, Normalise, IMU) expect standard CSV: first row is headers, subsequent rows are data, values separated by commas. Ensure numeric columns contain only numbers — no units in the data cells.

🤝 Data Contributors

Several of the sample datasets in biomex.studio are real-world data contributed by practitioners and researchers. We're grateful to everyone who has shared data to help demonstrate the tools with authentic examples.

📈
GPS Velocity-Time Data
Contributed by Marco Dasso
Device: Catapult Vector S7 · Software: Openfield · Sample rate: 10 Hz
Used in: Velocity Profile Analyser and Sprint Mechanics (Velocity Series tab)

If you'd like to contribute sample data for use in biomex.studio, please get in touch at hello@biomex.studio. Contributed data should be anonymised and you must have permission to share it.

❤ Support

biomex.studio is free and will remain free. To report a bug or suggest a feature, use the Report Issue button in the Analyse page Tools panel. This sends a report with browser and system information to the developer.

To support continued development, use the ♥ Support button in the header of any page.

Designed and developed by Andrew Callaway, Bournemouth University. Contact: hello@biomex.studio