Skip to main content

Cadenza Lab - The SDK to build in physical AI

Project description

Cadenza

Run and deploy complex robot actions with a simple Python SDK.

RobotsQuickstartDocsDeploy

Cadenza lets you write complex motion-targeted code and run it in MuJoCo or on hardware. Three robots are supported out of the box.

Website: www.cadenzalabs.xyz  •  pip package: cadenza-lab  •  Deploy to hardware: DEPLOY.md

🤖 Supported robots

Robot Type Actions Control model
Go1 Unitree quadruped 21 Gaits + phases (walk, trot, turn, jump, sit, …)
G1 Unitree humanoid 20 Bipedal locomotion + arms
Arm 6-axis articulated arm 6 Cartesian move_to / pick / place (IK + grasp)

Go1 and G1 deploy to real hardware (see DEPLOY.md); the arm is simulation-only today. Want drones, other arms, or custom hardware? Reach out — acparekh@stanford.edu.

⚡ Quickstart

pip install cadenza-lab

Each robot follows the same shape: create a controller, build a list of actions, run(). The clips below are each rendered straight from the snippet above them.

🐾 Go1 — quadruped

The Go1 stands, walks 2 m, arcs through a turn (nested list = concurrent), jumps, and sits.

import cadenza_lab as cadenza

go1 = cadenza.go1()
go1.run([
    go1.stand(),
    go1.walk_forward(speed=1.5, distance_m=2.0),
    [go1.turn_left(), go1.walk_forward()],   # concurrent: walking arc
    go1.jump(speed=2.0, extension=1.2),
    go1.sit(),
])

Go1 quickstart

🦾 G1 — humanoid

The G1 walks forward with a trajectory-optimized bipedal gait, comes to a balanced stop, then jumps — all under active balance stabilization.

import cadenza_lab as cadenza

g1 = cadenza.g1()
g1.run([
    g1.walk_forward(distance_m=1.0),  # walk, then settle to a stand
    g1.jump(),                        # jump from the balanced stop
])

G1 quickstart

🤖 Arm — 6-axis pick & place

The arm homes, picks the cube off the table, places it to the side, and returns home. Targets are Cartesian (x, y, z); motion is IK-driven and the grasp is a weld the controller activates when the gripper closes.

import cadenza_lab as cadenza

arm = cadenza.arm()
arm.run([
    arm.home(),
    arm.pick((0.50, 0.00, 0.43)),   # grab the cube on the table
    arm.place((0.40, 0.22, 0.43)),  # set it down to the side
    arm.home(),
])

Arm quickstart

📚 Next steps

Full SDK docs www.cadenzalabs.xyz — robots, actions, scenes, gym adapter, inference stack, multi-robot coordination
Deploy to hardware DEPLOY.md — SSH, DDS direct, and bridge modes for Go1 / G1
CLI cadenza list go1 · cadenza sim go1 "walk forward then jump" · cadenza list arm
Examples example.py, examples/

💚 Community

Links
GitHub aparekh02/cadenza
Issues Report a bug or request a feature
License Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cadenza_lab-1.7.0.tar.gz (192.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cadenza_lab-1.7.0-py3-none-any.whl (215.2 kB view details)

Uploaded Python 3

File details

Details for the file cadenza_lab-1.7.0.tar.gz.

File metadata

  • Download URL: cadenza_lab-1.7.0.tar.gz
  • Upload date:
  • Size: 192.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for cadenza_lab-1.7.0.tar.gz
Algorithm Hash digest
SHA256 9b1a798bb73a85576bc702526983673e7a60a05f5c11a735e72118f241025607
MD5 edfff96252eac749b90beea63db5dba2
BLAKE2b-256 f8853759c824f978bf3af92fbc005591318de5391de255ec5413a926c1af4345

See more details on using hashes here.

File details

Details for the file cadenza_lab-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: cadenza_lab-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 215.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for cadenza_lab-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a5a879d3103902befa1f546a52239a4f47cc4d9d26c516b2c981dce40095c06
MD5 98eb32f8ad5dec417eb18eb32ca8c561
BLAKE2b-256 826aa38fa7996888cebc03f2437ba425008556070a57b483efdacb5a943865f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page