A curated list of robotics libraries and simulators.
Legend: π’ Active (<1yr) Β· π‘ Slow (1-2yr) Β· π΄ Stale (>2yr) Β· π Archived
Physics engines and rigid/soft body dynamics libraries. See also Comparisons.
- ARCSim - Adaptive remeshing cloth and shell simulator for thin deformable objects.
- π’ Brax - Massively parallel differentiable rigid body physics engine in JAX for robotics and RL. β 3k
- π’ Bullet - Real-time physics simulation for games, visual effects, and robotics. β 14.2k
- π’ CHRONO::ENGINE - Multi-physics simulation of rigid and flexible bodies, granular, and fluid systems. β 2.7k
- π’ DART - Dynamic Animation and Robotics Toolkit for multibody simulation and planning. β 1.1k
- π’ Drake - Planning, control, and analysis toolbox for nonlinear dynamical systems. β 3.9k
- π Flex - GPU-based particle simulation for rigid bodies, fluids, and deformables. β 787
- π΄ FROST - Fast Robot Optimization and Simulation Toolkit for hybrid dynamical systems in MATLAB. β 169
- π’ Genesis - Generative and universal physics platform for robotics with GPU-accelerated parallel simulation. β 28.1k
- IBDS - Impulse-based dynamics simulation for rigid bodies and particle systems.
- π’ idyntree - Library for estimation and whole-body dynamics of floating-base robots. β 223
- π’ KDL - Orocos Kinematics and Dynamics Library for kinematic chains. β 857
- π’ kindr - Kinematics and dynamics library for rigid body transformations. β 607
- π’ Klampt - Robot planning, control, and simulation with visualization support. β 427
- π΄ LibrePilot - Open-source autopilot for UAVs and other autonomous vehicles. β 348
- π’ MARS - Machina Arte Robotum Simulans β a cross-platform simulation environment. β 67
- MBDyn - General-purpose multibody dynamics analysis software. [code]
- π’ MBSim - Multi-body simulation environment for flexible and rigid systems. β 51
- π΄ MBSlib - Lightweight multibody system dynamics library. β 11
- π metapod - Template-based robot dynamics library using spatial algebra. β 14
- π΄ Moby - Multi-body dynamics simulation for rigid bodies with contact. β 37
- π’ mrpt - Mobile Robot Programming Toolkit for SLAM, navigation, and computer vision. β 2.1k
- π’ MuJoCo - Multi-joint dynamics with contact for physics-based simulation and control. β 11.9k
- π’ mvsim - Lightweight multi-vehicle 2D simulator with ROS integration. β 359
- π’ Newton - GPU-accelerated differentiable physics engine built on NVIDIA Warp for robotics simulation. β 2.5k
- π’ Newton Dynamics - Real-time physics engine for rigid body simulation. β 1k
- π΄ nphysics - 2D and 3D rigid body physics engine written in Rust. β 1.6k
- ODE - Open Dynamics Engine for simulating rigid body dynamics. [bitbucket]
- π’ OpenRAVE - Open Robotics Automation Virtual Environment for planning and simulation. β 798
- π’ PhysX - NVIDIA physics engine for real-time rigid body and vehicle simulation. β 4.4k
- π’ pinocchio - Fast and flexible algorithms for rigid-body dynamics with analytical derivatives. β 3.1k
- π’ PositionBasedDynamics - Position-based methods for simulating deformable objects and fluids. β 2.2k
- π’ PyDy - Multibody dynamics analysis with symbolic Python using SymPy. β 405
- π qu3e - Lightweight 3D physics engine for rigid body dynamics. β 974
- π RaiSim - Cross-platform physics engine for robotics and reinforcement learning. β 329
- π’ RBDL - Rigid Body Dynamics Library based on Featherstone algorithms. β 683
- π’ RBDyn - Rigid body dynamics algorithms using spatial algebra with Eigen. β 211
- π’ ReactPhysics3d - Open-source 3D physics engine for rigid body simulation and collision detection. β 1.7k
- π‘ RigidBodyDynamics.jl - Julia library for rigid body dynamics algorithms. β 307
- π’ Rigs of Rods - Soft-body vehicle simulator using beam physics. β 1.1k
- π΄ Robopy - Python robotics toolbox inspired by Peter Corke's Robotics Toolbox. β 228
- π’ Robotics Library - Self-contained C++ library for robot kinematics, planning, and control. β 1.2k
- RobWork - Framework for simulation and control of robot systems. [gitlab]
- π’ siconos - Nonsmooth dynamical systems modeling and simulation platform. β 182
- π’ Simbody - Multibody dynamics library for biomechanical and mechanical systems. β 2.5k
- π’ SOFA - Simulation Open Framework Architecture for medical and physics simulation. β 1.1k
- π‘ Tiny Differentiable Simulator - Header-only differentiable physics engine for robotics. β 1.3k
- π΄ trep - Simulation and optimal control using variational integrators. β 20
Libraries for computing joint configurations from end-effector poses.
- π’ IKBT - A python package to solve robot arm inverse kinematics in symbolic form. β 215
- π’ Kinpy - A simple pure python package to solve inverse kinematics. β 179
- π΄ Lively - A highly configurable toolkit for commanding robots in mixed modalities. β 7
- π΄ RelaxedIK - Real-time Synthesis of Accurate and Feasible Robot Arm Motion. β 235
- π΄ Trip - A python package that solves inverse kinematics of parallel-, serial- or hybrid-robots. β 44
Machine learning frameworks and tools applied to robotics.
- π’ AllenAct - Python/PyTorch-based Research Framework for Embodied AI. β 376
- π’ Any4LeRobot - A collection of utilities and tools for LeRobot. β 838
- π’ DLL - Deep Learning Library (DLL) for C++. β 687
- π΄ DyNet - The Dynamic Neural Network Toolkit. β 3.4k
- π΄ Fido - Lightweight C++ machine learning library for embedded electronics and robotics. β 462
- π’ Gymnasium - Developing and comparing reinforcement learning algorithms. β 11.2k
- π’ Ivy - Unified Machine Learning Framework. β 14.2k
- π’ LeRobot - Pretrained models, datasets, and simulation environments for real-world robotics in PyTorch. β 21.4k
- π’ LeRobot Episode Scoring Toolkit - One-click tool to score, filter, and export higher-quality LeRobot datasets. β 48
- π΄ MiniDNN - A header-only C++ library for deep neural networks. β 431
- π’ mlpack - Scalable C++ machine learning library. β 5.6k
- π΄ RLLib - Temporal-difference learning algorithms in reinforcement learning. β 208
- π’ robosuite - A modular simulation framework and benchmark for robot learning. β 2.2k
- π΄ tiny-dnn - Header only, dependency-free deep learning framework in C++14. β 6k
Libraries for robot motion planning, trajectory optimization, and control.
- π΄ AIKIDO - Solving robotic motion planning and decision making problems. β 228
- π’ Bioptim - Bioptim, a Python Framework for Musculoskeletal Optimal Control in Biomechanics. β 113
- π΄ Control Toolbox - Open-Source C++ Library for Robotics, Optimal and Model Predictive Control. β 1.7k
- π’ Crocoddyl - Optimal control library for robot control under contact sequence. β 1.2k
- CuiKSuite - Applications to solve position analysis and path planning problems.
- π’ cuRobo - A CUDA accelerated library containing a suite of robotics algorithms that run significantly faster. β 1.3k
- π’ Fields2Cover - Robust and efficient coverage paths for autonomous agricultural vehicles. β 745
- π΄ GPMP2 - Gaussian Process Motion Planner 2. β 351
- HPP - Path planning for kinematic chains in environments cluttered with obstacles.
- π’ MoveIt! - Motion planning framework. β 2k
- π’ OCS2 - Efficient continuous and discrete time optimal control implementation. β 1.3k
- π’ OMPL - Open motion planning library. β 1.9k
- π pymanoid - Humanoid robotics prototyping environment based on OpenRAVE. β 232
- π΄ ROS Behavior Tree - Behavior tree implementation for ROS-based robot task planning. β 362
- π’ Ruckig - Real-time, time-optimal and jerk-constrained online trajectory generation. β 1.1k
- π’ The Kautham Project - A robot simulation toolkit for motion planning. β 24
- π’ TOPP-RA - Time-parameterizing robot trajectories subject to kinematic and dynamic constraints. β 830
- π‘ Ungar - Expressive and efficient implementation of optimal control problems using template metaprogramming. β 109
- π΄ TopiCo - Time-optimal Trajectory Generation and Control. β 143
- π΄ towr - A light-weight, Eigen-based C++ library for trajectory optimization for legged robots. β 1k
- π’ TrajectoryOptimization - A fast trajectory optimization library written in Julia. β 386
- π΄ trajopt - Framework for generating robot trajectories by local optimization. β 449
- π΄ Cover-Tree - Cover tree data structure for quick k-nearest-neighbor search. β 64
- Faster cover trees - by Mike Izbicki et al., ICML 2015.
- π‘ FLANN - Fast Library for Approximate Nearest Neighbors. β 2.4k
- π’ nanoflann - Nearest Neighbor search with KD-trees. β 2.6k
- π’ Bonxai - Brutally fast, sparse, 3D Voxel Grid (formerly Treexy). β 810
- π’ Goxel - Free and open source 3D voxel editor. β 3.1k
- π’ libpointmatcher - Iterative Closest Point library for 2-D/3-D mapping in Robotics. β 1.8k
- π’ OctoMap - Efficient Probabilistic 3D Mapping Framework Based on Octrees. β 2.3k
- π΄ Octree - Fast radius neighbor search with an Octree. β 374
- π’ PCL - 2D/3D image and point cloud processing. β 10.8k
- Utility Software
- π‘ voxblox - Flexible voxel-based mapping focusing on truncated and Euclidean signed distance fields. β 1.6k
- π‘ wavemap - Fast, efficient and accurate multi-resolution, multi-sensor 3D occupancy mapping. β 551
Numerical optimization solvers and frameworks used in robotics.
- π’ CasADi - Symbolic framework for algorithmic differentiation and numeric optimization. β 2.1k
- π’ Ceres Solver - Large scale nonlinear optimization library. β 4.4k
- π’ eigen-qld - Interface to use the QLD QP solver with the Eigen3 library. β 16
- π‘ EXOTica - Generic optimisation toolset for robotics platforms. β 161
- π’ hpipm - High-performance interior-point-method QP solvers (Ipopt, Snopt). β 665
- π’ HYPRE - Parallel solvers for sparse linear systems featuring multigrid methods. β 812
- π’ ifopt - An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt). β 847
- π’ Ipopt - Large scale nonlinear optimization library. β 1.7k
- π’ libcmaes - Blackbox stochastic optimization using the CMA-ES algorithm. β 354
- π΄ limbo - Gaussian processes and Bayesian optimization of black-box functions. β 260
- π’ lpsolvers - Linear Programming solvers in Python with a unified API. β 25
- π’ NLopt - Nonlinear optimization. β 2.2k
- π‘ OptimLib - Lightweight C++ library of numerical optimization methods for nonlinear functions. β 885
- π’ OSQP - The Operator Splitting QP Solver. β 2.1k
- π’ Pagmo - Scientific library for massively parallel optimization. β 907
- π’ ProxSuite - The Advanced Proximal Optimization Toolbox. β 538
- π΄ pymoo - Multi-objective Optimization in Python. β 26
- π’ qpsolvers - Quadratic Programming solvers in Python with a unified API. β 725
- π’ RobOptim - Numerical Optimization for Robotics. β 65
- π’ SCS - Numerical optimization for solving large-scale convex cone problems. β 613
- π΄ sferes2 - Evolutionary computation. β 170
- π’ SHOT - A solver for mixed-integer nonlinear optimization problems. β 129
Tools and formats for describing robot models.
- SDF - XML format that describes objects and environments for robot simulators, visualization, and control. [bitbucket]
- π’ urdf - XML format for representing a robot model. β 118
- π’ onshape-to-robot - Converting OnShape assembly to robot definition (SDF or URDF) through OnShape API. β 486
- π’ phobos - Add-on for Blender creating URDF and SMURF robot models. β 855
Middleware and frameworks for building robot software systems.
- π΄ AutoRally - High-performance testbed for advanced perception and control research. β 775
- π΄ Linorobot - ROS compatible ground robots. β 1.1k
- π΄ onine - Service Robot based on Linorobot and Braccio Arm. β 47
- π‘ Micro-ROS for Arduino - a Micro-ROS fork available in the Arduino Library Manager. β 12
- Rock - Software framework for robotic systems.
- ROS - Flexible framework for writing robot software.
- π’ ROS 2 - Version 2.0 of the Robot Operating System (ROS) software stack. β 5k
- π’ YARP - Communication and device interfaces applicable from humanoids to embedded devices. β 585
Reinforcement learning libraries commonly used in robotic control.
- π’ Brax - Massively parallel differentiable rigid body physics engine in JAX for robotics and RL. β 3k
- π’ CleanRL - Single-file implementations of deep reinforcement learning algorithms. β 9k
- π’ Isaac Lab - GPU-accelerated open-source framework for robot learning built on NVIDIA Isaac Sim. β 6.2k
- π’ rl_games - High-performance RL library used in Isaac Gym environments. β 1.3k
- π’ SKRL - Modular reinforcement learning library with support for multiple ML frameworks. β 982
- π’ Stable-Baselines3 - Reliable implementations of reinforcement learning algorithms in PyTorch. β 12.7k
Simultaneous Localization and Mapping libraries.
- π΄ AprilSAM - Real-time smoothing and mapping. β 239
- π΄ Cartographer - Real-time SLAM in 2D and 3D across multiple platforms and sensor configurations. β 7.8k
- π‘ DSO - Novel direct and sparse formulation for Visual Odometry. β 2.4k
- π’ ElasticFusion - Real-time dense visual SLAM system. β 1.9k
- π’ fiducials - Simultaneous localization and mapping using fiducial markers. β 278
- π’ GTSAM - Smoothing and mapping (SAM) in robotics and vision. β 3.3k
- π΄ Kintinuous - Real-time large scale dense visual SLAM system. β 951
- π΄ LSD-SLAM - Real-time monocular SLAM. β 2.7k
- π‘ ORB-SLAM2 - Real-time SLAM library for Monocular, Stereo and RGB-D cameras. β 10.1k
- π’ RTAP-Map - RGB-D Graph SLAM approach based on a global Bayesian loop closure detector. β 3.6k
- π΄ SRBA - Solving SLAM/BA in relative coordinates with flexibility for different submapping strategies. β 76
- π‘ Awesome SLAM Datasets - Curated list of SLAM-related datasets. β 1.9k
Computer vision libraries for robotic perception.
- π΄ BundleTrack - 6D Pose Tracking for Novel Objects without 3D Models. β 678
- π΄ se(3)-TrackNet - 6D Pose Tracking for Novel Objects without 3D Models. β 420
- π’ ViSP - Visual Servoing Platform. β 849
Fluid dynamics simulation libraries.
- π΄ Fluid Engine Dev - Jet - Fluid simulation engine for computer graphics applications. β 2.1k
Libraries and tools for robotic grasping and manipulation.
- π’ AnyGrasp SDK - SDK for AnyGrasp, a 6-DoF grasp pose detection method. β 752
- π‘ Contact-GraspNet - 6-DoF grasp generation for parallel-jaw grippers using contact maps. β 449
- π΄ GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs. β 207
- π’ GraspNet API - Python API and evaluation tools for the GraspNet benchmark. β 323
Environments and models for humanoid robot research.
- π‘ Humanoid-Gym - Reinforcement learning environment for humanoid robot locomotion. β 1.8k
- π’ iCub - Open-source cognitive humanoid robotic platform for embodied cognition research. β 117
- π’ Legged Gym - Isaac Gym environments for legged robot locomotion training. β 2.7k
- π’ MuJoCo Menagerie - Collection of well-tuned MuJoCo models for research and development. β 3k
Frameworks for coupled multi-physics simulations.
Mathematics libraries for spatial algebra, Lie groups, and linear algebra.
- π’ Fastor - Light-weight high performance tensor algebra framework in C++11/14/17. β 830
- π΄ linalg.h - Single header public domain linear algebra library for C++11. β 939
- π’ manif - Small c++11 header-only library for Lie theory. β 1.7k
- π‘ Sophus - Lie groups using Eigen. β 2.4k
- π’ SpaceVelAlg - Spatial vector algebra with the Eigen3. β 80
- π’ spatialmath-python - Python classes for pose and orientation in 2D/3D with spatial operations toolbox. β 615
Other robotics-related tools and utilities.
- Foxglove Studio - A fully integrated visualization and debugging desktop app for your robotics data.
- π’ fuse - General architecture for performing sensor fusion live on a robot. β 847
Simulation environments for testing and developing robotic systems.
- π’ AI2-THOR - Interactive household environment for embodied AI with Unity backend. β 1.7k
- π’ AirSim - Simulator based on Unreal Engine for autonomous vehicles. β 17.9k
- π’ ARGoS - Physics-based simulator designed to simulate large-scale robot swarms. β 301
- π’ ARTE - Matlab toolbox focussed on robotic manipulators. β 101
- π’ AVIS Engine - Fast simulation software for autonomous vehicle development. β 21
- π’ CARLA - Open-source simulator for autonomous driving research. β 13.5k
- π’ CoppeliaSim - Formaly V-REP. Virtual robot experimentation platform. β 138
- π Gazebo - Dynamic multi-robot simulator. β 1.3k
- π’ Gazebo Sim - Open source robotics simulator (formerly Ignition Gazebo). β 1.2k
- π΄ GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs. β 207
- π’ Habitat-Sim - Simulation platform for research in embodied artificial intelligence. β 3.5k
- π’ Hexapod Robot Simulator - Open-source hexapod robot inverse kinematics and gaits visualizer. β 681
- π’ Isaac Sim - NVIDIA's GPU-accelerated robotics simulation platform with PhysX 5 and RTX rendering. β 2.5k
- π’ ManiSkill - Robot simulation and manipulation learning package powered by SAPIEN. β 2.5k
- π΄ MORSE - Modular open robots simulation engine. β 370
- Neurorobotics Platform - Internet-accessible simulation of robots controlled by spiking neural networks. [bitbucket]
- π’ PyBullet - An easy to use simulator for robotics and deep reinforcement learning. β 14.2k
- π’ PyBullet_Industrial - PyBullet extension for simulating robotic manufacturing processes like milling and 3D printing. β 48
- π΄ Robot Gui - A three.js based 3D robot interface. β 384
- π’ SAPIEN - Physics-rich simulation environment for articulated objects and manipulation. β 714
- Simbad - Java 3D robot simulator with custom controller and sensor support.
- π‘ Unity - Game engine with open-source robotics simulation tools and tutorials. β 2.5k
- π’ Webots - Development environment to model, program, and simulate robots and mechanical systems. β 4.1k
- Actin Simulation - Real-time robot simulation and control software.
- Artiminds - Planning, programming, operation, analysis and optimization.
- Kineo - Path planning and trajectory optimization for industrial robotics.
- Robot Virtual Worlds - Virtual reality software for educational robotics.
- RobotDK - Simulation and OLP for robots.
- RobotStudio - ABB's simulation and offline programming software for robotics.
- Virtual Robotics Toolkit - 3D virtual environment for programming and testing robots.
- Visual Components - 3D manufacturing simulation and visualization platform.
- AWS RoboMaker - Service that makes it easy to develop, test, and deploy intelligent robotics applications at scale.
Related curated lists of robotics and AI resources.
- Awesome Robotics - Curated list of robotics resources (Kiloreux).
- Awesome Robotics - Curated list of robotics links and software libraries (ahundt).
- Awesome Robotic Tooling - Tooling for professional robotic development in C++ and Python with ROS and autonomous driving.
- Awesome Artificial Intelligence - Curated list of AI courses, books, video lectures, and papers.
- Awesome Collision Detection - Curated list of collision detection libraries and resources.
- Awesome Computer Vision - Curated list of computer vision resources.
- Awesome Machine Learning - Curated list of machine learning frameworks, libraries, and software.
- Awesome Deep Learning - Curated list of deep learning tutorials, projects, and communities.
- Awesome Gazebo - Curated list of Gazebo simulation framework resources.
- Awesome Grasping - Curated list of grasping libraries and resources.
- Awesome Human Robot Interaction - Curated list of human-robot interaction libraries and resources.
- Awesome Physical AI - Curated list of academic papers and resources on Physical AI.
- PythonRobotics - Python sample codes for robotics algorithms.
- Robotics Coursework - A list of robotics courses you can take online.
Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.
