Open Source RoboticsRobots, software & learning

mink

Software

Differential 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

Requirements · Research details and dates

On this page

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?

Known limitations
  • Collision constraints only cover the configured geometry pairs.
  • solve_ik defaults to continuing for an already-out-of-limit configuration.

Editorial assessment from cited documentation; no runtime testing.

[3] [4] · Editorial assessment

What you need

Languages / runtimes
  • Python

[2]

Dependencies
  • Python >=3.10
  • MuJoCo >=3.10.0
  • qpsolvers[daqp] >=4.12.0
  • Example development dependencies via uv sync

[1] [2]

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.

[1]

Installation

Check out v1.3.0 and run uv sync for the source examples.

Editorial assessment from cited documentation; no runtime testing.

[1] [2] · Editorial assessment

Hardware, models & data

Inputs and outputs

Robot configuration, task targets and limits produce a tangent-space velocity; callers integrate it into the next configuration.

[4]

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

Upstream last updated
Aug 17, 2026 [6]
Latest release
Aug 18, 2026 [6]
Profile updated
Oct 17, 2026
Sources last checked
Oct 17, 2026
Next review
Nov 17, 2026
Reviewed revision
v1.3.0 / 14625beca2ce0918f88d1fc84a3c0cdb591e0729 · software repository

Source files and licenses

Useful MuJoCo IK library with explicit constraint scope and separate robot-model terms.

LayerAvailability / license
softwareavailable · Apache-2.0
Library Apache-2.0; bundled UR5e model BSD-3-Clause; other assets retain their own terms. [7]
documentationavailable · 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.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history