Rendering¶
Visualization and rendering utilities for soft robot systems.
Overview¶
The rendering module provides a class-based architecture for visualizing soft robots. All renderers inherit from a common base class BaseSoftRobotRenderer which provides cached forward kinematics and a unified interface.
Core renderer gallery¶
The Matplotlib, Open3D, and Viser samples show the same three-segment spatial PCS configuration with the paper color theme, a dark base, and a base-aligned ground plane. The OpenCV sample uses its three-segment planar counterpart with the same dark-base and warm-backbone styling.
-
Matplotlib

Polished static figures and notebook-friendly inspection for planar and spatial robots.
-
Open3D

Interactive spatial inspection with geometry, camera control, and offline frame or video capture.
-
Viser

Browser-based 3D visualization for live demos, playback, and multi-robot scenes.
-
OpenCV Planar

Lightweight real-time planar frames and fast video export.
System-specific renderer designs are documented alongside their robots: the Planar HSA OpenCV renderer, I-SUPPORT Viser renderer, and UMArm Viser renderer.
Choosing a Renderer¶
| Renderer | Best For | Strengths | Limitations |
|---|---|---|---|
MatplotlibRenderer |
Static plots, notebooks, debugging | Works with any robot, easy to embed | Limited interactivity, slower animations |
Open3DRenderer |
Interactive 3D inspection | Rich camera controls, headless capture | Requires Open3D, 3D only |
ViserRenderer |
Live demos, web-based visualization | Browser UI, live streaming, multi-robot | Requires web server, 3D only |
OpenCVPlanarRenderer |
Fast 2D animations, video export | Lightweight, fast output | Planar robots only |
OpenCVPlanarHSARenderer |
PlanarHSA-specific visuals | HSA-specific geometry | PlanarHSA only |
Documentation¶
Renderer API¶
Complete API reference for all renderer classes:
BaseSoftRobotRenderer- Abstract base classMatplotlibRenderer- Matplotlib-based visualizationOpen3DRenderer- Open3D-based 3D visualizationViserRenderer- Web-based visualizationOpenCVPlanarRenderer- OpenCV-based 2D visualizationOpenCVPlanarHSARenderer- HSA-specific visualization
Shared Configuration¶
Settings shared by multiple renderer backends:
CameraConfig- Camera positioning and field of view- Robot base, base-plate, and ground-plane behavior
- Multi-robot layouts and spacing
- Recording and video encoding
RendererColorConfig- Color configuration hierarchyBackboneColorConfig- Backbone-specific colors- Built-in color palettes and themes
Quick Start¶
All renderers accept a robot model at construction and expose a single-frame entry point. For example:
from soromox.rendering import MatplotlibRenderer
renderer = MatplotlibRenderer(robot, num_points=50)
renderer.show(q)
Choose another backend from the table above, then follow its API reference for interactive playback, live mode, or video capture.