Tensio — High-Performance DOTS Rope & Chain Physics
Tensio is a high-performance, physics-based rope and chain simulation framework engineered specifically for the Unity game engine. Built on Extended Position Based Dynamics (XPBD), Tensio delivers rock-solid, physically accurate, and interactive flexible-body simulations suitable for everything from indie titles to AAA games and industrial simulations.
By leveraging Unity’s Data-Oriented Technology Stack (DOTS) — including the C# Job System, Burst Compiler, and Mathematics (SIMD) library — Tensio executes all core physics, collision detection, and procedural mesh generation asynchronously across worker threads, maintaining a smooth 60+ FPS main game loop with Zero Garbage Collection (0B GC Alloc) allocations per frame.
🚀 Why Tensio?
Simulating flexible objects like ropes, cables, winches, and chains has historically challenged real-time graphics and physics engines. Traditional mass-spring systems frequently suffer from “super-elasticity” (excessive stretchiness) or explosive instability when stiffness parameters are dialed up.
Tensio solves this fundamental constraint problem using XPBD (Extended Position Based Dynamics):
- Infinite Stiffness: Simulate totally inextensible steel cables and railway chains without jitter or numerical drift.
- Physical Compliance: Accurately model elastic materials such as bungee cords, suspension tethers, and rubber bands.
- Unconditional Stability: Geometric distance and attachment constraints are solved unconditionally, preventing mesh explosions even under extreme gravitational or kinetic stress.
- Predictable Time Steps: Physics sub-stepping handles high-speed dynamic motions seamlessly without clipping through geometry.
⚡ Core Capabilities
⚛️ Multi-Threaded Physics
PBD constraint solver running in parallel on worker threads via Unity's Job System & Burst Compiler.
🔗 Dual Rendering Pipeline
Procedural Catmull-Rom tube meshing (`RopeRenderer`) and GPU-instanced rigid links (`RopeChainRenderer`).
💥 3-Tier Collision System
Standard World SphereCast, ultra-fast analytical SDF Proxy Colliders, and spatial hash Inter-Rope self collisions.
✂️ Real-time Interaction
Interactive slicing and splitting (`RopeCutter`), dynamic motor winches (`RopeWinch`), and anchor pinning.
🧭 Documentation Map
Explore the detailed documentation chapters:
- Installation & Dependencies — Unity version requirements (2022.3+ LTS), package dependencies, and Burst settings.
- Quick Start Guide — Create and simulate your first rope in under 60 seconds with interactive pinning.
- Core Components:
- Rope Controller — Master component for simulation, particles, and physics parameters.
- Rope Renderer — Continuous 3D procedural tube mesh generation and UV tiling.
- Rope Chain Renderer — High-performance GPU-instanced rigid chains.
- Interaction Tools — Winching systems, mouse cutting, and real-time tearing.
- Rope Audio — Physics-reactive procedural audio loops and impact triggers.
- Editor Toolbars:
- Bezier Point Window — Scene View floating toolbar, relaxation solver, and shape modifiers.
- Make Colliders Rope-Ready — One-click Unity Collider to Tensio Proxy Collider conversion.
- Advanced Topics:
- Rendering Optimization & Batching — Single-draw-call batching for thousands of ropes.
- Collision Systems — World SphereCast vs. Analytical SDF Proxy vs. Spatial Hash.
- LOD System — Distance-based CullingGroup switching between 3D Mesh, Line, and Suspended states.
- Grappling Hook Case Study — Complete player grappling hook implementation breakdown.
- C# Scripting API Reference — Public methods, properties, and events for runtime scripting.
- Frequently Asked Questions (FAQ) — Performance tuning, mobile tips, and jitter troubleshooting.