O
OpenPTS
v0.2.0 · MIT
v0.2.0 MIT License Python 3.11+ FastAPI OpenAPI 3.0

OpenPTS — Open Predetermined Time Standards.

A free, open-source REST API for MODAPTS-grounded industrial time study calculations. Submit a video of an assembly task; receive a motion sequence, base and standard time, units per hour, and an ergonomic risk profile.

MODAPTS® is a registered trademark of the International MODAPTS Association.
OpenPTS is an independent open-source implementation — not affiliated, not endorsed.

curl · POST /api/v1/sequence/analyze
# Calculate standard time + ergonomic risk for a sequence
curl -X POST https://openpts-api.vercel.app\
       /api/v1/sequence/analyze \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Heavy box, floor to table",
    "allowances_pct": 15,
    "motions": [
      {"code": "W5",  "quantity": 4},
      {"code": "B17", "quantity": 1},
      {"code": "G3",  "quantity": 1},
      {"code": "M5",  "quantity": 1},
      {"code": "W5",  "quantity": 5},
      {"code": "P2",  "quantity": 1}
    ]
  }'
# → response
{
  "total_mods": 72,
  "base_time_seconds": 9.288,
  "standard_time_seconds": 10.681,
  "units_per_hour": 337,
  "ergonomic_risk": {
    "repetitive_strain_index": 6.7,
    "risk_category": "HIGH"
  }
}

Swagger / OpenAPI 3.0 docs at /docs

Processing pipeline
01

Video

MP4 · MOV · WebM

02

MediaPipe Pose

33-point keypoints

03

MODAPTS classifier

Geometric rules → code

04

OpenPTS /sequence/analyze

this project

05

Standard time + risk

JSON · per-element

§ 01 Live demo interactive · MediaPipe analysis in-browser

Drop any video of a manual task — MediaPipe detects the pose on every frame, sliding-window segmentation finds the motion boundaries, and the MODAPTS classifier maps each segment to a code. Or run the bundled sample: a delivery-unload sequence whose annotations were reviewed and corrected by a licensed MODAPTS practitioner.

Drop a video to analyze

MP4 · MOV · WebM  ·  MediaPipe runs in your browser

Sample: delivery unload  ·  B17 × 5  ·  W5 × 3  ·  M4 × 2  ·  G0 × 2  ·  ST30  ·  M3
annotations practitioner-corrected — not raw classifier output

MODs

0

of —

Base time

0.00

seconds

Risk index

0.0

/ 10

Motion load index —
LowModerateHighVery high
MODAPTS sequence —
Categories Walk Bend Get Move Put
§ 02 Motion code library 19 codes · 9 families · v0.2.0

MODAPTS assigns time to basic human movements. Each code is a letter (motion family) plus a number (time, in MODs). 1 MOD = 0.129 s — 7.75 MODs per second. Codes are body-focused: they track which body region moves, not just the object's distance.

Quick reference

  • MMove
  • GGet / grasp
  • PPut / place
  • W / FWalk / foot
  • BBend & arise
  • S / STSit / stand
  • EEye action
  • RRegrasp
  • AApply pressure

Source: MODAPTS literature (Heyde & Fourie; IISE SWS division; Eisbrenner Productivity Group). Implementation in seed_data.py — open a PR to expand the library.

§ 03 REST API FastAPI · OpenAPI 3.0 · CORS open

Four endpoints. Auto-generated Swagger UI at /docs.

GET /api/v1/motions filterable

Return the full motion library. Filter by body_region or category to narrow candidates before classifying.

curl https://openpts-api.vercel.app/api/v1/motions\
       ?body_region=arm&category=move

// → [
//     {"code":"M3","mod_value":3,"time_seconds":0.387,
//      "body_region":"arm","category":"move", ... },
//     ...
//   ]
GET /api/v1/motions/{code}

One motion by its MODAPTS code. Case-insensitive.

curl https://openpts-api.vercel.app/api/v1/motions/B17

// → {
//     "code": "B17",
//     "category": "bend",
//     "body_region": "body",
//     "mod_value": 17,
//     "time_seconds": 2.193
//   }
POST /api/v1/sequence/analyze primary

The main study endpoint. Returns standard time (with allowances), units/hour, per-element breakdown, body-region totals, category totals, and a full ergonomic risk profile (RSI 0–10, per-element flags, WMSD targets, prioritised engineering recommendations).

