mink
SoftwareDifferential inverse kinematics in Python using MuJoCo, with task costs, joint limits and explicitly configured collision constraints. [1]
Installation & first result →Official websiteGetting started
- For
- Developers implementing robot kinematics in MuJoCo [1]
- Source rights
- Named licenses are documented by part. Review licenses
- Unknowns
- operating system, compute requirements not fully established. Review gaps
Source researched · Not tested by us
Sources checked · Research details
Licenses & related hardware
- License
- Apache-2.0 · Details by part
Overview
mink solves differential inverse kinematics with MuJoCo: given a robot configuration, task targets and constraints, it computes a joint-space velocity for the caller to integrate. It is useful when building a kinematic controller or retargeting system that needs explicit task costs and limits. Its README identifies Pink as the library it was ported from. [1] [4]
Is this for you?
What you need
- Languages / runtimes
- Python
Installation & first result
Open the upstream getting-started guide [3]
- Check out v1.3.0 and run uv sync.
- On Linux run uv run examples/arm_ur5e.py.
- On macOS first run ./fix_mjpython_macos.sh, then uv run mjpython examples/arm_ur5e.py.
Hardware, models & data
- Inputs and outputs
Robot configuration, task targets and limits produce a tangent-space velocity; callers integrate it into the next configuration.
Project notes
Use the UR5e example to inspect the constraints
Check out v1.3.0, commit 14625beca2ce0918f88d1fc84a3c0cdb591e0729, and run uv sync. This release requires Python 3.10+, MuJoCo 3.10.0+ and qpsolvers 4.12.0+ with the DAQP extra. On Linux, start uv run examples/arm_ur5e.py; on macOS, upstream first asks you to run ./fix_mjpython_macos.sh, then uv run mjpython examples/arm_ur5e.py. A graphical MuJoCo viewer is part of this example. [1] [2] [3] [6]
The script combines an end-effector frame task with a posture task, joint-position limits and joint-velocity limits of pi radians per second. It uses a 200 Hz rate limiter to solve velocities and integrate configurations. That is the example's configured update rate, not a measured real-time performance guarantee. [3]
Collision avoidance is explicitly limited to the configured pairs: in this example, wrist_3_link against the floor and wall. It does not automatically cover every link or every possible collision. In the general solver, omitting limits supplies only a configuration limit; an empty list disables those limits. Choose the relevant geometry pairs and limits for your own model. [3] [4]
Another important default is safety_break=False: if the starting configuration is already outside its limits, execution continues. Setting it to true requests an exception for that condition. Neither setting replaces physical robot control and safety validation. [4]
The library's root license is Apache-2.0; the included UR5e model has separate BSD-3-Clause terms. Other bundled robot descriptions and dependencies need their own license review. This profile is based on preserved source and release metadata; the example, solver performance and physical control have not been tested by us. [5] [7]
What we checked
Source researched only; no installation, training, benchmark or physical hardware test performed. No affiliate links or reused media.
Not yet established
- Requirements: operating system, host computer
- Version-specific hardware compatibility (ecosystem tags alone do not establish it)
Updates
Source files and licenses
Useful MuJoCo IK library with explicit constraint scope and separate robot-model terms.
| Layer | Availability / license |
|---|---|
| software | available · Apache-2.0 Library Apache-2.0; bundled UR5e model BSD-3-Clause; other assets retain their own terms. [7] |
| documentation | available · Apache-2.0 Repository materials only; external components retain their own terms. [7] |
No learned weights required for the IK example.
No training dataset required for the IK example.
References
Each source links to the exact revision we read. “Used for” shows where this page relies on it.
- S001 Overview and examples
Revision, date & where cited
kevinzakka/mink contributors · github.com · revision
14625be· Accessed Oct 17, 2026
Used for: Overview, What you need, Installation & first result, Use the UR5e example to inspect the constraints - S002 Package metadata
Revision, date & where cited
kevinzakka/mink contributors · github.com · revision
14625be· Accessed Oct 17, 2026
Used for: What you need, Installation & first result, Use the UR5e example to inspect the constraints - S003 UR5e example
Revision, date & where cited
kevinzakka/mink contributors · github.com · revision
14625be· Accessed Oct 17, 2026
Used for: Is this for you?, Installation & first result, Use the UR5e example to inspect the constraints - S004 IK solver defaults
Revision, date & where cited
kevinzakka/mink contributors · github.com · revision
14625be· Accessed Oct 17, 2026
Used for: Overview, Is this for you?, Hardware, models & data, Use the UR5e example to inspect the constraints - S005 UR5e model terms
Revision, date & where cited
kevinzakka/mink contributors · github.com · revision
14625be· Accessed Oct 17, 2026
Used for: Use the UR5e example to inspect the constraints - S007 Library license
Revision, date & where cited
kevinzakka/mink contributors · github.com · revision
14625be· Accessed Oct 17, 2026
Used for: Use the UR5e example to inspect the constraints, Source files and licenses - S006 Reviewed release and revision
Revision, date & where cited
kevinzakka/mink / GitHub · github.com · revision
14625be· v1.3.0 / · Accessed Oct 17, 2026
Used for: Use the UR5e example to inspect the constraints, What we checked
Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5