{
  "_id": "6ac10ce3552a13804ac7ed89",
  "Package": "PhysioMoCap",
  "Title": "Motion Capture and Biomechanics Analysis for PhysioExperiment\nObjects",
  "Version": "0.7.5",
  "Authors@R": "person(given = \"Yusuke\",\nfamily = \"Matsui\",\nrole = c(\"aut\", \"cre\"),\nemail = \"mail.to.matsui@gmail.com\")",
  "Description": "Provides motion capture, pose estimation, and\nbiomechanical simulation analysis for PhysioExperiment objects.\nIncludes I/O for C3D, Venus3D, GaitRec, OpenPose, DeepLabCut,\nMediaPipe, BVH, ASF/AMC, OpenSim, and generic CSV formats.\nProvides marker tracking (Hungarian algorithm), signal\nfiltering, numerical differentiation, resampling, center of\nmass calculation, gait parameters, clinical statistics (ICC,\nSEM, MDC, Bland-Altman), movement phase segmentation, dynamic\ntime warping, movement normalization, functional PCA,\nforce-plate kinetics (GRF filtering, COP, loading rate,\nimpulse), planar inverse dynamics (joint moments/power), EMG\nintegration (rectification, RMS envelope, MVC normalization),\ngait/running/jump task schemas, OpenSim workflow integration,\nand biomechanics-specific visualization.",
  "VignetteBuilder": "knitr",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/x-biosignal/PhysioMoCap,\nhttps://x-biosignal.r-universe.dev/PhysioMoCap,\nhttps://x-biosignal.github.io/PhysioMoCap/",
  "BugReports": "https://github.com/x-biosignal/PhysioMoCap/issues",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Collate": "'class-TaskSchema.R' 'utils-provenance.R' 'schemas-prebuilt.R'\n'mocap-skeleton.R' 'mocap-angles.R' 'anatomical-frames.R'\n'mocap-gaps.R' 'mocap-imu.R' 'imu-gait.R' 'mocap-tracking.R'\n'io-openpose.R' 'io-opensim.R' 'pose-fix.R' 'io-c3d.R'\n'io-bvh.R' 'io-deeplabcut.R' 'io-mediapipe.R' 'io-opencap.R'\n'ops-events.R' 'events-zeni.R' 'ops-phases.R' 'ops-normalize.R'\n'ops-dtw.R' 'ops-dimred.R' 'stats-fda.R'\n'opensim-integration.R' 'static-optimization.R' 'vis-biomech.R'\n'vis-movement.R' 'vis-skeleton.R' 'biomech-com.R' 'io-asfamc.R'\n'io-csv.R' 'io-gaitrec.R' 'io-venus3d.R' 'ops-filter.R'\n'ops-derivatives.R' 'ops-resample.R' 'stats-clinical.R'\n'vis-clinical.R' 'stats-gait.R' 'kinetics-forceplate.R'\n'kinetics-inverse-dynamics.R' 'kinetics-rne.R' 'gait-indices.R'\n'mocap-emg.R' 'dynamometry.R' 'user-onboarding.R'\n'benchmark-validation.R' 'quality-smoothness.R' 'reaching.R'\n'stability-nonlinear.R' 'gait-pathology.R'\n'pipelines-population.R' 'clinical-mobility-tests.R'\n'posturography.R' 'plantar-pressure.R' 'vis-pressure.R'\n'adl-reach.R' 'coordination.R' 'stats-reliability.R'\n'stats-circular.R' 'motor-variability-ucm.R'\n'kinetics-forward-dynamics.R' 'motor-primitives.R'\n'stability-orbital-rqa.R' 'imu-fusion.R' 'inverse-kinematics.R'\n'movement-tremor.R' 'ataxia.R' 'spasticity-tardieu.R' 'zzz.R'",
  "RoxygenNote": "7.3.3",
  "Config/pak/sysreqs": "zlib1g-dev",
  "Repository": "https://x-biosignal.r-universe.dev",
  "Date/Publication": "2026-10-03 13:11:45 UTC",
  "RemoteUrl": "https://github.com/x-biosignal/PhysioMoCap",
  "RemoteRef": "HEAD",
  "RemoteSha": "6d95583987dc285f292a8a8023f455d873ce94b3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-03 13:43:06 UTC",
    "User": "root"
  },
  "Author": "Yusuke Matsui [aut, cre]",
  "Maintainer": "Yusuke Matsui <mail.to.matsui@gmail.com>",
  "_user": "x-biosignal",
  "_type": "src",
  "_file": "PhysioMoCap_0.7.5.tar.gz",
  "_fileid": "https://r2.ropensci.org/0865d54ed0b8bf719ecc6b85c01b895b32f0b9d3077e399b0e675c8a172ef6b5",
  "_filesize": 1764614,
  "_sha256": "0865d54ed0b8bf719ecc6b85c01b895b32f0b9d3077e399b0e675c8a172ef6b5",
  "_expires": "2027-01-11T14:10:40.000Z",
  "_created": "2026-10-03T13:43:06.000Z",
  "_published": "2026-10-03T14:10:43.180Z",
  "_jobs": [
    {
      "job": 111214756406,
      "time": 879,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "11274554367"
    },
    {
      "job": 111214756444,
      "time": 827,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "11275940390"
    },
    {
      "job": 111214756421,
      "time": 685,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "11274839528"
    },
    {
      "job": 111214756394,
      "time": 610,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "11276071219"
    },
    {
      "job": 111213947026,
      "time": 289,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11275628110"
    },
    {
      "job": 111214756415,
      "time": 115,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11275373731"
    },
    {
      "job": 111214756449,
      "time": 780,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "11275534738"
    },
    {
      "job": 111214756453,
      "time": 909,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "11275623183"
    },
    {
      "job": 111214756422,
      "time": 713,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "11274564309"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119",
  "_status": "success",
  "_upstream": "https://github.com/x-biosignal/PhysioMoCap",
  "_commit": {
    "id": "6d95583987dc285f292a8a8023f455d873ce94b3",
    "author": "Yusuke Matsui <mail.to.matsui@gmail.com>",
    "committer": "Yusuke Matsui <mail.to.matsui@gmail.com>",
    "message": "Release snapshot\n",
    "time": 1791033105
  },
  "_maintainer": {
    "name": "Yusuke Matsui",
    "email": "mail.to.matsui@gmail.com",
    "login": "ymatts",
    "description": "Data scientist",
    "uuid": 5744286
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2",
      "role": "Depends"
    },
    {
      "package": "PhysioExperiment",
      "version": ">= 2.0.0",
      "role": "Depends"
    },
    {
      "package": "SummarizedExperiment",
      "role": "Imports"
    },
    {
      "package": "S4Vectors",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "PhysioCore",
      "role": "Suggests"
    },
    {
      "package": "PhysioIO",
      "role": "Suggests"
    },
    {
      "package": "PhysioOpenSim",
      "role": "Suggests"
    },
    {
      "package": "PhysioGaitNorm",
      "role": "Suggests"
    },
    {
      "package": "signal",
      "role": "Suggests"
    },
    {
      "package": "uwot",
      "role": "Suggests"
    },
    {
      "package": "Rtsne",
      "role": "Suggests"
    },
    {
      "package": "c3dr",
      "role": "Suggests"
    },
    {
      "package": "clue",
      "role": "Suggests"
    },
    {
      "package": "rhdf5",
      "role": "Suggests"
    },
    {
      "package": "httr",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "quadprog",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.2.0",
      "role": "Suggests"
    }
  ],
  "_owner": "x-biosignal",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-40",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "ymatts",
      "count": 1,
      "uuid": 5744286
    }
  ],
  "_userbio": {
    "uuid": 268545536,
    "type": "organization",
    "name": "x-biosignal",
    "followers": 1,
    "description": "Open-source R packages for biosignal analysis, biomechanics, clinical research, and rehabilitation."
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/PhysioMoCap"
  },
  "_devurl": "https://github.com/x-biosignal/physiomocap",
  "_pkgdown": "https://x-biosignal.github.io/PhysioMoCap/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/PhysioMoCap.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "adlReachTask",
    "alignEMGtoMoCap",
    "analyzeForcePlate",
    "analyzeForcePlatePE",
    "approximateEntropy",
    "assessMoCapReadiness",
    "batch_analyze_opensim",
    "batchNormalize",
    "benchmarkAgreement",
    "benchmarkManifestTemplate",
    "blandAltman",
    "butterworthFilter",
    "c3dEventTable",
    "calculateCOM",
    "calculateCOP",
    "calculateGaitParameters",
    "calculateJointAngles",
    "calculateSegmentCOM",
    "calculateStepSymmetry",
    "calibrateIMU",
    "circularLinearCorrelation",
    "circularSummary",
    "classifyGaitPatterns",
    "cohensD",
    "combineTrials",
    "computeAcceleration",
    "computeImpulse",
    "computeJerk",
    "computeJointPower",
    "computeLoadingRate",
    "computeRMSEnvelope",
    "computeSpeed",
    "computeVelocity",
    "continuousRelativePhase",
    "contractionWork",
    "coordinationVariability",
    "copFromPressure",
    "correctSwaps",
    "create_schema_from_opensim",
    "createBenchmarkExample",
    "defaultBenchmarkThresholds",
    "define_skeleton",
    "demoMoCapData",
    "detectCircumduction",
    "detectEvents",
    "detectEventsZeni",
    "detectForcePlateContacts",
    "detectGaps",
    "detectPushOffDeficit",
    "detectStanceZUPT",
    "detectStiffKnee",
    "detectSwaps",
    "detectTrendelenburg",
    "differentiate",
    "dimensionlessJerk",
    "dmpFit",
    "dmpGenerate",
    "downloadOpenCapModel",
    "dtwAverage",
    "dtwClustering",
    "dtwDistance",
    "dtwDistanceMatrix",
    "dtwWarp",
    "endpointError",
    "estimateOrientation",
    "estimateSegmentInertia",
    "etaSquared",
    "eulerToQuaternion",
    "Event",
    "extractPhase",
    "extractWaveformFeatures",
    "fillGaps",
    "fillGapsLinear",
    "fillGapsSpline",
    "filterGRF",
    "filterSignals",
    "floquetMultipliers",
    "footImuGait",
    "forwardDynamics",
    "forwardKinematics2D",
    "fPCA",
    "gaitAtaxiaIndex",
    "gaitDeviationIndex",
    "gaitPatternLibrary",
    "gaitProfileScore",
    "gaitVariableScore",
    "gdiBasis",
    "get_bone_connections",
    "get_limb_pairs",
    "get_segment_lengths",
    "getEvent",
    "getEventNames",
    "getPhase",
    "getPhaseColors",
    "getPhaseData",
    "getPhaseNames",
    "getSchema",
    "goalEquivalentManifold",
    "grfLandmarks",
    "groodSuntayAngles",
    "hamstringQuadRatio",
    "harmonicRatio",
    "hasValidPhases",
    "icc",
    "instrumented10mWT",
    "instrumentedTUG",
    "integrateEMGMoCap",
    "inverseDynamics2D",
    "inverseDynamics3D",
    "inverseDynamicsRNE",
    "inverseKinematicsMarkers",
    "jointCoordinateSystem",
    "jointWork",
    "kalmanOrientation",
    "labelPowerBursts",
    "ldlj",
    "limbAtaxiaIndex",
    "limitsOfStability",
    "listSchemas",
    "localDynamicStability",
    "mahonyAHRS",
    "manualEvents",
    "maxLyapunovExponent",
    "mCTSIB",
    "mdc",
    "movementAnalysisProfile",
    "movementSmoothness",
    "movementTime",
    "movementUnits",
    "movingAverage",
    "nhptDexterity",
    "normalizedTimeAxis",
    "normalizeEMG",
    "normalizeMovement",
    "pathStraightness",
    "peakPressure",
    "peakTorque",
    "peakVelocity",
    "Phase",
    "phaseDurations",
    "phaseRatios",
    "phaseTiming",
    "pipelineACLrts",
    "pipelineAmputee",
    "pipelineCPgait",
    "pipelinePDfog",
    "pipelineStrokePropulsion",
    "planarLimbModel",
    "plotBlandAltman",
    "plotCorrelationMatrix",
    "plotCycle",
    "plotDTW",
    "plotEffectSizeForest",
    "plotFPCA",
    "plotGaitCycle",
    "plotGroupComparison",
    "plotMAP",
    "plotMultiPanel",
    "plotPCAScatter",
    "plotPCAVariance",
    "plotPhaseDurations",
    "plotPhasePortrait",
    "plotPressureMap",
    "plotSkeleton",
    "plotSkeleton3D",
    "plotSkeletonOverlay",
    "plotSkeletonSequence",
    "plotSpaghetti",
    "plotSymmetry",
    "plotTrajectory",
    "plotTUG",
    "plotUMAP",
    "plotWaveformComparison",
    "poseFix",
    "poseLengthCorrect",
    "predictiveSimulation",
    "pressureAsymmetry",
    "pressureMovie",
    "pressureTimeIntegral",
    "processEMG",
    "projectTo2D",
    "promCondition",
    "promFit",
    "quaternionToEuler",
    "quickStartMoCap",
    "rateOfForceDevelopment",
    "rayleighTest",
    "reachingKinematics",
    "readAMC",
    "readASF",
    "readBVH",
    "readC3D",
    "readDeepLabCut",
    "readGaitRec",
    "readMediaPipe",
    "readMoCapAuto",
    "readMoCapCSV",
    "readMOT",
    "readOpenCap",
    "readOpenPose",
    "readOpenSimOutputs",
    "readPressureFrame",
    "readSTO",
    "readTRC",
    "readVenus3D",
    "reconstructFPCA",
    "rectifyEMG",
    "recurrenceQuantification",
    "reflexThreshold",
    "regionalLoading",
    "registerCurves",
    "removeGravity",
    "reportGaps",
    "resampleSignal",
    "resampleVector",
    "run_opensim_toolchain",
    "runBenchmarkSuite",
    "runCMC",
    "runOpenSimFromMarkers",
    "runOpenSimFromOpenCap",
    "runRRA",
    "runStaticOptimization",
    "sampleEntropy",
    "savgolFilter",
    "scaleBodyModel",
    "scalePlanarModel",
    "scaleSegmentModel",
    "schema_balance",
    "schema_cutting",
    "schema_cycling",
    "schema_gait",
    "schema_jump",
    "schema_running",
    "schema_throw",
    "segmentCohortCycles",
    "segmentMultimodalCycles",
    "segmentParameters",
    "segmentPhases",
    "sem",
    "sensoryOrganizationTest",
    "SkeletonModel",
    "sparc",
    "stabilogramDiffusion",
    "staticOptimizationR",
    "strapdownIntegrate",
    "summarizeCycleFeatures",
    "summarizeGaitParameters",
    "swayMetrics",
    "symmetryIndex",
    "synchronizeSignals",
    "tardieuScore",
    "tardieuStretch",
    "TaskSchema",
    "timeDelayEmbed",
    "timeToPeakTorque",
    "timeToPeakVelocity",
    "toleranceNoiseCovariation",
    "trackMarkers",
    "tremorAmplitude",
    "tremorMetrics",
    "tremorSpectrum",
    "trunkCompensation",
    "uncontrolledManifold",
    "validateBenchmarkManifest",
    "validateSchema",
    "vectorAngle",
    "vectorCoding",
    "watsonWilliamsTest",
    "waveformCMC",
    "waveformICC",
    "waveformPCA",
    "waveformReliability",
    "waveformTSNE",
    "waveformUMAP",
    "writeBenchmarkManifest",
    "writeC3D",
    "writeMOT",
    "writeTRC"
  ],
  "_help": [
    {
      "page": "adlReachTask",
      "title": "Assess an upper-limb ADL reach from its speed profile",
      "topics": [
        "adlReachTask"
      ]
    },
    {
      "page": "alignEMGtoMoCap",
      "title": "Align EMG to motion-capture sampling grid",
      "topics": [
        "alignEMGtoMoCap"
      ]
    },
    {
      "page": "analyzeForcePlate",
      "title": "Run complete force-plate analysis",
      "topics": [
        "analyzeForcePlate"
      ]
    },
    {
      "page": "analyzeForcePlatePE",
      "title": "Analyze force-plate signals from a PhysioExperiment object",
      "topics": [
        "analyzeForcePlatePE"
      ]
    },
    {
      "page": "approximateEntropy",
      "title": "Approximate entropy (Pincus)",
      "topics": [
        "approximateEntropy"
      ]
    },
    {
      "page": "assessMoCapReadiness",
      "title": "Assess readiness of a MoCap dataset for downstream analysis",
      "topics": [
        "assessMoCapReadiness"
      ]
    },
    {
      "page": "batch_analyze_opensim",
      "title": "Batch analyze OpenSim session data",
      "topics": [
        "batch_analyze_opensim"
      ]
    },
    {
      "page": "batchNormalize",
      "title": "Batch normalize multiple trials",
      "topics": [
        "batchNormalize"
      ]
    },
    {
      "page": "benchmarkAgreement",
      "title": "Compute agreement metrics against a reference signal table",
      "topics": [
        "benchmarkAgreement"
      ]
    },
    {
      "page": "benchmarkManifestTemplate",
      "title": "Create a benchmark manifest template",
      "topics": [
        "benchmarkManifestTemplate"
      ]
    },
    {
      "page": "butterworthFilter",
      "title": "Apply a Butterworth filter to numeric data",
      "topics": [
        "butterworthFilter"
      ]
    },
    {
      "page": "c3dEventTable",
      "title": "Extract C3D Parameter Events on the Recording Clock",
      "topics": [
        "c3dEventTable"
      ]
    },
    {
      "page": "calculateCOM",
      "title": "Calculate whole-body center of mass from marker positions",
      "topics": [
        "calculateCOM"
      ]
    },
    {
      "page": "calculateCOP",
      "title": "Calculate center of pressure (COP) from force-plate data",
      "topics": [
        "calculateCOP"
      ]
    },
    {
      "page": "calculateGaitParameters",
      "title": "Calculate gait temporal-spatial parameters",
      "topics": [
        "calculateGaitParameters"
      ]
    },
    {
      "page": "calculateJointAngles",
      "title": "Calculate joint angles from marker positions",
      "topics": [
        "calculateJointAngles"
      ]
    },
    {
      "page": "calculateSegmentCOM",
      "title": "Calculate per-segment centers of mass",
      "topics": [
        "calculateSegmentCOM"
      ]
    },
    {
      "page": "calculateStepSymmetry",
      "title": "Calculate step symmetry from gait parameters",
      "topics": [
        "calculateStepSymmetry"
      ]
    },
    {
      "page": "calibrateIMU",
      "title": "Calibrate IMU from static data",
      "topics": [
        "calibrateIMU"
      ]
    },
    {
      "page": "classifyGaitPatterns",
      "title": "Classify gait pathology patterns from a bundle of gait variables",
      "topics": [
        "classifyGaitPatterns"
      ]
    },
    {
      "page": "combineTrials",
      "title": "Combine multiple trials with segmented phases",
      "topics": [
        "combineTrials"
      ]
    },
    {
      "page": "computeAcceleration",
      "title": "Compute acceleration from position or velocity data",
      "topics": [
        "computeAcceleration"
      ]
    },
    {
      "page": "computeImpulse",
      "title": "Compute vertical impulse from GRF",
      "topics": [
        "computeImpulse"
      ]
    },
    {
      "page": "computeJerk",
      "title": "Compute jerk from position data",
      "topics": [
        "computeJerk"
      ]
    },
    {
      "page": "computeJointPower",
      "title": "Compute joint power from moment and angular velocity",
      "topics": [
        "computeJointPower"
      ]
    },
    {
      "page": "computeLoadingRate",
      "title": "Compute vertical loading rate from GRF",
      "topics": [
        "computeLoadingRate"
      ]
    },
    {
      "page": "computeRMSEnvelope",
      "title": "Compute moving RMS envelope of EMG",
      "topics": [
        "computeRMSEnvelope"
      ]
    },
    {
      "page": "computeSpeed",
      "title": "Compute scalar speed from velocity",
      "topics": [
        "computeSpeed"
      ]
    },
    {
      "page": "computeVelocity",
      "title": "Compute velocity from position data",
      "topics": [
        "computeVelocity"
      ]
    },
    {
      "page": "continuousRelativePhase",
      "title": "Continuous relative phase between two joints",
      "topics": [
        "continuousRelativePhase"
      ]
    },
    {
      "page": "contractionWork",
      "title": "Angular work and impulse for strength-test repetitions",
      "topics": [
        "contractionWork"
      ]
    },
    {
      "page": "coordinationVariability",
      "title": "Inter-joint coordination variability across cycles",
      "topics": [
        "coordinationVariability"
      ]
    },
    {
      "page": "copFromPressure",
      "title": "Derive center of pressure from a pressure movie",
      "topics": [
        "copFromPressure"
      ]
    },
    {
      "page": "correctSwaps",
      "title": "Correct Marker Label Swaps",
      "topics": [
        "correctSwaps"
      ]
    },
    {
      "page": "create_schema_from_opensim",
      "title": "Create a TaskSchema from OpenSim model for gait analysis",
      "topics": [
        "create_schema_from_opensim"
      ]
    },
    {
      "page": "createBenchmarkExample",
      "title": "Create a synthetic benchmark dataset bundle",
      "topics": [
        "createBenchmarkExample"
      ]
    },
    {
      "page": "defaultBenchmarkThresholds",
      "title": "Get default benchmark thresholds",
      "topics": [
        "defaultBenchmarkThresholds"
      ]
    },
    {
      "page": "define_skeleton",
      "title": "Create a pre-defined skeleton model",
      "topics": [
        "define_skeleton"
      ]
    },
    {
      "page": "demoMoCapData",
      "title": "Create a beginner-friendly demo dataset",
      "topics": [
        "demoMoCapData"
      ]
    },
    {
      "page": "detectCircumduction",
      "title": "Detect circumduction (excessive lateral swing trajectory)",
      "topics": [
        "detectCircumduction"
      ]
    },
    {
      "page": "detectEvents",
      "title": "Detect events in movement data",
      "topics": [
        "detectEvents"
      ]
    },
    {
      "page": "detectEventsZeni",
      "title": "Detect gait events with the Zeni coordinate method",
      "topics": [
        "detectEventsZeni"
      ]
    },
    {
      "page": "detectForcePlateContacts",
      "title": "Detect contact windows for one or more force plates",
      "topics": [
        "detectForcePlateContacts"
      ]
    },
    {
      "page": "detectGaps",
      "title": "Detect gaps (contiguous NA runs) in assay data",
      "topics": [
        "detectGaps"
      ]
    },
    {
      "page": "detectPushOffDeficit",
      "title": "Detect push-off deficit (reduced ankle A2 power / plantarflexor output)",
      "topics": [
        "detectPushOffDeficit"
      ]
    },
    {
      "page": "detectStanceZUPT",
      "title": "Detect foot-IMU stance phases for zero-velocity updates",
      "topics": [
        "detectStanceZUPT"
      ]
    },
    {
      "page": "detectStiffKnee",
      "title": "Detect stiff-knee gait (reduced / delayed peak swing knee flexion)",
      "topics": [
        "detectStiffKnee"
      ]
    },
    {
      "page": "detectSwaps",
      "title": "Detect Marker Label Swaps",
      "topics": [
        "detectSwaps"
      ]
    },
    {
      "page": "detectTrendelenburg",
      "title": "Detect Trendelenburg sign (excessive contralateral pelvic drop)",
      "topics": [
        "detectTrendelenburg"
      ]
    },
    {
      "page": "differentiate",
      "title": "Differentiate a numeric vector or matrix",
      "topics": [
        "differentiate"
      ]
    },
    {
      "page": "dimensionlessJerk",
      "title": "Dimensionless jerk of a speed profile",
      "topics": [
        "dimensionlessJerk"
      ]
    },
    {
      "page": "dmpFit",
      "title": "Fit a Dynamic Movement Primitive to a demonstration",
      "topics": [
        "dmpFit"
      ]
    },
    {
      "page": "dmpGenerate",
      "title": "Generate a trajectory from a Dynamic Movement Primitive",
      "topics": [
        "dmpGenerate"
      ]
    },
    {
      "page": "downloadOpenCapModel",
      "title": "Download the OpenSim Model for an OpenCap Session",
      "topics": [
        "downloadOpenCapModel"
      ]
    },
    {
      "page": "dtwAverage",
      "title": "DTW Barycenter Averaging (DBA)",
      "topics": [
        "dtwAverage"
      ]
    },
    {
      "page": "dtwClustering",
      "title": "DTW-based clustering",
      "topics": [
        "dtwClustering"
      ]
    },
    {
      "page": "dtwDistance",
      "title": "Dynamic Time Warping (DTW) for Biomechanics",
      "topics": [
        "dtwDistance"
      ]
    },
    {
      "page": "dtwDistanceMatrix",
      "title": "Compute DTW distance matrix",
      "topics": [
        "dtwDistanceMatrix"
      ]
    },
    {
      "page": "dtwWarp",
      "title": "Warp a waveform using DTW alignment",
      "topics": [
        "dtwWarp"
      ]
    },
    {
      "page": "endpointError",
      "title": "Reaching endpoint accuracy and precision",
      "topics": [
        "endpointError"
      ]
    },
    {
      "page": "estimateOrientation",
      "title": "Estimate orientation from IMU sensors using sensor fusion",
      "topics": [
        "estimateOrientation"
      ]
    },
    {
      "page": "estimateSegmentInertia",
      "title": "Estimate segment inertial properties for lower-limb inverse dynamics",
      "topics": [
        "estimateSegmentInertia"
      ]
    },
    {
      "page": "eulerToQuaternion",
      "title": "Convert Euler angles to quaternion",
      "topics": [
        "eulerToQuaternion"
      ]
    },
    {
      "page": "Event",
      "title": "Create an Event definition",
      "topics": [
        "Event"
      ]
    },
    {
      "page": "extractPhase",
      "title": "Extract a single phase from segmented data",
      "topics": [
        "extractPhase"
      ]
    },
    {
      "page": "extractWaveformFeatures",
      "title": "Dimensionality Reduction for Biomechanics",
      "topics": [
        "extractWaveformFeatures"
      ]
    },
    {
      "page": "fillGaps",
      "title": "Fill gaps in motion capture data",
      "topics": [
        "fillGaps"
      ]
    },
    {
      "page": "fillGapsLinear",
      "title": "Linear interpolation for a single vector",
      "topics": [
        "fillGapsLinear"
      ]
    },
    {
      "page": "fillGapsSpline",
      "title": "Spline interpolation for a single vector",
      "topics": [
        "fillGapsSpline"
      ]
    },
    {
      "page": "filterGRF",
      "title": "Low-pass filter ground reaction force data",
      "topics": [
        "filterGRF"
      ]
    },
    {
      "page": "filterSignals",
      "title": "Filter signals in a PhysioExperiment object",
      "topics": [
        "filterSignals"
      ]
    },
    {
      "page": "floquetMultipliers",
      "title": "Floquet multipliers (orbital stability of a cyclic movement)",
      "topics": [
        "floquetMultipliers"
      ]
    },
    {
      "page": "footImuGait",
      "title": "Foot-IMU spatiotemporal gait parameters",
      "topics": [
        "footImuGait"
      ]
    },
    {
      "page": "forwardDynamics",
      "title": "Forward dynamics: integrate the equations of motion",
      "topics": [
        "forwardDynamics"
      ]
    },
    {
      "page": "forwardKinematics2D",
      "title": "Forward kinematics of a planar chain",
      "topics": [
        "forwardKinematics2D"
      ]
    },
    {
      "page": "gaitAtaxiaIndex",
      "title": "Gait-ataxia composite from gait-variability sub-metrics",
      "topics": [
        "gaitAtaxiaIndex"
      ]
    },
    {
      "page": "gaitDeviationIndex",
      "title": "Gait Deviation Index (Schwartz & Rozumalski 2008)",
      "topics": [
        "gaitDeviationIndex"
      ]
    },
    {
      "page": "gaitPatternLibrary",
      "title": "Registry of supported gait pathology patterns",
      "topics": [
        "gaitPatternLibrary"
      ]
    },
    {
      "page": "gaitProfileScore",
      "title": "Gait Profile Score (overall RMS deviation from the norm)",
      "topics": [
        "gaitProfileScore"
      ]
    },
    {
      "page": "gaitVariableScore",
      "title": "Gait Variable Score (per-variable RMS deviation from the norm)",
      "topics": [
        "gaitVariableScore"
      ]
    },
    {
      "page": "gdiBasis",
      "title": "Build a Gait Deviation Index feature basis from a normative reference",
      "topics": [
        "gdiBasis"
      ]
    },
    {
      "page": "get_bone_connections",
      "title": "Get bone connections from a skeleton",
      "topics": [
        "get_bone_connections"
      ]
    },
    {
      "page": "get_limb_pairs",
      "title": "Get left/right limb pairs for symmetry analysis",
      "topics": [
        "get_limb_pairs"
      ]
    },
    {
      "page": "get_segment_lengths",
      "title": "Compute segment lengths from a PhysioExperiment and skeleton",
      "topics": [
        "get_segment_lengths"
      ]
    },
    {
      "page": "getEvent",
      "title": "Get an event by name from a TaskSchema",
      "topics": [
        "getEvent"
      ]
    },
    {
      "page": "getEventNames",
      "title": "Get event names from a TaskSchema",
      "topics": [
        "getEventNames"
      ]
    },
    {
      "page": "getPhase",
      "title": "Get a phase by name from a TaskSchema",
      "topics": [
        "getPhase"
      ]
    },
    {
      "page": "getPhaseColors",
      "title": "Get phase colors from a TaskSchema",
      "topics": [
        "getPhaseColors"
      ]
    },
    {
      "page": "getPhaseData",
      "title": "Get data for all phases as a list of matrices",
      "topics": [
        "getPhaseData"
      ]
    },
    {
      "page": "getPhaseNames",
      "title": "Get phase names from a TaskSchema",
      "topics": [
        "getPhaseNames"
      ]
    },
    {
      "page": "getSchema",
      "title": "Get a pre-built schema by name",
      "topics": [
        "getSchema"
      ]
    },
    {
      "page": "goalEquivalentManifold",
      "title": "Goal-Equivalent Manifold (GEM) decomposition for a scalar goal",
      "topics": [
        "goalEquivalentManifold"
      ]
    },
    {
      "page": "grfLandmarks",
      "title": "Extract stance-phase landmarks from a time-normalised vertical GRF curve",
      "topics": [
        "grfLandmarks"
      ]
    },
    {
      "page": "groodSuntayAngles",
      "title": "Signed Grood-Suntay / ISB joint angles from segment frames",
      "topics": [
        "groodSuntayAngles"
      ]
    },
    {
      "page": "hamstringQuadRatio",
      "title": "Conventional and functional hamstring-to-quadriceps ratios",
      "topics": [
        "hamstringQuadRatio"
      ]
    },
    {
      "page": "harmonicRatio",
      "title": "Harmonic ratio of a trunk-acceleration signal",
      "topics": [
        "harmonicRatio"
      ]
    },
    {
      "page": "hasValidPhases",
      "title": "Check if all phases are valid",
      "topics": [
        "hasValidPhases"
      ]
    },
    {
      "page": "instrumented10mWT",
      "title": "Instrumented 10-metre walk test (10mWT)",
      "topics": [
        "instrumented10mWT"
      ]
    },
    {
      "page": "instrumentedTUG",
      "title": "Instrumented Timed Up-and-Go (iTUG)",
      "topics": [
        "instrumentedTUG"
      ]
    },
    {
      "page": "integrateEMGMoCap",
      "title": "Integrate EMG and MoCap signals onto a common timeline",
      "topics": [
        "integrateEMGMoCap"
      ]
    },
    {
      "page": "inverseDynamics2D",
      "title": "Compute 2D lower-limb joint moments with inverse dynamics",
      "topics": [
        "inverseDynamics2D"
      ]
    },
    {
      "page": "inverseDynamics3D",
      "title": "Compute 3D lower-limb joint moments with inverse dynamics",
      "topics": [
        "inverseDynamics3D"
      ]
    },
    {
      "page": "inverseDynamicsRNE",
      "title": "Recursive Newton-Euler inverse dynamics for the lower limb",
      "topics": [
        "inverseDynamicsRNE"
      ]
    },
    {
      "page": "inverseKinematicsMarkers",
      "title": "Model-based inverse kinematics from markers (planar)",
      "topics": [
        "inverseKinematicsMarkers"
      ]
    },
    {
      "page": "jointCoordinateSystem",
      "title": "Build embedded anatomical segment coordinate systems from marker clusters",
      "topics": [
        "jointCoordinateSystem"
      ]
    },
    {
      "page": "jointWork",
      "title": "Integrate joint power into concentric and eccentric work",
      "topics": [
        "jointWork"
      ]
    },
    {
      "page": "kalmanOrientation",
      "title": "Kalman orientation filter (tilt + gyro-bias)",
      "topics": [
        "kalmanOrientation"
      ]
    },
    {
      "page": "labelPowerBursts",
      "title": "Label joint power bursts with Winter nomenclature",
      "topics": [
        "labelPowerBursts"
      ]
    },
    {
      "page": "ldlj",
      "title": "Log Dimensionless Jerk (LDLJ) movement smoothness",
      "topics": [
        "ldlj"
      ]
    },
    {
      "page": "limbAtaxiaIndex",
      "title": "Limb-ataxia composite from reaching sub-metrics",
      "topics": [
        "limbAtaxiaIndex"
      ]
    },
    {
      "page": "limitsOfStability",
      "title": "Limits of Stability (LOS) reaction time, excursion and directional control",
      "topics": [
        "limitsOfStability"
      ]
    },
    {
      "page": "listSchemas",
      "title": "Get list of all pre-built schemas",
      "topics": [
        "listSchemas"
      ]
    },
    {
      "page": "localDynamicStability",
      "title": "Local dynamic stability (short- and long-term divergence)",
      "topics": [
        "localDynamicStability"
      ]
    },
    {
      "page": "mahonyAHRS",
      "title": "Mahony AHRS orientation filter",
      "topics": [
        "mahonyAHRS"
      ]
    },
    {
      "page": "manualEvents",
      "title": "Manually specify event times",
      "topics": [
        "manualEvents"
      ]
    },
    {
      "page": "maxLyapunovExponent",
      "title": "Largest Lyapunov exponent (Rosenstein)",
      "topics": [
        "maxLyapunovExponent"
      ]
    },
    {
      "page": "mCTSIB",
      "title": "Modified Clinical Test of Sensory Interaction on Balance (mCTSIB)",
      "topics": [
        "mCTSIB"
      ]
    },
    {
      "page": "movementAnalysisProfile",
      "title": "Movement Analysis Profile (GVS per variable plus the GPS)",
      "topics": [
        "movementAnalysisProfile"
      ]
    },
    {
      "page": "movementSmoothness",
      "title": "Movement-smoothness battery (SPARC + LDLJ)",
      "topics": [
        "movementSmoothness"
      ]
    },
    {
      "page": "movementTime",
      "title": "Reaching movement time",
      "topics": [
        "movementTime"
      ]
    },
    {
      "page": "movementUnits",
      "title": "Count reaching movement units",
      "topics": [
        "movementUnits"
      ]
    },
    {
      "page": "movingAverage",
      "title": "Simple moving average filter",
      "topics": [
        "movingAverage"
      ]
    },
    {
      "page": "nhptDexterity",
      "title": "Instrumented Nine-Hole-Peg dexterity from a hand-speed profile",
      "topics": [
        "nhptDexterity"
      ]
    },
    {
      "page": "normalizedTimeAxis",
      "title": "Time axis for normalized data",
      "topics": [
        "normalizedTimeAxis"
      ]
    },
    {
      "page": "normalizeEMG",
      "title": "Normalize EMG by MVC or peak",
      "topics": [
        "normalizeEMG"
      ]
    },
    {
      "page": "normalizeMovement",
      "title": "Normalize movement data",
      "topics": [
        "normalizeMovement"
      ]
    },
    {
      "page": "pathStraightness",
      "title": "Movement-path straightness",
      "topics": [
        "pathStraightness"
      ]
    },
    {
      "page": "peakPressure",
      "title": "Calculate a peak plantar-pressure map",
      "topics": [
        "peakPressure"
      ]
    },
    {
      "page": "peakTorque",
      "title": "Peak torque from isometric or isokinetic dynamometry",
      "topics": [
        "peakTorque"
      ]
    },
    {
      "page": "peakVelocity",
      "title": "Peak reaching velocity",
      "topics": [
        "peakVelocity"
      ]
    },
    {
      "page": "Phase",
      "title": "Create a Phase definition",
      "topics": [
        "Phase"
      ]
    },
    {
      "page": "phaseDurations",
      "title": "Get phase durations",
      "topics": [
        "phaseDurations"
      ]
    },
    {
      "page": "phaseRatios",
      "title": "Calculate phase ratios",
      "topics": [
        "phaseRatios"
      ]
    },
    {
      "page": "phaseTiming",
      "title": "Get phase timing information",
      "topics": [
        "phaseTiming"
      ]
    },
    {
      "page": "pipelineACLrts",
      "title": "ACL return-to-sport pipeline (limb symmetry index)",
      "topics": [
        "pipelineACLrts"
      ]
    },
    {
      "page": "pipelineAmputee",
      "title": "Amputee prosthetic-side work-asymmetry pipeline",
      "topics": [
        "pipelineAmputee"
      ]
    },
    {
      "page": "pipelineCPgait",
      "title": "Cerebral-palsy gait pipeline (GDI + pathology flags)",
      "topics": [
        "pipelineCPgait"
      ]
    },
    {
      "page": "pipelinePDfog",
      "title": "Parkinson's freezing-of-gait pipeline (freeze index)",
      "topics": [
        "pipelinePDfog"
      ]
    },
    {
      "page": "pipelineStrokePropulsion",
      "title": "Stroke paretic-propulsion pipeline",
      "topics": [
        "pipelineStrokePropulsion"
      ]
    },
    {
      "page": "planarLimbModel",
      "title": "Planar two-segment limb model (equations of motion)",
      "topics": [
        "planarLimbModel"
      ]
    },
    {
      "page": "plotBlandAltman",
      "title": "Bland-Altman agreement plot",
      "topics": [
        "plotBlandAltman"
      ]
    },
    {
      "page": "plotCorrelationMatrix",
      "title": "Plot correlation matrix heatmap",
      "topics": [
        "plotCorrelationMatrix"
      ]
    },
    {
      "page": "plotCycle",
      "title": "Plot normalized movement cycle",
      "topics": [
        "plotCycle"
      ]
    },
    {
      "page": "plotDTW",
      "title": "Plot DTW alignment",
      "topics": [
        "plotDTW"
      ]
    },
    {
      "page": "plotEffectSizeForest",
      "title": "Plot effect size forest plot",
      "topics": [
        "plotEffectSizeForest"
      ]
    },
    {
      "page": "plotFPCA",
      "title": "Plot fPCA results",
      "topics": [
        "plotFPCA"
      ]
    },
    {
      "page": "plotGaitCycle",
      "title": "Plot gait cycle normalized waveforms",
      "topics": [
        "plotGaitCycle"
      ]
    },
    {
      "page": "plotGroupComparison",
      "title": "Plot group comparison with task context",
      "topics": [
        "plotGroupComparison"
      ]
    },
    {
      "page": "plotMAP",
      "title": "Plot a Movement Analysis Profile",
      "topics": [
        "plotMAP"
      ]
    },
    {
      "page": "plotMultiPanel",
      "title": "Plot multi-panel movement data",
      "topics": [
        "plotMultiPanel"
      ]
    },
    {
      "page": "plotPCAScatter",
      "title": "Plot PCA scatter",
      "topics": [
        "plotPCAScatter"
      ]
    },
    {
      "page": "plotPCAVariance",
      "title": "Plot PCA variance explained",
      "topics": [
        "plotPCAVariance"
      ]
    },
    {
      "page": "plotPhaseDurations",
      "title": "Plot phase duration comparison",
      "topics": [
        "plotPhaseDurations"
      ]
    },
    {
      "page": "plotPhasePortrait",
      "title": "Plot phase portrait",
      "topics": [
        "plotPhasePortrait"
      ]
    },
    {
      "page": "plotPressureMap",
      "title": "Plot a plantar-pressure map",
      "topics": [
        "plotPressureMap"
      ]
    },
    {
      "page": "plotSkeleton",
      "title": "Plot a 2D stick-figure skeleton",
      "topics": [
        "plotSkeleton"
      ]
    },
    {
      "page": "plotSkeleton3D",
      "title": "Plot a skeleton frame in pseudo-3D",
      "topics": [
        "plotSkeleton3D"
      ]
    },
    {
      "page": "plotSkeletonOverlay",
      "title": "Plot overlaid skeleton frames",
      "topics": [
        "plotSkeletonOverlay"
      ]
    },
    {
      "page": "plotSkeletonSequence",
      "title": "Plot a sequence of skeleton frames",
      "topics": [
        "plotSkeletonSequence"
      ]
    },
    {
      "page": "plotSpaghetti",
      "title": "Plot spaghetti plot (all subjects with mean)",
      "topics": [
        "plotSpaghetti"
      ]
    },
    {
      "page": "plotSymmetry",
      "title": "Plot symmetry comparison (left vs right)",
      "topics": [
        "plotSymmetry"
      ]
    },
    {
      "page": "plotTrajectory",
      "title": "Plot movement trajectory (2D)",
      "topics": [
        "plotTrajectory"
      ]
    },
    {
      "page": "plotTUG",
      "title": "Plot an instrumented TUG timeline",
      "topics": [
        "plotTUG"
      ]
    },
    {
      "page": "plotUMAP",
      "title": "Plot UMAP embedding",
      "topics": [
        "plotUMAP"
      ]
    },
    {
      "page": "plotWaveformComparison",
      "title": "Plot waveform comparison across groups",
      "topics": [
        "plotWaveformComparison"
      ]
    },
    {
      "page": "poseFix",
      "title": "Detect and correct pose-estimation anomalies",
      "topics": [
        "poseFix"
      ]
    },
    {
      "page": "poseLengthCorrect",
      "title": "Standardise segment lengths (camera-distance correction)",
      "topics": [
        "poseLengthCorrect"
      ]
    },
    {
      "page": "predictiveSimulation",
      "title": "Predictive simulation: minimal-effort optimal control",
      "topics": [
        "predictiveSimulation"
      ]
    },
    {
      "page": "pressureAsymmetry",
      "title": "Compare left and right plantar pressure",
      "topics": [
        "pressureAsymmetry"
      ]
    },
    {
      "page": "pressureMovie",
      "title": "Construct a plantar-pressure movie",
      "topics": [
        "pressureMovie"
      ]
    },
    {
      "page": "pressureTimeIntegral",
      "title": "Calculate the plantar pressure-time integral",
      "topics": [
        "pressureTimeIntegral"
      ]
    },
    {
      "page": "print.ASFSkeleton",
      "title": "Print method for ASFSkeleton objects",
      "topics": [
        "print.ASFSkeleton"
      ]
    },
    {
      "page": "print.benchmark_agreement",
      "title": "Print benchmark agreement summary",
      "topics": [
        "print.benchmark_agreement"
      ]
    },
    {
      "page": "print.benchmark_manifest_validation",
      "title": "Print benchmark manifest validation result",
      "topics": [
        "print.benchmark_manifest_validation"
      ]
    },
    {
      "page": "print.benchmark_suite",
      "title": "Print benchmark suite summary",
      "topics": [
        "print.benchmark_suite"
      ]
    },
    {
      "page": "print.detected_events",
      "title": "Print method for detected events",
      "topics": [
        "print.detected_events"
      ]
    },
    {
      "page": "print.dtw_clustering",
      "title": "Print DTW clustering result",
      "topics": [
        "print.dtw_clustering"
      ]
    },
    {
      "page": "print.dtw_result",
      "title": "Print DTW result",
      "topics": [
        "print.dtw_result"
      ]
    },
    {
      "page": "print.forceplate_analysis",
      "title": "Print a forceplate analysis summary",
      "topics": [
        "print.forceplate_analysis"
      ]
    },
    {
      "page": "print.forceplate_analysis_multi",
      "title": "Print a multi-plate forceplate analysis summary",
      "topics": [
        "print.forceplate_analysis_multi"
      ]
    },
    {
      "page": "print.gait_parameters",
      "title": "Print gait parameters",
      "topics": [
        "print.gait_parameters"
      ]
    },
    {
      "page": "print.mocap_quickstart",
      "title": "Print a quick-start summary",
      "topics": [
        "print.mocap_quickstart"
      ]
    },
    {
      "page": "print.mocap_readiness",
      "title": "Print a MoCap readiness report",
      "topics": [
        "print.mocap_readiness"
      ]
    },
    {
      "page": "print.multi_trial_phases",
      "title": "Print method for multi-trial phases",
      "topics": [
        "print.multi_trial_phases"
      ]
    },
    {
      "page": "print.segmented_phases",
      "title": "Print method for segmented phases",
      "topics": [
        "print.segmented_phases"
      ]
    },
    {
      "page": "print.SkeletonModel",
      "title": "Print a SkeletonModel object",
      "topics": [
        "print.SkeletonModel"
      ]
    },
    {
      "page": "print.waveform_pca",
      "title": "Print waveform PCA result",
      "topics": [
        "print.waveform_pca"
      ]
    },
    {
      "page": "print.waveform_umap",
      "title": "Print waveform UMAP result",
      "topics": [
        "print.waveform_umap"
      ]
    },
    {
      "page": "processEMG",
      "title": "Process EMG for biomechanics workflows",
      "topics": [
        "processEMG"
      ]
    },
    {
      "page": "projectTo2D",
      "title": "Project 3D coordinates to a 2D plane",
      "topics": [
        "projectTo2D"
      ]
    },
    {
      "page": "promCondition",
      "title": "Condition a ProMP on a via-point",
      "topics": [
        "promCondition"
      ]
    },
    {
      "page": "promFit",
      "title": "Fit a Probabilistic Movement Primitive to demonstrations",
      "topics": [
        "promFit"
      ]
    },
    {
      "page": "quaternionToEuler",
      "title": "Convert quaternion to Euler angles",
      "topics": [
        "quaternionToEuler"
      ]
    },
    {
      "page": "quickStartMoCap",
      "title": "Run a one-command beginner workflow",
      "topics": [
        "quickStartMoCap"
      ]
    },
    {
      "page": "rateOfForceDevelopment",
      "title": "Rate of force development",
      "topics": [
        "rateOfForceDevelopment"
      ]
    },
    {
      "page": "reachingKinematics",
      "title": "Reaching kinematics report for a PhysioExperiment",
      "topics": [
        "reachingKinematics"
      ]
    },
    {
      "page": "readAMC",
      "title": "Read AMC Motion Capture File (.amc)",
      "topics": [
        "readAMC"
      ]
    },
    {
      "page": "readASF",
      "title": "Read ASF Skeleton Definition File (.asf)",
      "topics": [
        "readASF"
      ]
    },
    {
      "page": "readBVH",
      "title": "Read BVH Skeleton Animation File (.bvh)",
      "topics": [
        "readBVH"
      ]
    },
    {
      "page": "readC3D",
      "title": "Read C3D Motion Capture File",
      "topics": [
        "readC3D"
      ]
    },
    {
      "page": "readDeepLabCut",
      "title": "Read DeepLabCut output",
      "topics": [
        "readDeepLabCut"
      ]
    },
    {
      "page": "readGaitRec",
      "title": "Read GaitRec Dataset",
      "topics": [
        "readGaitRec"
      ]
    },
    {
      "page": "readMediaPipe",
      "title": "Read MediaPipe landmark output",
      "topics": [
        "readMediaPipe"
      ]
    },
    {
      "page": "readMoCapAuto",
      "title": "Read motion-capture files with automatic format detection",
      "topics": [
        "readMoCapAuto"
      ]
    },
    {
      "page": "readMoCapCSV",
      "title": "Read Motion Capture CSV Data",
      "topics": [
        "readMoCapCSV"
      ]
    },
    {
      "page": "readMOT",
      "title": "Read OpenSim Motion File (.mot)",
      "topics": [
        "readMOT"
      ]
    },
    {
      "page": "readOpenCap",
      "title": "Read Data from OpenCap Cloud Platform",
      "topics": [
        "readOpenCap"
      ]
    },
    {
      "page": "readOpenPose",
      "title": "Read OpenPose JSON output",
      "topics": [
        "readOpenPose"
      ]
    },
    {
      "page": "readOpenSimOutputs",
      "title": "Read OpenSim Output Files",
      "topics": [
        "readOpenSimOutputs"
      ]
    },
    {
      "page": "readPressureFrame",
      "title": "Read a plantar-pressure ASCII export",
      "topics": [
        "readPressureFrame"
      ]
    },
    {
      "page": "readSTO",
      "title": "Read OpenSim Storage File (.sto)",
      "topics": [
        "readSTO"
      ]
    },
    {
      "page": "readTRC",
      "title": "Read OpenSim TRC File (.trc)",
      "topics": [
        "readTRC"
      ]
    },
    {
      "page": "readVenus3D",
      "title": "Read Venus3D CSV Data",
      "topics": [
        "readVenus3D"
      ]
    },
    {
      "page": "rectifyEMG",
      "title": "Rectify EMG signals",
      "topics": [
        "rectifyEMG"
      ]
    },
    {
      "page": "recurrenceQuantification",
      "title": "Recurrence quantification analysis (RQA)",
      "topics": [
        "recurrenceQuantification"
      ]
    },
    {
      "page": "reflexThreshold",
      "title": "Velocity-dependent reflex threshold",
      "topics": [
        "reflexThreshold"
      ]
    },
    {
      "page": "regionalLoading",
      "title": "Summarize plantar loading by anatomical region",
      "topics": [
        "regionalLoading"
      ]
    },
    {
      "page": "removeGravity",
      "title": "Remove gravity from accelerometer data",
      "topics": [
        "removeGravity"
      ]
    },
    {
      "page": "reportGaps",
      "title": "Report summary statistics for detected gaps",
      "topics": [
        "reportGaps"
      ]
    },
    {
      "page": "resampleSignal",
      "title": "Resample signal assays to a new sampling rate",
      "topics": [
        "resampleSignal"
      ]
    },
    {
      "page": "resampleVector",
      "title": "Resample a single numeric vector",
      "topics": [
        "resampleVector"
      ]
    },
    {
      "page": "run_opensim_toolchain",
      "title": "Run OpenSim CLI Toolchain via PhysioOpenSim",
      "topics": [
        "run_opensim_toolchain"
      ]
    },
    {
      "page": "runBenchmarkSuite",
      "title": "Run a benchmark suite from a manifest",
      "topics": [
        "runBenchmarkSuite"
      ]
    },
    {
      "page": "runCMC",
      "title": "Run Computed Muscle Control (CMC) via OpenSim",
      "topics": [
        "runCMC"
      ]
    },
    {
      "page": "runOpenSimFromMarkers",
      "title": "Run the local OpenSim toolchain from a model and marker file",
      "topics": [
        "runOpenSimFromMarkers"
      ]
    },
    {
      "page": "runOpenSimFromOpenCap",
      "title": "Run the local OpenSim toolchain directly from an OpenCap session",
      "topics": [
        "runOpenSimFromOpenCap"
      ]
    },
    {
      "page": "runRRA",
      "title": "Run Residual Reduction Algorithm (RRA) via OpenSim",
      "topics": [
        "runRRA"
      ]
    },
    {
      "page": "runStaticOptimization",
      "title": "Run static optimization (OpenSim, or a pure-R fallback)",
      "topics": [
        "runStaticOptimization"
      ]
    },
    {
      "page": "sampleEntropy",
      "title": "Sample entropy (Richman & Moorman)",
      "topics": [
        "sampleEntropy"
      ]
    },
    {
      "page": "savgolFilter",
      "title": "Savitzky-Golay filter for smoothing and differentiation",
      "topics": [
        "savgolFilter"
      ]
    },
    {
      "page": "scaleBodyModel",
      "title": "Scale a body model from marker-measured segment lengths",
      "topics": [
        "scaleBodyModel"
      ]
    },
    {
      "page": "scalePlanarModel",
      "title": "Scale a planar chain model from a static pose",
      "topics": [
        "scalePlanarModel"
      ]
    },
    {
      "page": "scaleSegmentModel",
      "title": "Scale a de Leva segment inertia model to a subject",
      "topics": [
        "scaleSegmentModel"
      ]
    },
    {
      "page": "schema_balance",
      "title": "Pre-built Balance Schema",
      "topics": [
        "schema_balance"
      ]
    },
    {
      "page": "schema_cutting",
      "title": "Pre-built Cutting/Change of Direction Schema",
      "topics": [
        "schema_cutting"
      ]
    },
    {
      "page": "schema_cycling",
      "title": "Pre-built Cycling Schema",
      "topics": [
        "schema_cycling"
      ]
    },
    {
      "page": "schema_gait",
      "title": "Pre-built Gait Cycle Schema",
      "topics": [
        "schema_gait"
      ]
    },
    {
      "page": "schema_jump",
      "title": "Pre-built Jump Schema",
      "topics": [
        "schema_jump"
      ]
    },
    {
      "page": "schema_running",
      "title": "Pre-built Running Schema",
      "topics": [
        "schema_running"
      ]
    },
    {
      "page": "schema_throw",
      "title": "Pre-built Throwing Schema",
      "topics": [
        "schema_throw"
      ]
    },
    {
      "page": "segmentCohortCycles",
      "title": "Segment cohort recordings while preserving subject and session identity",
      "topics": [
        "segmentCohortCycles"
      ]
    },
    {
      "page": "segmentMultimodalCycles",
      "title": "Segment matched cycles on native modality sampling grids",
      "topics": [
        "segmentMultimodalCycles"
      ]
    },
    {
      "page": "segmentParameters",
      "title": "Get body segment inertial parameters (BSIP)",
      "topics": [
        "segmentParameters"
      ]
    },
    {
      "page": "segmentPhases",
      "title": "Segment data into phases",
      "topics": [
        "segmentPhases"
      ]
    },
    {
      "page": "sensoryOrganizationTest",
      "title": "Sensory Organization Test (SOT) equilibrium and sensory-ratio scoring",
      "topics": [
        "sensoryOrganizationTest"
      ]
    },
    {
      "page": "SkeletonModel",
      "title": "Create a SkeletonModel object",
      "topics": [
        "SkeletonModel"
      ]
    },
    {
      "page": "sparc",
      "title": "Spectral Arc Length (SPARC) movement smoothness",
      "topics": [
        "sparc"
      ]
    },
    {
      "page": "stabilogramDiffusion",
      "title": "Stabilogram diffusion analysis (Collins & De Luca 1993)",
      "topics": [
        "stabilogramDiffusion"
      ]
    },
    {
      "page": "staticOptimizationR",
      "title": "Pure-R static optimization of muscle activations",
      "topics": [
        "staticOptimizationR"
      ]
    },
    {
      "page": "strapdownIntegrate",
      "title": "ZUPT-aided strapdown integration of world-frame acceleration",
      "topics": [
        "strapdownIntegrate"
      ]
    },
    {
      "page": "summarizeCycleFeatures",
      "title": "Summarize matched cycles into keyed feature blocks",
      "topics": [
        "summarizeCycleFeatures"
      ]
    },
    {
      "page": "summarizeGaitParameters",
      "title": "Summarise gait parameters",
      "topics": [
        "summarizeGaitParameters"
      ]
    },
    {
      "page": "swayMetrics",
      "title": "Posturographic center-of-pressure sway metrics (Prieto 1996)",
      "topics": [
        "swayMetrics"
      ]
    },
    {
      "page": "symmetryIndex",
      "title": "Compute bilateral symmetry index",
      "topics": [
        "symmetryIndex"
      ]
    },
    {
      "page": "synchronizeSignals",
      "title": "Synchronize multiple PhysioExperiment objects",
      "topics": [
        "synchronizeSignals"
      ]
    },
    {
      "page": "tardieuScore",
      "title": "Tardieu score: R1, R2 and the dynamic component",
      "topics": [
        "tardieuScore"
      ]
    },
    {
      "page": "tardieuStretch",
      "title": "Detect the spastic catch on a single passive stretch",
      "topics": [
        "tardieuStretch"
      ]
    },
    {
      "page": "TaskSchema",
      "title": "Create a Task Schema",
      "topics": [
        "TaskSchema"
      ]
    },
    {
      "page": "timeDelayEmbed",
      "title": "Time-delay phase-space embedding",
      "topics": [
        "timeDelayEmbed"
      ]
    },
    {
      "page": "timeToPeakTorque",
      "title": "Time to peak torque",
      "topics": [
        "timeToPeakTorque"
      ]
    },
    {
      "page": "timeToPeakVelocity",
      "title": "Time to peak reaching velocity",
      "topics": [
        "timeToPeakVelocity"
      ]
    },
    {
      "page": "toleranceNoiseCovariation",
      "title": "Tolerance-Noise-Covariation (TNC) decomposition of result error",
      "topics": [
        "toleranceNoiseCovariation"
      ]
    },
    {
      "page": "trackMarkers",
      "title": "Track Markers Across Frames",
      "topics": [
        "trackMarkers"
      ]
    },
    {
      "page": "tremorAmplitude",
      "title": "Band-limited tremor amplitude (RMS)",
      "topics": [
        "tremorAmplitude"
      ]
    },
    {
      "page": "tremorMetrics",
      "title": "Tremor metrics (frequency + amplitude, with a task tag)",
      "topics": [
        "tremorMetrics"
      ]
    },
    {
      "page": "tremorSpectrum",
      "title": "Tremor power spectrum and dominant frequency",
      "topics": [
        "tremorSpectrum"
      ]
    },
    {
      "page": "trunkCompensation",
      "title": "Trunk compensation during reaching",
      "topics": [
        "trunkCompensation"
      ]
    },
    {
      "page": "uncontrolledManifold",
      "title": "Uncontrolled Manifold (UCM) analysis of motor variability",
      "topics": [
        "uncontrolledManifold"
      ]
    },
    {
      "page": "validateBenchmarkManifest",
      "title": "Validate a benchmark manifest",
      "topics": [
        "validateBenchmarkManifest"
      ]
    },
    {
      "page": "validateSchema",
      "title": "Validate a TaskSchema",
      "topics": [
        "validateSchema"
      ]
    },
    {
      "page": "vectorAngle",
      "title": "Angle between two 3D vectors",
      "topics": [
        "vectorAngle"
      ]
    },
    {
      "page": "vectorCoding",
      "title": "Vector coding (coupling angle) between two joints",
      "topics": [
        "vectorCoding"
      ]
    },
    {
      "page": "waveformPCA",
      "title": "PCA for waveform data",
      "topics": [
        "waveformPCA"
      ]
    },
    {
      "page": "waveformTSNE",
      "title": "t-SNE embedding for waveform data",
      "topics": [
        "waveformTSNE"
      ]
    },
    {
      "page": "waveformUMAP",
      "title": "UMAP embedding for waveform data",
      "topics": [
        "waveformUMAP"
      ]
    },
    {
      "page": "writeBenchmarkManifest",
      "title": "Write a benchmark manifest template to CSV",
      "topics": [
        "writeBenchmarkManifest"
      ]
    },
    {
      "page": "writeC3D",
      "title": "Write a C3D Motion Capture File",
      "topics": [
        "writeC3D"
      ]
    },
    {
      "page": "writeMOT",
      "title": "Write an OpenSim Motion File (.mot)",
      "topics": [
        "writeMOT"
      ]
    },
    {
      "page": "writeTRC",
      "title": "Write an OpenSim TRC File (.trc)",
      "topics": [
        "writeTRC"
      ]
    }
  ],
  "_readme": "https://github.com/x-biosignal/PhysioMoCap/raw/HEAD/README.md",
  "_rundeps": [
    "abind",
    "Biobase",
    "BiocGenerics",
    "cli",
    "cpp11",
    "DelayedArray",
    "digest",
    "farver",
    "generics",
    "GenomicRanges",
    "ggplot2",
    "glue",
    "gtable",
    "IRanges",
    "isoband",
    "jsonlite",
    "labeling",
    "lattice",
    "lifecycle",
    "Matrix",
    "MatrixGenerics",
    "matrixStats",
    "PhysioExperiment",
    "R6",
    "RColorBrewer",
    "rlang",
    "S4Arrays",
    "S4Vectors",
    "S7",
    "scales",
    "Seqinfo",
    "SparseArray",
    "SummarizedExperiment",
    "vctrs",
    "viridisLite",
    "withr",
    "XVector"
  ],
  "_vignettes": [
    {
      "source": "benchmark-validation.Rmd",
      "filename": "benchmark-validation.html",
      "title": "Benchmark Validation Workflow",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Create a benchmark bundle",
        "2. Validate manifest integrity",
        "3. Run benchmark suite",
        "4. Export reports",
        "5. Use real gold-standard data later"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    },
    {
      "source": "emg-mocap-integration.Rmd",
      "filename": "emg-mocap-integration.html",
      "title": "EMG and MoCap Integration Workflow",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Simulate MoCap and EMG data",
        "2. Process EMG (rectify + RMS envelope + smoothing)",
        "3. Align EMG to MoCap timeline",
        "4. Build an integrated analysis table",
        "Notes"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    },
    {
      "source": "forceplate-inverse-dynamics.Rmd",
      "filename": "forceplate-inverse-dynamics.html",
      "title": "Force Plate and Inverse Dynamics Workflow",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Simulate force-plate inputs",
        "2. Run force-plate analysis",
        "3. Build inverse-dynamics inputs",
        "4. Estimate inertial parameters and compute moments/power",
        "5. Multi-plate selection and 3D inverse dynamics",
        "Notes"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting Started with PhysioMoCap",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Create demo data",
        "2. Run one-command quick start",
        "3. Check data readiness",
        "4. Inspect key outputs",
        "5. Start from your own file",
        "6. Common input entry points",
        "7. Common troubleshooting"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    },
    {
      "source": "gold-standard-data-download.Rmd",
      "filename": "gold-standard-data-download.html",
      "title": "Gold-Standard Data Download and Benchmark Setup",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Preconditions",
        "2. Create a benchmark manifest",
        "3. Point manifest rows to your downloaded files",
        "4. Validate manifest integrity",
        "5. Run benchmark suite",
        "6. Replace placeholders with real external data"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    },
    {
      "source": "pose-pipeline.Rmd",
      "filename": "pose-pipeline.html",
      "title": "Markerless pose to gait: OpenPose -> poseFix -> analysis",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The pipeline",
        "A recording (simulated OpenPose output)",
        "Clean with poseFix()",
        "Before vs after",
        "Downstream: knee flexion angle",
        "A simple gait metric",
        "Where to go next",
        "Reference"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    },
    {
      "source": "opencap-opensim-pipeline.Rmd",
      "filename": "opencap-opensim-pipeline.html",
      "title": "OpenCap to OpenSim to downstream analysis",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Route A -- use OpenCap's cloud OpenSim output (self-contained)",
        "Route B -- run OpenSim locally (ID / muscle forces)",
        "Enabling an OpenSim backend",
        "From an OpenCap session, end to end",
        "Downstream",
        "Scope and honest limitations"
      ],
      "created": "2026-10-03 13:11:45",
      "modified": "2026-10-03 13:11:45",
      "commits": 1
    }
  ],
  "_score": 3.5440680443502757,
  "_indexed": true,
  "_nocasepkg": "physiomocap",
  "_universes": [
    "x-biosignal",
    "ymatts"
  ],
  "_previous": "0.7.4",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.7.5",
      "date": "2026-10-03T13:46:15.000Z",
      "distro": "resolute",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/4205e52b093044e2c9d900a823cf6b8c095d2556b080fd5f8a52465b73a4ed4e",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.7.5",
      "date": "2026-10-03T13:46:08.000Z",
      "distro": "resolute",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/60bc2cddcd1777fa4fa68ddc57fd326e3c24e2f351c276d2846ef0183af68f77",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.7.5",
      "date": "2026-10-03T14:00:31.000Z",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/d5c462bd309330f38bb9795c5c004c78fee534ff37ac6237355406e54405d36d",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.7.5",
      "date": "2026-10-03T14:00:44.000Z",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/7e554eee3f024d9419f3df77a7b37d6a61f003bc309f803c985e470df1f06f97",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.7.5",
      "date": "2026-10-03T13:45:53.000Z",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/cd90bac3f8906b9cadc9280f12f9455f4289ef78cb2a91aee5b73e5d804c7804",
      "status": "success",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.7.5",
      "date": "2026-10-03T13:45:20.000Z",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/f6dc7f1407fffde0c0d4f63a507506bec93915e0e2f931063757e52a741f2e22",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.7.5",
      "date": "2026-10-03T13:45:14.000Z",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/ce2040db23587885ce8db544967d1c3eae2bd389a1efeb2d42ed7051c6faeb65",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.7.5",
      "date": "2026-10-03T13:45:12.000Z",
      "commit": "6d95583987dc285f292a8a8023f455d873ce94b3",
      "fileid": "https://r2.ropensci.org/9a49dd4cf6f6af048ab64a10ff94298badc2d5b84e3bc262c1c1c6451a1c48fc",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/x-biosignal/actions/runs/37126890119"
    }
  ]
}