POST /api/v1/sequence/analyze
{
  "name": "Pick and place",
  "allowances_pct": 15,
  "motions": [
    {"code": "M3", "quantity": 1},
    {"code": "G1", "quantity": 1},
    {"code": "P2", "quantity": 1}
  ]
}
POST /api/v1/classify v0.2 · heuristic

Classify a pose-keypoint sequence (MediaPipe 33-point format, 20–90 frames) into a MODAPTS code. The implementation is a geometric rule-based classifier; confidence values are heuristic rule scores, not calibrated probabilities. A supervised model is not planned — no labeled dataset exists.

POST /api/v1/classify
{
  "landmark_format": "mediapipe_33",
  "fps": 30,
  "active_side": "bilateral",
  "frames": [ /* 20-90 frames */ ]
}

// → { "code": "B17", "confidence": 0.84, ... }
§ 04 Concepts & rationale background reading

MODAPTS has been used in manufacturing for decades, but it has remained locked inside proprietary desktop software and Excel files. OpenPTS brings the same calculations into the API era, so any system can call them — directly from a video.

Target integrations: MES, ERP, digital-twin simulations, custom production planning, AI-powered ergonomic assessment, and robot-learning pipelines.

✓ Complete library of MODAPTS motion codes

✓ Standard time with configurable allowances

✓ Repetitive Strain Index (0–10) with WMSD targets

✓ Pose-sequence → motion code classification

✓ Open source · MIT · free to use

Key concepts

1 MOD
0.129 seconds. The atomic time unit. 7.75 MODs equal one second.
Element
A single human motion (e.g. M3 — move object, forearm length). Coded by body region, not object distance.
Sequence
An ordered list of elements covering one task cycle. Sum of MODs × 0.129 = base time.
Allowance
Personal-fatigue-delay percentage added to base time. 15% is the standard automotive value; OSHA/NIOSH typically use 10–20%.
Standard time
base_time × (1 + allowances_pct/100). The number on the line balance sheet.
RSI
Repetitive Strain Index, 0–10. A relative load score for comparing task variants and flagging high-load elements. Region ordering informed by RULA / REBA / NIOSH literature, but the score is unvalidated against them or against injury data — not a clinical instrument.
§ 05 Applications typical integration patterns

/01

Line balancing

Calculate cycle times for assembly stations to optimise production flow.

/02

Capacity planning

Estimate labour requirements for new products before tooling is built.

/03

Ergonomic assessment

Identify high-frequency, high-strain motions for WMSD injury prevention.

/04

Digital twins

Feed standard times into simulation models for virtual factory optimisation.

/05

ERP integration

Auto-calculate labour standards for Bills of Materials — no manual studies.

/06

Lean manufacturing

Eliminate waste by quantifying non-value-added motions across the cycle.

/07

Cost estimation

Build accurate labour cost models for quoting, budgeting, and bid response.

/08

Robot learning

Label demonstration video for imitation-learning pipelines via /classify.

§ 06 Disclaimer & references trademark notice · source list

MODAPTS® is a registered trademark of the International MODAPTS Association. OpenPTS is an independent, open-source implementation of predetermined time standards calculations and is not affiliated with, endorsed by, or supported by the International MODAPTS Association.

For official MODAPTS training, certification, and commercial software, please visit the trademark holder directly:

modapts.org

This tool is intended for educational, research, and open-source development purposes.

§ 07 Author contact · roadmap

Sid Sanghavi

Licensed MODAPTS Practitioner (via Ford Motor Company, 2015). M.S. Industrial & Systems Engineering, Virginia Tech. 4+ years as Senior Assembly Systems Engineer at Ford. Industrial-engineering experience across automotive manufacturing, IoT, and AI-powered products.

Roadmap

  • ✓Core MODAPTS motion library (19 codes)
  • ✓Time-study calculations with allowances
  • ✓Interactive API documentation (Swagger / OpenAPI 3.0)
  • ✓Public deployment (Vercel)
  • ✓Ergonomic risk scoring (RSI 0–10)
  • ✓Pose-sequence classifier (geometric heuristic)
  • ✕Complete motion library (30+ codes) — not planned
  • ✕PDF / Excel report generation — not planned
  • ✕Supervised CV classifier — not planned (no labeled data exists)
  • ✕MTM and MOST standards — not planned

v0.2 is the final release — the project is complete, not under active development.

Contributions welcome — open an issue or PR on GitHub. Especially valuable: additional motion codes, labeled video data, and production-environment edge cases.