Joint pattern recognition #12

Closed
opened 2026-02-03 16:09:50 +00:00 by forbes · 0 comments
Owner

Phase 1.2

Depends on #11

Files: solver/mates/patterns.py (Create), tests/mates/test_patterns.py (Create)

Scope: JointPattern enum (HINGE, SLIDER, CYLINDER, BALL, PLANAR, FIXED, GEAR, RACK_PINION, UNKNOWN). PatternMatch dataclass (pattern, mates, body_a, body_b, confidence, equivalent_joint_type, missing_mates). recognize_patterns() groups mates by body pair, matches against canonical rules (Concentric+Coincident(plane)->Hinge, etc.), scores partial matches, returns sorted by confidence.

Acceptance Criteria:

  • JointPattern enum with 9 patterns
  • PatternMatch dataclass
  • recognize_patterns() identifies hinge, slider, cylinder, ball, planar, fixed
  • Partial matches with lower confidence + missing_mates hints
  • Ambiguous mates produce ranked matches
  • Tests, ruff, mypy all pass
## Phase 1.2 Depends on #11 **Files:** solver/mates/patterns.py (Create), tests/mates/test_patterns.py (Create) **Scope:** JointPattern enum (HINGE, SLIDER, CYLINDER, BALL, PLANAR, FIXED, GEAR, RACK_PINION, UNKNOWN). PatternMatch dataclass (pattern, mates, body_a, body_b, confidence, equivalent_joint_type, missing_mates). recognize_patterns() groups mates by body pair, matches against canonical rules (Concentric+Coincident(plane)->Hinge, etc.), scores partial matches, returns sorted by confidence. **Acceptance Criteria:** - [ ] JointPattern enum with 9 patterns - [ ] PatternMatch dataclass - [ ] recognize_patterns() identifies hinge, slider, cylinder, ball, planar, fixed - [ ] Partial matches with lower confidence + missing_mates hints - [ ] Ambiguous mates produce ranked matches - [ ] Tests, ruff, mypy all pass
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/solver#12