Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Project highlights: 2 to 8 November

  • Source: Open Source Robotics
  • Published: 2026-11-09
  • Category: upstream

MuJoCo 4.0.0, IKPy 4.4, GENESIS 1.4.6 and Reachy Mini 1.14.0 change what existing models and apps do; BehaviorTree.CPP 4.11, SolidCraft and PAROL6 change what you load, save or may share.

MuJoCo

!MuJoCo

- Version 4.0.0 changes how some existing models simulate. A tendon routed round a geom through a side site now follows the path from its first endpoint through that site, so a tendon that used to jump onto the geom can behave differently. Open elastic rods built with 1D flexcomp now get a twist body and hinge joint per edge, which changes nq, nv, the qpos layout and the body and joint numbering after them. The cable plugin and the composite element are removed in favour of 1D flexcomp, and RK4 is now fourth-order accurate for ball and free joint orientations. - The Python package is split into mujoco-core, mujoco-studio and mujoco; upgrading an existing install needs pip uninstall -y mujoco && pip install mujoco first. Release notes. - Why it matters: if your models use side sites on wrapped tendons, the cable plugin or composite, or you index qpos or bodies by number, check them before moving to 4.0.0; the release notes give a migration for each. If you upgrade with plain pip install -U, files that moved to mujoco-core can be removed by the upgrade.

IKPy

!IKPy

- Versions 4.4.1 to 4.4.4 change what existing code gets back. A MJCF joint with no axis now rotates about Z, as in MuJoCo, where IKPy used Y, and joints now take their settings from default classes the way MuJoCo does, so a joint that used to be unbounded can pick up a range (joint1 of the bundled simple_arm.xml goes from unbounded to ±π). A joint naming an undefined class is now an error. - from_transformation_matrix now returns a position of shape (3,), not (4,); to_transformation_matrix keeps an identity rotation when you give no orientation; and Chain.concat, which always raised an error, works. Release notes. - Why it matters: if you load MJCF robots into IKPy, such as the UR5e from MuJoCo Menagerie, re-run your inverse kinematics after updating, because joint axes and limits may differ from before. Code that reads the fourth component of a decomposed position will fail.

GENESIS

!GENESIS

- Version 1.4.6 removes the built-in floor of the SAP and FEM solvers, along with SimOptions.floor_height and FEMOptions.floor_height. The ground now has to be a rigid plane in the scene; SAP takes its floor contacts from the single fixed, up-facing plane, and a terrain, a tilted, moving or second plane raises an error when the scene is built. - Differentiable simulation now works natively with torch and runs about three times faster, with gradients with respect to PD control targets and diff sim of FEM entities on the implicit solver. Release notes. - Why it matters: if your SAP or FEM scenes relied on the built-in floor, bodies now fall through unless you add a collision plane, and scripts that set floor_height need updating. If you train through differentiable simulation, the speed-up and the new gradients are what to try.

Reachy Mini

!Reachy Mini

- Version 1.14.0 refuses a move sent while another is running. Before, the second move was reported as finished or played on top of the first; now ReachyMini.goto_target() raises MoveBusyError, and the daemon answers with an error on the data channel, on /api/move/ and on /ws/sdk. The neural-network kinematics engine is removed, so --kinematics-engine NN no longer exists and the analytical engine stays the default. - The Wireless model's IMU now needs pollen_BMI088_imu_library 1.0.0, which fixes temperatures that read about 256 °C too high and an accelerometer left in suspend. Release notes. - Why it matters: if your Reachy Mini app sends moves while the dashboard may be playing an emotion or dance, catch MoveBusyError and retry, or the call now fails where it used to overlap silently. If you start the daemon with the NN kinematics engine, drop that flag.

BehaviorTree.CPP

!BehaviorTree.CPP

- Version 4.11.0 adds a Finally node that runs a cleanup child whether the main child succeeds, fails, throws or is halted, and the _onlyIf and _onStart preconditions. Those three names are now reserved, so a node you registered as Finally gets a duplicate-registration error. It stays binary compatible with 4.10.0. - Trees that used to load can now be rejected: a ReactiveSequence with several async children when one is an AsyncFallback, script expressions with more than about 255 chained operators, and trees of more than 65535 nodes. Fractional, NaN or out-of-range JSON integers now throw instead of being silently wrapped. Release notes. - Why it matters: if you write behavior trees for a robot arm or base, Finally gives you a place to re-enable collisions or release a gripper however a step ends; load your existing trees on 4.11.0 before you deploy. If you use the Groot2 publisher, its protocol has no authentication, so the new bind-address constructor lets you listen on 127.0.0.1 only; the old constructor still listens on every interface.

SolidCraft

!SolidCraft

- Version 0.30.1 fixes a black screen in the browser version and tightens agent chat: it now answers an agent's permission question itself only when the title is exactly a tool name of its own server, so Goose users, and probably OpenCode users, will see questions they did not see before. Designs saved in 0.30.1 use file format 48 and do not open in 0.30.0 or older. Release notes. - The 0.40.0 pre-release replaces the geometry kernel with solidcore; rc.3 is the latest. Old designs are rebuilt on it when they open, can come out with different face or edge counts, and 22 tests are on a known-failing list that includes some fillet and shell cases. Designs saved in rc.3 use format 51 and do not open in stable 0.30.1. Release notes. - Why it matters: if you share designs between SolidCraft versions, a design saved in a newer one will not open in an older one, so settle on a version first. If you want to try 0.40.0, keep a copy of any design you care about before saving it there, and report designs that rebuild differently.

PAROL6

!PAROL6

- On 4 November the repository's licence changed from GPL-3.0 to CERN-OHL-S-2.0 for the hardware: the STL files, the BOM, the building instructions, the print table and the robot models. The control board firmware stays under GPL-3.0. - The V1.1 release bundles the STL files, building instructions, a BOM with a reference image for every part and print settings per part, with checksums, plus holders for a horizontal and a custom pneumatic gripper and a small-print-bed modification for the upper arm and J1 turret. Release notes. - Why it matters: CERN-OHL-S is the strongly reciprocal licence for hardware, so if you modify PAROL6 parts and share or sell them, check what it asks of you before you do; the firmware has different terms. If you are printing one, the V1.1 download gives you everything in one place and you can verify it against the checksums.

Why it matters

If you run MuJoCo, IKPy or GENESIS, existing models and scripts can behave differently after updating: MuJoCo 4.0.0 changes side-site tendons and rod layouts, IKPy 4.4 changes MJCF joint axes and a return shape, and GENESIS 1.4.6 removes the built-in floor of its SAP and FEM solvers. Reachy Mini apps must now handle a refused second move. Check those before you update; the remaining three projects need less action.

Related projects

  • MuJoCo
  • IKPy
  • GENESIS
  • Reachy Mini
  • BehaviorTree.CPP
  • SolidCraft
  • PAROL6

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.