API Overview¶
This page provides an overview of the main components and modules in the SoRoMoX package.
Overview¶
SoRoMoX is a comprehensive library for modeling, simulating, and controlling soft robots using JAX. The package is organized into several main components:
- Systems: Robot system implementations (articulated soft robots, pendulums, PCS, and GVS)
- Control: Model-based controllers for trajectory tracking and regulation
- Rendering: Visualization and animation utilities
- Actuation: Actuation modeling and utilities
- Utilities: Parameter management, numerical, geometry, and Lie algebra tools
Systems¶
The Systems module contains implementations for various robot systems, from classical rigid-body pendulums and spatial articulated soft robots to advanced soft continuum robots. All systems provide:
- Forward kinematics and Jacobians
- Dynamics (mass matrices, Coriolis forces, gravitational effects)
- Energy computation methods
- Support for various actuation methods (direct torque, tendons, pressure chambers)
SoRoMoX includes three main system categories: - Articulated Systems: Planar pendulums, tendon-actuated pendulums, and spatial articulated soft robots - PCS Systems: Piecewise Constant Strain continuum robots (2D & 3D), including the 2D PlanarHSA variant - GVS Systems: Geometric Variable Strain robots (3D)
Control¶
The Control module provides model-based controllers for soft robots, organized into three control spaces:
- Configuration-Space Controllers: Operating in the robot's generalized coordinates
- Operational-Space Controllers: Operating in task space (end-effector positions/orientations)
- Actuation-Space Controllers: Operating in a transformed coordinate system ideal for underactuated robots
All controllers follow a unified architecture that decomposes control action into model-based and feedback terms, enabling high-performance simulation and real-time control applications.
Rendering¶
The Rendering module provides a class-based architecture for visualizing soft robots. Multiple renderer implementations are available:
- MatplotlibRenderer: Generic, works with any robot (2D/3D)
- Open3DRenderer: Interactive 3D visualization
- ViserRenderer: Web-based interactive 3D visualization
- OpenCVPlanarRenderer: Fast 2D rendering
- OpenCVPlanarHSARenderer: Specialized for PlanarHSA
All renderers inherit from a common base class and provide cached forward kinematics and a unified interface.
Actuation¶
The Actuation module provides utilities for modeling and working with different actuation methods, including tendon routing, pressure chambers, and direct torque actuation.
Utilities¶
The Utilities module includes:
- Parameters: Parameter handling, validation, and default configurations for soft robot systems
- Numerics: Finite singular-point conventions for common JAX operations
- Geometry: Pose encodings, rotations, and geometric errors
- Lie Algebra: Rigid-body maps and stable Jacobian coefficients
- Constant Strain: Planar and spatial rod-segment operators
- Numerical Jacobian: Bound-aware finite-difference gradients and Jacobians
Getting Started¶
To get started with SoRoMoX:
- Installation: See the Installation Guide for setup instructions
- Quick Start: Check out the Quick Start Guide for basic usage examples
- Examples: Explore the Examples for comprehensive use cases
For detailed API documentation, navigate to the specific modules using the sidebar.