st-tech/ppf-contact-solver

A contact solver for physics-based simulations involving 👚 shells, 🪵 solids, 🪢 rods, 🧱 rigid bodies and ⏳ sand.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 30 minutes ago
Added to GitGenius on September 15th, 2026
Created on November 21st, 2024
Open Issues & Pull Requests: 89 (+0)
GitHub issues: Enabled
Number of forks: 334
Total Stargazers: 4,491 (+0)
Total Subscribers: 32 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.9 hours
Mean response time: 22.9 hours
90th percentile: 33.0 hours
Tracked items: 117

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Practically every issue opened in the past year has drawn a reply. 65% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. 16% of tracked open issues have had no activity in three months. Only 24% of issues opened in the past year have been closed. Three people close 71% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 89
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 81 days
Stale 30+ days: 75
Stale 90+ days: 15

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 3
Events in 7 days: 6

Top labels

  • worked (79)
  • deployed (60)
  • bug (53)
  • enhancement (49)
  • queued (12)
  • deferred (4)
  • pending (1)

Most active issues this week

Detailed Description

PPF Contact Solver is a physics simulation engine that solves contact dynamics for cloth, solids, rods, rigid bodies, and granular materials.

The tool addresses the challenge of simulating complex interactions between multiple object types in physics-based systems. It originated as an internal physics engine at a major fashion e-commerce company and handles scenarios ranging from cloth collisions to rigid body dynamics. The solver guarantees penetration-free results upon convergence, meaning simulated objects do not intersect. It uses finite element methods for deformable bodies with symbolic force Jacobians, runs contact and elasticity solvers on GPU for parallel computation, and operates in single precision for cache efficiency. The approach scales to handle extreme cases with over 180 million simultaneous contacts.

The tool suits projects requiring accurate cloth simulation with real-world fabric behavior, large-scale contact scenarios, or integration with existing workflows. It offers multiple entry points: a Blender add-on for remote simulation, a Windows executable requiring no installation, Docker deployment for Linux and Windows, and Python APIs with full documentation. The project includes JupyterLab for interactive examples and supports cloud deployment. Teams working on fashion e-commerce applications, game development, or research in physics simulation will find the penetration-free guarantees and fabric presets calibrated against real measurements particularly valuable. The README does not compare this tool to specific alternatives.

Development activity shows consistent community engagement with users reporting bugs that receive fixes. The project runs automated stress tests repeatedly to validate stability under extreme conditions. Documentation is comprehensive, with Python code fully docstringed and lintable, and a detailed fabric calibration report available. The codebase prioritizes safety by minimizing C++ in favor of Rust while maintaining performance through GPU acceleration.