Skip to content

feat(golf-club): add validated wedge turf contact - #4178

Closed
dieterolson wants to merge 7 commits into
feat/4161-wedge-ground-clearancefrom
feat/4166-wedge-turf-physics
Closed

feat(golf-club): add validated wedge turf contact#4178
dieterolson wants to merge 7 commits into
feat/4161-wedge-ground-clearancefrom
feat/4166-wedge-turf-physics

Conversation

@dieterolson

Copy link
Copy Markdown
Collaborator

Summary

  • add a passive unilateral Kelvin-Voigt normal law with regularized Coulomb friction, explicit SI frames, wrench, stored energy, dissipation, penetration limits, and typed solver states
  • add strict provenance-bearing turf profiles and deterministic golf-club.turf-profile/v1 persistence; illustrative presets cannot enable turf-supported rankings
  • add nine-point leading-edge/sole contact quadrature, sloped-ground support, active-region reporting, and an aggregate wrench seam for full dynamics solvers
  • add reduced effective-mass integration with cooperative cancellation, explicit unilateral separation loss, and coarse-to-fine convergence metrics
  • register turf parameters for dedicated deterministic variation plans without exposing them as false controls in the generic swing/flight evaluator
  • adapt retained Rate wedge events to the shared contact model while clearly labeling that retained swings are not replayed under the computed turf force
  • document equations, frames, limitations, evidence gates, and remaining calibration work

Verification

  • 729 shared golf-club and Rate tests passed; 2 optional build123d suites skipped because build123d is not installed locally
  • 53 focused turf/facade/adapter tests passed
  • Ruff format and lint passed on all touched Python
  • strict Mypy passed on all new/touched turf and Rate adapter sources
  • protected module-size budget passes after the inherited base-stack repair
  • every new production Python module is under 400 physical lines

Scientific boundary

The three built-in profiles are illustrative engineering starting points, not measured named-surface models. Ranking language is gated on an explicitly calibrated profile with provenance. The reduced effective-mass result is a diagnostic; evaluate_wedge_turf_wrench is the force-coupling seam for a future full rigid-body replay.

Closes #4166 when this PR and its dependency stack are merged.
Depends on #4174.
Parent epic: #4158.

@d-sorgcodexagent
d-sorgcodexagent Bot marked this pull request as ready for review August 11, 2026 22:04
@dieterolson

Copy link
Copy Markdown
Collaborator Author

Consolidated into #4410. Closing to eliminate CI runner load.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant