Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/heroic-owls-land.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"posecode-parser": patch
"posecode-render": patch
"posecode-mcp": patch
---

Strengthen Posecode motion authoring and playback with strict contact validation, grounded multi-contact solving, continuous sparse transitions, and more lifelike canonical movement guidance.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ It explains biomechanical problems in natural language and proposes specific rev
| Package | Purpose |
| --- | --- |
| [`posecode-language`](packages/posecode-language) | Language definitions and editor support |
| [`posecode-parser`](packages/posecode-parser) | Converts `.posecode` text into validated, ROM-constrained intermediate representation |
| [`posecode-parser`](packages/posecode-parser) | Converts `.posecode` text into a validated, range-constrained intermediate representation |
| [`posecode-render`](packages/posecode-render) | Renders animated figures with Three.js, forward kinematics, and IK |
| [`posecode-share`](packages/posecode-share) | Encodes Posecode documents into URL-safe share tokens |
| [`posecode-mcp`](packages/posecode-mcp) | Exposes Posecode capabilities to AI agents through MCP |
Expand Down Expand Up @@ -482,7 +482,7 @@ Posecode currently focuses on:
The following are outside the current scope:

- two-person or partner motion,
- collision detection,
- comprehensive collision detection and rigid-body dynamics,
- detailed object physics,
- advanced equipment simulation,
- multi-joint finger animation,
Expand Down
13 changes: 7 additions & 6 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
# Posecode: domains & roadmap

Posecode's vision is broad: **describe any single-person movement as text and render it
safely in 3D.** The *protocol* is general; the *current renderer* is deliberately
scoped (one figure, forward kinematics, ground-locked hands/feet, no props). This
Posecode's vision is broad: **describe single-person movement as text and render it
as inspectable 3D motion.** The *protocol* is general; the *current renderer* is deliberately
scoped to one simplified figure with forward kinematics, constrained contacts,
starter props, and no rigid-body dynamics. This
doc maps the domains Posecode can serve, what already works, and what each remaining
domain needs, so contributions land where they unlock the most.

## Where Posecode fits

| Domain | Example uses | Status |
| --- | --- | --- |
| **Physiotherapy / rehab** | Range-of-motion demos, home-exercise programs, post-op protocols, cervical/shoulder mobility | Strong fit today: the ROM safety clamp is a clinical feature. Many moves render now; equipment (bands, balls) is future. |
| **Ergonomics / desk & posture** | Posture resets, seated/standing stretch breaks, "do this every hour" prompts | Works today for standing variants; true *seated* needs a chair prop (below). |
| **Yoga & mobility** | Standing poses (chair, side bend, twist), flows, mobility drills | Standing poses work; floor/inversion/lying poses need lying base poses + a mat. |
| **Physiotherapy / rehab** | Range-of-motion demos, home-exercise programs, post-op protocols, cervical/shoulder mobility | Useful for reviewed visualization: ROM constraints and diagnostics are explicit. Clinical use still requires qualified review; bands and balls are future. |
| **Ergonomics / desk & posture** | Posture resets, seated/standing stretch breaks, "do this every hour" prompts | Standing and floor-seated variants work; chair-seated motion needs a dedicated base pose. |
| **Yoga & mobility** | Standing poses (chair, side bend, twist), flows, mobility drills | Standing and basic supine/prone/long-seated poses work; inversions and detailed mat contacts remain limited. |
| **Movement education / anatomy** | Demonstrate joint actions ("what is shoulder abduction?"), biomechanics teaching | Excellent fit: single-joint demos are exactly what the rig does. |
| **Fitness / strength** | Body-weight and free-form movement coaching | Core today (squat, curl, raise). Barbell/dumbbell/machine work needs props + grip. |
| **Functional / elderly care** | Sit-to-stand, balance, gentle ROM, fall-prevention drills | Partial: sit-to-stand works; reaching/balance need reach-IK + props. |
Expand Down
23 changes: 12 additions & 11 deletions docs/market-research.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@
## 1. The thesis

Posecode is **"Mermaid for human movement."** A person describes a movement in
words; an LLM writes a short `.posecode` document; the browser parses it, clamps it
to a safe range of motion, and renders an animated 3D mannequin, producing a
words; an LLM writes a short `.posecode` document; the browser validates it,
constrains joint targets to configured ranges, and renders an animated 3D mannequin, producing a
**shareable URL**. The loop is:

> **ask an LLM for a movement → it renders → share the link.**

This is structurally different from video. A `.posecode` doc is **editable text**:
an LLM can generate it, a human can tweak one angle, a clinician can fork it, and
it diffs in version control. Diffusion/video models hallucinate anatomy and can't
be safely constrained; Posecode's ROM clamp is a *correctness* feature, not a filter.
Text is also how LLMs natively "think" about structure, so authoring is reliable
and improves as models improve.
it diffs in version control. Posecode exposes the authored anatomy and constraints
for inspection instead of hiding them in a generated trajectory. Range constraints
are one correctness layer, not a certification of the complete movement. Text also
gives LLMs a structured target that can be parsed, evaluated, and revised.

### Why it can spread

Expand All @@ -30,8 +30,9 @@ and improves as models improve.
- **Agent-native.** The [`posecode-mcp`](../packages/posecode-mcp) server lets Claude/
ChatGPT author, validate, and return a render link *inside the chat*: the
movement appears where the user already is.
- **Safe to trust.** Clinical ROM limits mean shared links can't depict unsafe
joint angles: important for the health-adjacent buyers below.
- **Inspectable constraints.** Configured ROM limits prevent impossible authored
joint rotations, while contact residuals and movement checks expose failures.
Health-adjacent uses still require qualified review.

## 2. How we scored the domains

Expand Down Expand Up @@ -67,14 +68,14 @@ on the roadmap.

- **Customer:** physios, chiros, athletic trainers, and their patients running
home-exercise programs; post-op ROM protocols.
- **Aha use case:** a clinician types a prescription and hands the patient a link
that *shows* the exercise, with a built-in safe-range guarantee.
- **Aha use case:** a clinician authors or reviews a movement and hands the patient
a link that *shows* it, with explicit joint targets and validation diagnostics.
- **Viral loop:** clinician → patient link sharing is high-frequency and trusted;
patients forward to family; clinics build reusable libraries.
- **Ships:** `heel-raises`, `standing-hamstring-curl`, `hip-abduction`,
`good-morning` (back-health hinge), plus existing `neck-rotation`,
`shoulder-stretch`.
- **Engine-fit:** ★★★★☆, the ROM clamp is a clinical feature; bands/balls and
- **Engine-fit:** ★★★★☆, range constraints support review; bands/balls and
lying poses are future (see roadmap).

### 3c. Desk & workplace wellness
Expand Down
2 changes: 1 addition & 1 deletion packages/posecode-embed/test/compat.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const SPORTS_MOVE = `posecode exercise "Crossover"
knees: flex 68
ground-lock: feet
step "Cross" 0.22s drive:
pelvis: rotate-out 14
turn: -14
travel: -0.18 0
ground-lock: feet
repeat 2
Expand Down
Loading