physics-rendering-expert
Real-time rope/cable physics using Position-Based Dynamics (PBD), Verlet integration, and constraint solvers. Expert in quaternion math, Gauss-Seidel/Jacobi solvers, and tangling detection. Activate on 'rope simulation', 'PBD', 'Position-Based Dynamics', 'Verlet', 'constraint solver', 'quaternion', 'cable dynamics', 'cloth simulation', 'leash physics'. NOT for fluid dynamics (SPH/MPM), fracture simulation (FEM), offline cinematic physics, molecular dynamics, or general game physics engines (use Unity/Unreal built-ins).
$ Installer
git clone https://github.com/erichowens/some_claude_skills /tmp/some_claude_skills && cp -r /tmp/some_claude_skills/.claude/skills/physics-rendering-expert ~/.claude/skills/some_claude_skills// tip: Run this command in your terminal to install the skill
name: physics-rendering-expert description: Real-time rope/cable physics using Position-Based Dynamics (PBD), Verlet integration, and constraint solvers. Expert in quaternion math, Gauss-Seidel/Jacobi solvers, and tangling detection. Activate on 'rope simulation', 'PBD', 'Position-Based Dynamics', 'Verlet', 'constraint solver', 'quaternion', 'cable dynamics', 'cloth simulation', 'leash physics'. NOT for fluid dynamics (SPH/MPM), fracture simulation (FEM), offline cinematic physics, molecular dynamics, or general game physics engines (use Unity/Unreal built-ins). allowed-tools: Read,Write,Edit,Bash,mcp__firecrawl__firecrawl_search,WebFetch category: AI & Machine Learning tags:
- physics
- pbd
- verlet
- simulation
- constraints pairs-with:
- skill: metal-shader-expert reason: GPU-accelerated physics rendering
- skill: native-app-designer reason: Physics in app animations
Physics & Rendering Expert: Rope Dynamics & Constraint Solving
Expert in computational physics for real-time rope/cable dynamics, constraint solving, and physically-based simulations.
When to Use This Skill
Use for:
- Real-time rope/cable/chain simulation (leashes, climbing ropes)
- Position-Based Dynamics (PBD) implementation
- Constraint solvers (Gauss-Seidel, Jacobi)
- Quaternion/dual-quaternion rotation math
- Verlet integration for particle systems
- Tangle detection (multi-rope collisions)
Do NOT use for:
- Fluid dynamics → specialized SPH/MPM solvers
- Fracture simulation → requires FEM or MPM
- Offline cinematic physics → different constraints
- Unity/Unreal physics → use built-in systems
Expert vs Novice Shibboleths
| Topic | Novice | Expert |
|---|---|---|
| Constraint approach | Uses spring forces (F=ma) | Uses PBD (directly manipulates positions) |
| Why PBD | "Springs work fine" | Springs require tiny timesteps; PBD is unconditionally stable |
| Solver choice | "Just iterate until done" | Gauss-Seidel for chains, Jacobi for GPU |
| Iterations | 20+ iterations | 5-10 is optimal; diminishing returns after |
| Rotation | Uses Euler angles | Uses quaternions (no gimbal lock) |
| Integration | Forward Euler | Verlet (symplectic, energy-conserving) |
Common Anti-Patterns
Force-Based Springs for Stiff Constraints
| What it looks like | Why it's wrong |
|---|---|
force = k * (distance - rest_length) with high k | High k requires tiny dt for stability; low k gives squishy ropes |
| Instead: Use PBD - directly move particles to satisfy constraints |
Euler Angles for Rotation
| What it looks like | Why it's wrong |
|---|---|
rotation = vec3(pitch, yaw, roll) | Gimbal lock at 90° pitch; unstable composition |
| Instead: Use quaternions - 4 numbers, no gimbal lock, stable SLERP |
Over-Iteration
| What it looks like | Why it's wrong |
|---|---|
solver_iterations = 50 | Diminishing returns after 5-10; wastes cycles |
| Instead: Use 5-10 iterations; if more needed, use XPBD compliance |
Single-Threaded Gauss-Seidel for Large Systems
| What it looks like | Why it's wrong |
|---|---|
| Gauss-Seidel on 1000+ constraints | Gauss-Seidel is inherently sequential |
| Instead: Use Jacobi solver for GPU parallelization |
Quick Reference
Why PBD Beats Force-Based Physics
- Unconditionally stable (large timesteps OK)
- Direct control over constraint satisfaction
- No spring constants to tune
- Predictable behavior
Solver Choice
| Solver | Parallelizable | Convergence | Use Case |
|---|---|---|---|
| Gauss-Seidel | No | Fast | Chains, ropes |
| Jacobi | Yes (GPU) | Slower | Large meshes, cloth |
Rotation Representation
- 3D rotation → Quaternion (never Euler)
- Rotation + translation → Dual quaternion
- Skinning/blending → Dual quaternion (no candy-wrapper artifact)
Performance Targets
| System | Budget | Notes |
|---|---|---|
| Single rope (100 particles) | <0.5ms | 5 iterations sufficient |
| Three-dog leash (60 particles) | <0.7ms | Include tangle detection |
| Cloth (1000 particles) | <2ms | Use Jacobi on GPU |
Evolution Timeline
| Era | Key Development |
|---|---|
| Pre-2006 | Mass-spring systems, stability issues |
| 2006-2015 | PBD introduced (Müller et al.), unconditional stability |
| 2016-2020 | XPBD adds compliance for soft constraints |
| 2021-2024 | ALEM (2024 SIGGRAPH), BDEM, neural physics |
| 2025+ | XPBD standard, hybrid CPU/GPU, learned corrections |
Decision Trees
Choosing constraint solver:
- Sequential structure (rope/chain)? → Gauss-Seidel
- Large parallel system (cloth/hair)? → Jacobi (GPU)
- Need soft constraints? → XPBD with compliance
Choosing integration:
- Position-only needed? → Basic Verlet
- Need velocity for forces? → Velocity Verlet
- High accuracy required? → RK4 (but PBD usually sufficient)
Integrates With
- metal-shader-expert - GPU compute shaders for Jacobi solver
- native-app-designer - Visualization and debugging UI
Reference Files
| File | Contents |
|---|---|
references/core-algorithms.md | PBD loop, Verlet, quaternions, solver implementations |
references/tangle-physics.md | Multi-rope collision, Capstan friction, TangleConstraint |
Remember: Real-time physics is about stability and visual plausibility, not physical accuracy. PBD with 5-10 iterations at 60fps looks great and runs fast.
Repository
