candlewick 0.7.0-58-gffcaf
A tiny cross-platform renderer based on SDL3
|
Candlewick is a cross-platform framework for real-time visualization in robotics, based on SDL3's graphics API.
Candlewick visualization utilities for robotics based on Pinocchio.
You can load a Pinocchio model, its geometry model, and create a visualizer that can be used similar to the other visualizers included in pinocchio.visualize
. Here's a Python example:
The runtime allows users to persist a visualizer window and keep interacting with it asynchronously, even when display commands are not being submitted.
To build the runtime, users must set the BUILD_VISUALIZER_RUNTIME
CMake option.
Launch the candlewick runtime:
The corresponding asynchronous visualizer client is used as follows:
Check out the corresponding example.
Candlewick depends mainly on:
These dependencies can be installed from Conda as follows:
Additionally, candlewick depends on the following bundled dependencies:
Python runtime dependencies: numpy
Required for the candlewick::multibody
classes and functions:
conda install -c conda-forge pinocchio
Python runtime dependencies: pinocchio
(Python bindings)
Additional dependencies for the candlewick-visualizer
runtime:
Python runtime dependencies: pyzmq msgspec
conda install ffmpeg pkg-config
| The following components are required:libavformat
- Container format handlinglibavcodec
- Video encoding/decodinglibswscale
- Image scaling and format conversionconda install gtest
conda install cli11
conda install -c conda-forge example-robot-data
For building the library, you will need CMake (version at least 3.26) and a C++20-compliant compiler. These can also be obtained through Conda.
In the directory where you have checked out the code, perform the following steps:
Build Option | Default | Description | Additional Dependencies | Requires |
---|---|---|---|---|
BUILD_PYTHON_INTERFACE | ON | Build Python bindings | eigenpy | - |
BUILD_PINOCCHIO_VISUALIZER | ON | Enable Pinocchio robot visualization | pinocchio >= 3.5 | - |
BUILD_VISUALIZER_RUNTIME | OFF | Build candlewick-visualizer executable | cppzmq, msgpack-cxx | BUILD_PINOCCHIO_VISUALIZER=ON |
BUILD_WITH_FFMPEG_SUPPORT | OFF | Enable video recording capabilities | FFmpeg | - |
GENERATE_PYTHON_STUBS | OFF | Generate Python type stubs | (handled by cmake submodule) | BUILD_PYTHON_INTERFACE=ON |
Many of the design choices of this library are heavily inspired by other, more mature work in the open-source 3D graphics middleware space.
Here are some of the resources I've looked at:
MeshData
type)Candlewick embeds the Inter Medium font as part of its source code:
Inter-Medium.ttf, by Rasmus Andersson.
SIL OPEN FONT LICENSE Version 1.1
Copyright (c) 2016 The Inter Project Authors
https://rsms.me/inter