brom_drake-py
Brom is a helper library for the Drake robotics simulation and verification library. Its goal is to simplify common debugging and testing activities in Drake (for example, logging the outputs of systems in your block diagrams).
Some of Brom's features:
| Feature | Code | Results |
|---|---|---|
The Diagram Watcher (the DiagramWatcher will log + plot all output ports of your Diagram automatically) |
add_watcher_and_build() |
|
| The Drake-ify feature (converts your URDF file into a form that Drake can consume) | drakeify_my_urdf() |
|
| Productions (partially complete robot scenarios to test your algorithms) | (See Examples Directory or the Docs) | |
Puppeteer (Move free bodies in drake with a RigidTransform input) |
Puppetmaker class's methods |
To learn more, look through our documentation here.
Installation
brom_drake is available on PyPI and installable with pip:
pip install brom-drake
ROS 2-capable install
If you use ROS 2 package URIs (for example, package://...) and want
brom_drake to resolve package share directories via ament_index_python,
install the optional ROS 2 extra:
pip install "brom-drake[ros2]"
In most ROS 2 workflows, make sure your ROS 2 environment is sourced before running your scripts so package discovery works as expected.
Developer install
You can also install the package during local development by cloning the repository and running the following commands from inside it:
pip install -r requirements.txt
pip install -e .
Citation
Feel free to cite this project if it helped with your work!
@misc{bromDrake2024,
author = "Kwesi Rutledge and the Wrench Robotics Team",
title = "Brom: A Helper Library for the Drake Toolbox",
year = 2024,
}
FAQs
Why the name Brom?
Brom the storyteller is a character from the Inheritance series by Christopher Paolini. He is a wise mentor that helps Eragon (the protagonist) master dragons. ;)
Where are the release notes?
You can follow the development of Brom by:
- Following the Release Notes on Substack ([Substack])
- Studying the Pull Requests (available above in the
Pull Requeststab of GitHub), or
How can I support this project?
Feel free to create an issue/send the Wrench Robotics team a message if you're interested in helping out!
Related Work
Some other work in the open-source Drake community:
- kinova_drake - A Drake-based library that builds a simple version of the manipulation station for the Kinova Gen3 robot arm. Also works with the hardware.
- airo-drake - A python package meant to simplify
working with Drake and the
airo-monorepository from the AI and Robotics Lab at Ghent University.
To-Dos
- Figure out how to tell if two systems are connected in Drake.
- Add more readme explanations of what is going on under the hood.
- Create a method that makes each material in a URDF file have unique names if they have specific values
- Allow for the user to give "Drake-unfriendly" URDFs to
ShowMeThisModelproduction
Metadata
Release files for brom-drake 1.0.0.post2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| brom_drake-1.0.0.post2.tar.gz | 27.6 MB | With provenance | Details for brom_drake-1.0.0.post2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| brom_drake-1.0.0.post2-py3-none-any.whl | Python 3 | none | any | Details for brom_drake-1.0.0.post2-py3-none-any.whl |
Total release size: 55.4 MB
Release files / brom_drake-1.0.0.post2.tar.gz
| Download URL | brom_drake-1.0.0.post2.tar.gz |
|---|---|
| Size | 27.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77ab085aa8a4498aa10f3c760afdb78c681cc7acb1417c297196c41af5d8cc06
|
|
BLAKE2b-256 checksum How to use checksums |
70dd4884f9964ca8e616c0995bbb9d5f6428be73773b33516a411aecc3e5b13b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.
Transparency logRelease files / brom_drake-1.0.0.post2-py3-none-any.whl
| Download URL | brom_drake-1.0.0.post2-py3-none-any.whl |
|---|---|
| Size | 27.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
699d5acb29f39d27577d412f9c5f5d6cdba3eb11b7131aae6990fe5592123f28
|
|
BLAKE2b-256 checksum How to use checksums |
4062e32dfcf7fa67bf2f66874c6c11163fe15a124a1bfc7533ba50987b9870ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.
Transparency logSecurity for brom-drake 1.0.0.post2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for brom_drake-1.0.0.post2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.