PoseGuide accepts community-contributed pose packs for camera positioning guidance.
{
"id": "unique_pose_id",
"name": "Human Readable Name",
"difficulty": "easy|medium|hard",
"category": "standing|sitting|action|portrait",
"joints": {
"head": [x, y, z],
"shoulders": [x, y, z],
"hips": [x, y, z],
"knees": [x, y, z],
"feet": [x, y, z]
},
"tips": ["Tip 1", "Tip 2"],
"camera_cues": ["Front view", "Eye level"]
}Every pose JSON must include these joint keys (coordinates in meters from origin):
| Joint | Description |
|---|---|
nose |
Face center |
l_shoulder, r_shoulder |
Shoulder points |
l_elbow, r_elbow |
Elbow bends |
l_wrist, r_wrist |
Hand positions |
l_hip, r_hip |
Hip reference |
l_knee, r_knee |
Knee bends |
l_ankle, r_ankle |
Foot placement |
Additional joints are encouraged for complex poses (e.g., neck, spine, l_ear, r_ear).
The difficulty field classifies pose complexity:
- easy: Standing, neutral pose, minimal limb articulation (e.g., standing_neutral, hand_wave)
- medium: Seated or dynamic pose, moderate joint variation (e.g., sitting_cross_legged, crouch_ready)
- hard: Complex action, unusual angles, or multiple interacting joints (e.g., jump_midair, yoga_tree)
After adding or modifying pose packs, rebuild the web catalog:
python scripts/build-web-catalog.pyThis regenerates web/catalog.json and updates the pose index.
- Fork the PoseGuide repository
- Create your pose JSON in
data/poses/ - Follow the schema above
- Add at least 3 helpful tips
- Include camera angle suggestions
- Test with
pytest tests/ - Submit PR with description
- Coordinates should be realistic (meters from origin)
- Tips should be actionable and specific
- Camera cues should include angle and framing
- Use descriptive IDs (e.g.,
sitting_cross_legged) - Include
difficultyandcategoryfields - Run
python scripts/build-web-catalog.pybefore submitting
When submitting a pose pack PR, include:
- Screenshot — rendered pose visualization (see
docs/screenshots/for examples) - JSON validation — output of
python -m json.tool data/poses/<your_pose>.json - Catalog rebuild — confirm
web/catalog.jsonincludes your pose - Test pass —
pytest tests/ -voutput
See data/poses/standing_neutral.json for a complete example.
For pose pack bounties specifically:
- Claim the bounty issue (comment
I claim this bounty) - Fork + create branch:
pose-pack/<pose-id> - Add pose JSON + screenshot + tips
- Run catalog rebuild + tests
- Open PR with evidence (screenshots, test output)
- Maintainer reviews → merge → MRG credit issued