📈 GH Trending Explorer 🎲 Surprise me

← all repos

WouterApts / openik-unity

git clone https://github.com/WouterApts/openik-unity.git v0.9.0 · 1d ago

Inverse Kinematics package for Unity, featuring multiple solvers, joint limits and procedural animation samples.

+0
stars, 24h · #35,088
+~0
stars, 7 days · #35,563
+87
stars, 30 days · #6,192
87
★ total
5
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 87 ★ 2026-10-22 · 87 ★
LanguageC#
LicenseMIT
Created2026-10-09 (13d ago)
Last push1d ago
Watchers4
OwnerUser

GitHub topics

Links

README excerpt
**OpenIK** is a free, open-source inverse kinematics package for Unity.
It includes FABRIK, CCD, Jacobian, and Two Bone solvers, with hinge, ball-and-socket, and slider limits.
https://github.com/user-attachments/assets/124f04d5-e9f4-4067-ba43-f49f7a5b3c19
## What's included
- **Solvers:** FABRIK and CCD solve for position, while damped least-squares Jacobian also handles orientation.
 Connected chains with separate targets for each branch can be solved using Multi-FABRIK.
- **Joint constraints:** hinge rotation limits, ball-and-socket swing/twist limits,
 and slider travel limits.
- **Joint speed:** cap how fast each joint moves by setting its angular or
 linear speed.
- **Poles:** make an elbow or knee bend toward a pole target, in any solver.
- **Execution control:** let solvers run and move the chain every frame, or call
 them from your own scripts and decide when the result is applied.
- **Editor tools:** intuitive component inspectors and constraint gizmos.
- **Importable examples:** basic chains, a robotic painting arm, and a walking
 spider, with shared models, materials, and terrain.
- **Documentation and tests:** setup guide, solver/API reference, and optional
 EditMode regression tests.
## Requirements
- Unity 6 (6000.0) or newer.
- Unity Mathematics 1.3.3, installed automatically as a package dependency.
The core package does not require a render pipeline or the Input System package.
The optional samples use URP and work with the legacy Input Manager, the Input
System package, or both.
## Install
In Unity, open **Window > Package Manager**, select **+ > Install package from
git URL** (called **Add package from git URL** in some versions), and paste:
 [code] 
The version tag pins your project to a release. To upgrade later, change the tag
in your project's `Packages/manifest.json` to the desired published version.
For local development, clone the repository outside your Unity project, then use
**Install package from disk** and select its `package.json`.
## Quick start
1. Create a chain of at least two transforms, parented from root to end effector.
2. Create a separate target transform.
3. Add `FABRIKSolver`, `CCDIKSolver`, `JacobianIKSolver`, or `TwoBoneIKSolver` (three joints) to a controller object.
4. Assign the target and populate **Joints** in root-to-end order.
5. Optionally add `HingeIKJoint`, `BallSocketIKJoint`, or `SliderIKJoint` components to the transforms that act as joints in your chain.
6. Press Play and move the target.
By default the solver runs every frame and moves the chain. To control when it runs
or applies its result, change **Update Mode** and **Apply Mode** in the solver's
**Execution** section.
See Getting started and the
Core reference for constraints, speed limits,
and execution settings.
## Samples
In a Unity 6 URP project, select OpenIK in Package Manager and open **Samples**.
Import **Shared Assets** first, then **Sample Chains**, **Robotic Painter**, or
**Spider Walker**. Open the scenes under `Assets/S