BulletLab v0.1.4
This release closes major PyBullet physics gaps, introducing comprehensive wrappers for terrain generation, external forces, and runtime dynamics to significantly reduce the need for raw PyBullet C-API calls.
Highlights
Terrain & Environment Construction
- Added robust
Worldmethods for primitive obstacles (create_box,create_sphere,create_capsule) - Introduced
World.load_heightfieldfor generating procedural terrain from flat lists or 2D numpy arrays - Added
World.scatter_obstaclesfor rapidly populating scenes with random hazards - Added
World.remove_bodyfor precise runtime environment manipulation
Physics Parameters & Dynamics
- Introduced
Robot.apply_forceandRobot.apply_torquefor applying continuous external forces (e.g., drone thrust, wind drag) natively - Added
Robot.set_dynamicsto seamlessly alter mass, friction, restitution, and damping of any link at runtime
Robot Loading Improvements
- Introduced an intuitive
tiltparameter toRobot.load()using an axis-angle shorthand (e.g.,tilt=((0, 1, 0), 30)) - Eliminates the need for manual quaternion math when setting initial spawn orientations
- Tilts compose safely on top of existing base orientations
Developer Experience & Documentation
- Re-exported essential math utilities directly from the package root (
from bulletlab import euler_to_quaternion, etc.) - Completely refactored complex examples (
04_drone_parameter_tuning.py,06_irregular_terrain.py) to demonstrate pure BulletLab abstractions without importing PyBullet - Added a comprehensive new
World Guideto the documentation - Expanded the
Cookbookwith advanced physics and terrain generation recipes
About BulletLab
BulletLab is a robotics experimentation framework built on PyBullet that transforms robots into intuitive Python objects while providing modern ImGui-based controls, telemetry, visualization, and reinforcement learning workflows.
Installation
pip install --upgrade bulletlabLinks
Documentation: https://nuclearvenom.github.io/BulletLab/
Repository: https://github.com/NuclearVenom/BulletLab