Unified High-Throughput Robotics Library
Project description
RoboCore
Unified robotics toolkit for robot modeling, kinematics, dynamics, transforms, planning, analysis, simulation bridges, and distance-field utilities.
RoboCore is currently prepared as a 2.5.0rc4 release candidate. The core
package is designed to import cleanly without optional GPU, MuJoCo, WDF, or
robot-description assets installed.
What It Includes
| Area | Current support |
|---|---|
| Modeling | URDF and MJCF parsing, robot model abstraction, chain and multi-chain helpers |
| Kinematics | FK, analytic/numeric Jacobian, DLS/pinv/transpose IK, batch APIs |
| Backends | C++/Eigen pybind11 backend (recommended), NumPy, PyTorch CPU/CUDA |
| Dynamics | Inverse dynamics, forward dynamics, mass matrix, gravity, nonlinear effects |
| Transform | SO(3), SE(3), RPY, quaternion, axis-angle conversions |
| Planning | Joint-space and Cartesian path utilities, velocity profiles |
| Analysis | Workspace sampling, reachability, singularity metrics |
| Bridge | MuJoCo simulation bridge and trajectory utilities |
| WDF | SDF/RDF utilities behind the optional wdf extra |
| Config | YAML configs, schemas, robot-description URI resolution |
Installation
RoboCore requires Python 3.11+.
git clone https://github.com/Synria-Robotics/RoboCore.git
cd RoboCore
python -m venv .venv
source .venv/bin/activate
pip install -e .
The C++ backend is built from source when installing the package. It requires a
C++17 compiler, pybind11, and Eigen3 headers. pybind11 is installed by the
build system; Eigen3 must be installed on the system or provided via
EIGEN3_INCLUDE_DIR.
# Ubuntu / Debian
sudo apt update
sudo apt install build-essential libeigen3-dev
# macOS
xcode-select --install
brew install eigen
# Custom Eigen location
export EIGEN3_INCLUDE_DIR=/path/to/include/eigen3
Optional extras:
pip install -e ".[torch]" # PyTorch backend
pip install -e ".[descriptions]" # synriard robot assets used by examples/tests
pip install -e ".[benchmark]" # pytorch_kinematics + Pinocchio comparison scripts
pip install -e ".[mujoco]" # MuJoCo runtime bridge
pip install -e ".[sim]" # MuJoCo + mujoco-py compatibility
pip install -e ".[wdf]" # mesh SDF/RDF utilities
pip install -e ".[all]" # all packaged extras
From PyPI:
pip install synria-robocore
pip install "synria-robocore[torch,descriptions,benchmark]"
synriard is only required for examples and tests that load published Synria
robot assets. Humanoid examples using openrd://... need the OpenRD package
separately when it is available.
Quick Start
import robocore as rc
from robocore.configs import resolve_description_path
from robocore.modeling import RobotModel
from robocore.kinematics import forward_kinematics, jacobian, inverse_kinematics
urdf = resolve_description_path("synriard://Alicia_D/v5_6/gripper_100mm/urdf")
model = RobotModel(urdf, base_link="base_link", end_link="tool0")
q = model.random_q(seed=0)
rc.set_backend("cpp")
T = forward_kinematics(model, q, return_end=True)
J = jacobian(model, q, method="analytic")
ik = inverse_kinematics(model, T, q, method="dls")
print(T.shape) # (4, 4)
print(J.shape) # (6, model.num_chain_dof)
print(ik["success"]) # True for this reachable target
Benchmark Results
Representative rc4 CPU benchmark: Python 3.11.13, Intel Xeon Gold 5320,
Alicia-D v5.6 6-DOF arm chain, end_link=link6.
RoboCore provides three kinematics backends: C++/Eigen, NumPy, and PyTorch.
Pinocchio and pytorch_kinematics are external comparison libraries, not RoboCore
backends. Speedup is normalized to RoboCore C++/Eigen:
speedup = backend_time / cpp_time. Larger speedup means C++ is faster.
FK/Jacobian results match the NumPy reference within 1e-9. IK targets are
reachable; RoboCore C++/Eigen, NumPy, and PyTorch CPU all solved 50/50
targets.
Forward Kinematics
| Backend | Type | batch=1 ms | C++ speedup | batch=100 ms | C++ speedup |
|---|---|---|---|---|---|
| RoboCore C++/Eigen | RoboCore backend | 0.003 | 1.0x | 0.055 | 1.0x |
| RoboCore NumPy | RoboCore backend | 0.459 | 144.2x | 0.866 | 15.6x |
| RoboCore PyTorch CPU | RoboCore backend | 2.497 | 783.8x | 3.017 | 54.5x |
| Pinocchio | External comparison | 0.005 | 1.5x | 0.523 | 9.5x |
| pytorch_kinematics CPU | External comparison | 0.547 | 171.5x | 1.063 | 19.2x |
Analytic Jacobian
| Backend | Type | batch=1 ms | C++ speedup | batch=100 ms | C++ speedup |
|---|---|---|---|---|---|
| RoboCore C++/Eigen | RoboCore backend | 0.003 | 1.0x | 0.063 | 1.0x |
| RoboCore NumPy | RoboCore backend | 0.389 | 140.6x | 29.591 | 466.5x |
| RoboCore PyTorch CPU | RoboCore backend | 2.535 | 917.2x | 6.393 | 100.8x |
| Pinocchio | External comparison | 0.008 | 2.9x | 0.829 | 13.1x |
| pytorch_kinematics CPU | External comparison | 0.560 | 202.6x | 0.969 | 15.3x |
Inverse Kinematics
| Backend | Type | batch=1 ms | C++ speedup | batch=50 ms | C++ speedup | Validation |
|---|---|---|---|---|---|---|
| RoboCore C++/Eigen DLS | RoboCore backend | 0.016 | 1.0x | 0.400 | 1.0x | 50/50 |
| RoboCore NumPy DLS | RoboCore backend | 3.715 | 230.8x | 83.483 | 208.9x | 50/50 |
| RoboCore PyTorch CPU DLS | RoboCore backend | 18.952 | 1177.4x | 251.934 | 630.6x | 50/50 |
| Pinocchio CLIK | External comparison | 2.566 | 159.4x | 643.515 | 1610.6x | sanity |
| pytorch_kinematics PseudoInverseIK CPU | External comparison | 310.299 | 19278.0x | 509.076 | 1274.1x | timing only |
For low-latency FK/Jacobian/IK, use rc.set_backend("cpp") by default. The
PyTorch backend remains useful for tensor workflows and larger batched pipelines.
Pinocchio and pytorch_kinematics are included only as external references.
Run the same benchmark locally:
python examples/kinematics/benchmark_fk_alicia_d_backends.py \
--device cpu --repeats 5 --inner-single 1000 --inner-batch 100
python examples/kinematics/benchmark_jacobian_alicia_d_backends.py \
--device cpu --repeats 5 --inner-single 1000 --inner-batch 100
python examples/kinematics/benchmark_ik_alicia_d_backends.py \
--device cpu --batch 50 --repeats 3 --inner-single 40 --inner-batch 4
Add --no-pk-pin to skip the optional pytorch_kinematics/Pinocchio comparison.
Examples
# Kinematics
python examples/kinematics/01a_demo_fk.py
python examples/kinematics/02a_demo_jacobian.py
python examples/kinematics/03a_demo_ik.py
python examples/kinematics/04_benchmark.py
# Dynamics
python examples/dynamics/01a_demo_id.py
python examples/dynamics/02a_demo_fd.py
python examples/dynamics/03a_demo_mass_matrix.py
python examples/dynamics/05_benchmark.py
# Configs and analysis
python examples/configs/demo_with_config.py
python examples/analysis/demo_workspace.py --samples 10000
python examples/analysis/demo_singularity.py
# MuJoCo bridge, requires the mujoco extra
python examples/bridge/demo_mujoco_trajectory.py
Verification
Recommended release checks:
python -c "import robocore, robocore.kinematics, robocore.transform, robocore.dynamics, robocore.configs; print(robocore.__version__)"
pytest test/unit -q
pytest test/integration -q
python -m build
python -m twine check dist/*
Current rc4 local validation covers Python 3.11, 3.12, and 3.13; build,
twine check, core unit tests, integration smoke tests, C++ backend smoke tests,
and optional CUDA torch subset have passed. Skipped tests require optional
robot-description assets, visualization runtimes, or extra simulation packages.
Project Layout
robocore/
modeling/ RobotModel, chain views, URDF/MJCF parsers
kinematics/ FK, IK, Jacobian, NumPy/Torch/C++ solvers
dynamics/ inverse/forward dynamics
transform/ SO(3), SE(3), rotation conversions
planning/ path and velocity-profile utilities
analysis/ workspace and singularity analysis
bridge/ real/simulation bridges
configs/ YAML configs and robot-description URI helpers
wdf/ optional SDF/RDF utilities
License
RoboCore is released under the MIT License. See LICENSE.
Files under robocore/modeling/parser/mjcf_parser preserve upstream Apache-2.0
copyright and license notices where applicable.
Citation
@software{robocore2025,
title = {RoboCore: Unified High-Throughput Robotics Library},
author = {Synria Robotics Team},
year = {2025},
publisher = {Synria Robotics Co., Ltd.},
url = {https://github.com/Synria-Robotics/RoboCore},
version = {2.5.0rc4}
}
Contact
- Website: synriarobotics.ai
- Email: support@synriarobotics.ai
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synria_robocore-2.5.0rc4.tar.gz.
File metadata
- Download URL: synria_robocore-2.5.0rc4.tar.gz
- Upload date:
- Size: 284.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9997489f0e0e48b834759870b0a1130fbf87ff3a19daba89d15d13ee63053292
|
|
| MD5 |
6803dc94f534a452673f4a29fc242d47
|
|
| BLAKE2b-256 |
e9df8fbfd56edc8f699e893bafacde3c6349cf15762c8827681f65701754eefc
|
File details
Details for the file synria_robocore-2.5.0rc4-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 792.5 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0bbc5f16dff023fc91f08298a0dc68ad2f8df46eddd2534cae98d2919fda716
|
|
| MD5 |
07af624ddb80f273f6bef8657af5e572
|
|
| BLAKE2b-256 |
841ee6891ca4ca1af104fd0936eb00c60b205eb6baf03f675c290b334388c4ab
|
File details
Details for the file synria_robocore-2.5.0rc4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 884.3 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e37cd66441af4767e3657f70b1c582be278a5b65842ef3bc4d656e1249bd3a20
|
|
| MD5 |
a07fb40c4f4fb5b7e31d4a40b265d674
|
|
| BLAKE2b-256 |
157a6c445bcaa6833abaa13e63be1a3cccc05a7eba72b513c2c81aba9af6ca23
|
File details
Details for the file synria_robocore-2.5.0rc4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 845.8 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d03d451f4845707ced9531456d64f242f75eb1967047cf2c0c9b81ccb9b142a6
|
|
| MD5 |
5b62bc460a0884c201e0c74084efa8e7
|
|
| BLAKE2b-256 |
6554ab028d8cfede0951b0a6707897e27bad3bbd4386729ddd683fd9ca4551f1
|
File details
Details for the file synria_robocore-2.5.0rc4-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 794.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2ec413254e84d3c95b78fc757520557ad6e91672a5b23a62ad38c2cccf6b6dc
|
|
| MD5 |
eec512f4304989237cb64ef3a168ee50
|
|
| BLAKE2b-256 |
0c0f7c9d78237f9effecc423008bc17e1658d6acd156df687e7a6a2f7ac4f7a0
|
File details
Details for the file synria_robocore-2.5.0rc4-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 792.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61dba8c6a97ace922e8e4b0541a6c020c91577ed95cd4958517ef1fb35501c2a
|
|
| MD5 |
4366b446c7e08d78b5ffeabba1c0de43
|
|
| BLAKE2b-256 |
7e8c8dda80b4d8b2303a6e58fb8b604db322ff407adc81c5dc732de460bef359
|
File details
Details for the file synria_robocore-2.5.0rc4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 884.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a8b8550b6653771dfcaecda1541eb4665281b9e3d0fefa611673056661f9c48
|
|
| MD5 |
7d6272b620f7d46f8967e0b6fa792376
|
|
| BLAKE2b-256 |
281e71a3d38d2c08a91fb72d48b41e45d9d97b0a7d4dfdd63ec9716e78306db8
|
File details
Details for the file synria_robocore-2.5.0rc4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 846.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fc94d230af7aaa20e28ddeffe93f09774ad5a7152d4c07988deee4bd8f0bafc
|
|
| MD5 |
877b0bcc8462225d483d3a51b557f401
|
|
| BLAKE2b-256 |
09c4a32f695b32847c4b67cca8b9c31babdb21405e79b8133b6e90cf57d92073
|
File details
Details for the file synria_robocore-2.5.0rc4-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 794.2 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55678ff1937316e389aaf8c504e16e3e611669680b1f2eb3ef4683a90853f404
|
|
| MD5 |
29e5c37753803d53573036d3dca79360
|
|
| BLAKE2b-256 |
f3f9e60660a9f54d397d781eac577f0fd717c1827b8715e0c267b2615e02bfd0
|
File details
Details for the file synria_robocore-2.5.0rc4-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 785.8 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5eb1e8faf110e1ba9f570d26c8ce23e58029f92fe9429c1eb11715dfb28acaea
|
|
| MD5 |
4627234bd71fd9723e6dd24e9532551a
|
|
| BLAKE2b-256 |
d05acf3329bee206073c5f3668bd91453ad143955d2c18870d48e2f4ef8c3676
|
File details
Details for the file synria_robocore-2.5.0rc4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 877.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bee73a3e6b1e2aa1485a828b26a813d6f94f660ab293249623482485255d80b
|
|
| MD5 |
8f628ad3d727148534cd9d23b03f1cda
|
|
| BLAKE2b-256 |
3d1509fdbfaae6690d4a8b002b337d00fd339b522e657754f0bb11dec68049e9
|
File details
Details for the file synria_robocore-2.5.0rc4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 838.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb6cd140dcf50fd4c8fafd069777a0e868aab476c099e4e093d4f0ed82b3692
|
|
| MD5 |
6c3c2bca060392898ee729810d776b89
|
|
| BLAKE2b-256 |
0ee9aebe65b0abe1816c8a2e9cdafdc087da016f5078868cf9c1591d751c07bc
|
File details
Details for the file synria_robocore-2.5.0rc4-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc4-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 785.3 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
457c15150ebacc255fae66c04de0366ebdb9b7033b139ce48cedced1f56453bd
|
|
| MD5 |
c9c02168018d791839ccc62cb42e65db
|
|
| BLAKE2b-256 |
30f86702b7e8586a836bb7637bd9cacd4a50233f90d0f759c0a235afa25f098c
|