Releases: NuclearVenom/BulletLab
Release list
BulletLab v0.3.1
This release focuses on improving installation reliability, Python compatibility, and dependency management across BulletLab. It replaces the outdated imgui-bundle dependency that could trigger problematic CMake source builds on Windows, adds missing GUI runtime dependencies, improves compatibility with newer ImGui Bundle releases, and strengthens the CI pipeline to prevent similar installation issues in future releases.
Highlights
Improved Installation & Dependency Management
- Updated
imgui-bundlefrom1.5.2to>=1.6.0,<2.0, enabling the use of compatible prebuilt wheels instead of forcing source builds on supported Windows Python versions. - Added PyOpenGL as an explicit runtime dependency.
- Added glfw as an explicit runtime dependency.
- Improved dependency handling to provide a more reliable clean-install experience.
Python Compatibility
- Dropped Python 3.10 support.
- Added official Python 3.13 support.
- The supported Python range is now 3.11–3.13.
- Python 3.14 is intentionally excluded until it can be explicitly validated.
ImGui Compatibility
- Improved compatibility with newer
imgui-bundle1.92.x releases. - Added compatibility handling for the
nav_highlight→nav_cursorenum rename. - Verified BulletLab against multiple
imgui-bundlereleases from 1.6.0 through 1.92.900.
Plotting Improvements
- Fixed a clean-install issue where
OpenGL.GLcould be imported before the optional plotting dependencies were properly initialized. - Improved graceful handling when the plotting dependencies are unavailable.
CI & Release Reliability
- Added Python 3.13 to the CI test matrix.
- Added a dedicated Windows binary-wheel installation test.
- CI now verifies that
imgui-bundlecan be installed from a prebuilt wheel on supported Windows Python versions, helping prevent regressions involving CMake-based source builds. - Updated the documentation workflow to use a supported Python version.
Documentation
- Updated installation requirements to reflect the new Python 3.11–3.13 support range.
- Clarified the Windows installation requirements and binary-wheel behavior.
- Updated installation documentation to reflect the new dependency requirements.
Testing
- 240/240 tests passing.
- Compatibility verified across 11
imgui-bundleversions. - Clean Windows installation verified on Python 3.13 without requiring a CMake build for
imgui-bundle. - Final package metadata and documentation verified against the supported Python range.
Bug Fixes
- Fixed the Windows/Python 3.13 installation failure caused by
imgui-bundle==1.5.2falling back to a source build. - Fixed missing runtime dependency declarations for
PyOpenGLandglfw. - Fixed ImGui 1.92.x navigation-color compatibility.
- Fixed a plotting import failure in clean environments.
Compatibility
Supported Python versions: 3.11, 3.12, 3.13
Unsupported: Python 3.10 and Python 3.14+
Installation
pip install --upgrade bulletlabLinks
Documentation: https://nuclearvenom.github.io/BulletLab/
Repository: https://github.com/NuclearVenom/BulletLab
BulletLab Arsenal: https://github.com/NuclearVenom/BulletLab-Arsenal
BulletLab v0.3.0
This release focuses on modernizing the entire BulletLab UI architecture. It replaces the previous GUI stack with a unified Dear ImGui-based foundation, significantly simplifies dependencies, improves maintainability, and establishes a cleaner, more future-proof architecture while preserving the existing BulletLab workflow and public API.
Highlights
Modern UI Architecture
- Completely migrated the BulletLab interface to Dear ImGui using imgui-bundle
- Unified the entire graphical interface under a single modern UI framework
- Replaced the previous mixed GUI architecture with a cleaner and more maintainable implementation
- Preserved the existing user experience and public API throughout the migration
Rendering & Backend
- Standardized the rendering backend around GLFW
- Removed legacy GUI dependencies and consolidated the rendering pipeline
- Simplified the overall UI architecture while maintaining responsive performance
- Improved the long-term maintainability and extensibility of the graphical interface
Project Modernization
- Removed legacy GUI libraries, including pyimgui, PyQt, and pyqtgraph
- Updated the dependency stack with a cleaner and more streamlined architecture
- Improved project structure and internal organization
- Refined the codebase to better support future UI features and tooling
Documentation
- Updated the entire documentation to reflect the current architecture
- Refreshed the README, Cookbook, installation guides, and API documentation
- Updated examples and code snippets to use the modern UI stack
- Improved consistency, terminology, and overall documentation quality
Quality & Stability
- Preserved backward compatibility for existing BulletLab workflows
- Verified functionality across all examples after the migration
- Updated and validated the automated CI pipeline
- Successfully tested on Python 3.10, 3.11, 3.12 and 3.13
- Continued improving overall code quality, stability, and developer experience
About BulletLab
BulletLab is a robotics experimentation framework built on PyBullet that transforms robots into intuitive Python objects while providing modern tooling for simulation, visualization, telemetry, and robotics experimentation.
Its official package registry, BulletLab Arsenal, provides curated and verified robotics assets—including robots, worlds, sensors, controllers, datasets, and benchmarks—that can be installed or loaded directly from within BulletLab.
Installation
pip install --upgrade bulletlabLinks
Documentation: https://nuclearvenom.github.io/BulletLab/
Repository: https://github.com/NuclearVenom/BulletLab
BulletLab Arsenal: https://github.com/NuclearVenom/BulletLab-Arsenal
BulletLab v0.2.1
This release focuses on making the ** Console** significantly more powerful, extensible, and enjoyable to use. It introduces a built-in command framework, enables users to easily create their own custom commands, refines the console experience, and further improves the internal architecture while maintaining full backward compatibility.
Highlights
BulletLab Console
- Introduced a modular built-in command system for faster robotics experimentation
- Added several native console commands for common simulation and robot operations
- Commands are now organized into a dedicated framework instead of being embedded throughout the codebase
- Improved the overall console workflow for interactive testing and rapid prototyping
Custom Commands
- Introduced an official framework for creating custom console commands
- Users can add new commands with minimal boilerplate by simply creating Python command modules
- Custom commands integrate seamlessly with the existing console and behave exactly like built-in commands
- Designed the architecture to be clean, maintainable, and easily extensible for future community contributions
Console Experience
- Refined the command-line interface with a cleaner and more professional appearance
- Added clearer status messages and announcements during command execution
- Improved progress reporting and visual feedback throughout console operations
- Enhanced usability while preserving the lightweight and responsive nature of the console
Documentation
- Added comprehensive documentation for the new console architecture
- Introduced guides for developing custom commands
- Expanded the Cookbook with practical examples for both built-in and user-defined commands
- Updated API documentation and examples to reflect the new command framework
Project Improvements
- Refined the internal command architecture for better maintainability
- Improved code organization by separating console functionality into dedicated modules
- Removed redundant implementation and simplified the command registration process
- Improved API consistency, stability, and overall developer experience
- Continued polishing the project for a more professional open-source release
About BulletLab
BulletLab is a robotics experimentation framework built on PyBullet that transforms robots into intuitive Python objects while providing modern tooling for simulation, visualization, telemetry, and robotics experimentation.
Its official package registry, BulletLab Arsenal, provides curated and verified robotics assets—including robots, worlds, sensors, controllers, datasets, and benchmarks—that can be installed or loaded directly from within BulletLab.
Installation
pip install --upgrade bulletlabLinks
Documentation: https://nuclearvenom.github.io/BulletLab/
Repository: https://github.com/NuclearVenom/BulletLab
BulletLab Arsenal: https://github.com/NuclearVenom/BulletLab-Arsenal
BulletLab v0.2.0
This release introduces the first official integration between BulletLab and BulletLab Arsenal, making verified robotics assets installable and directly loadable from the official registry while significantly improving the project's architecture, documentation, and overall developer experience.
Highlights
BulletLab Arsenal Integration
- Introduced
Robot.install()for permanently installing verified robot packages from BulletLab Arsenal - Extended
Robot.load()to support direct loading from Arsenal using the new URI format:
Robot.load("arsenal:reference_bot")
Robot.load("arsenal:unitree_g1/g1_29dof")- Added automatic temporary caching for Arsenal-loaded assets with session-based cleanup
- Preserved full backward compatibility with existing local file loading
Package Management
- Added support for loading default robot models or explicitly selecting models within a package
- Implemented automatic dependency resolution for URDFs and required mesh assets
- Added configurable installation locations for permanent package downloads
- Designed the infrastructure for future support of Worlds, Sensors, Controllers, Datasets and Benchmarks
Documentation
- Introduced comprehensive documentation for BulletLab Arsenal and its role within the BulletLab ecosystem
- Updated the README to present Arsenal as the official package registry for BulletLab
- Added installation and loading examples covering both local and Arsenal-based workflows
- Improved project navigation, examples, API documentation, and user guides
Project Improvements
- Performed a repository-wide audit of the codebase
- Removed obsolete code, outdated documentation, and inconsistencies
- Improved API consistency and internal architecture
- Refined error handling and overall code quality
- Polished the project for a more professional open-source release
About BulletLab
BulletLab is a robotics experimentation framework built on PyBullet that transforms robots into intuitive Python objects while providing modern tooling for simulation, visualization, telemetry, and robotics experimentation.
Its official package registry, BulletLab Arsenal, provides curated and verified robotics assets—including robots, worlds, sensors, controllers, datasets, and benchmarks—that can be installed or loaded directly from within BulletLab.
Installation
pip install --upgrade bulletlabLinks
Documentation: https://nuclearvenom.github.io/BulletLab/
Repository: https://github.com/NuclearVenom/BulletLab
BulletLab Arsenal: https://github.com/NuclearVenom/BulletLab-Arsenal
BulletLab v0.1.5
This release focuses on establishing BulletLab as a mature open-source project by introducing repository governance, contributor guidelines, software citation support, and long-term project planning.
Highlights
Community & Open Source
- Added a comprehensive Contributing Guide with development setup, coding standards, pull request workflow, and documentation guidelines
- Introduced a Code of Conduct to foster a welcoming and collaborative community
- Added a Support Guide describing where to ask questions, report bugs, and request new features
Research & Citation
- Added an official CITATION.cff file
- Enabled GitHub's "Cite this repository" feature for academic software citation
- Improved software discoverability and reproducibility for research projects
Project Governance
- Introduced a Security Policy outlining responsible vulnerability disclosure procedures
- Added a long-term Roadmap documenting the future direction and planned milestones of BulletLab
- Established community health files following GitHub best practices
Documentation
- Updated the README with links to all community resources
- Improved project organization and repository navigation
- Refined the repository structure for contributors and new users
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/
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
BulletLab v0.1.3
This release introduces dynamic camera tracking modes, improves the interactive development workflow, and expands resources for AI-assisted robotics development.
Highlights
Dynamic Camera System
- Added a new dynamic camera mode with three tracking variants
- Improved robot observation and scene navigation during simulation
- Enables more intuitive monitoring of robot behavior and experiments
Console & Scripting Improvements
- Fixed issues in the integrated console panel
- Improved real-time Python script execution and control
- Enhanced interactive simulation workflows for rapid experimentation
AI & LLM Optimization
- Expanded support for AI-assisted development workflows
- Added practical code snippets for common robotics tasks
- Introduced a growing cookbook of examples and usage patterns
- Improved discoverability of framework features for coding agents and AI assistants
Developer Experience
- Streamlined experimentation workflows
- Improved documentation structure and accessibility
- Continued refinement of the BulletLab development ecosystem
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
BulletLab v0.1.2
This release introduces the official BulletLab logo and visual identity, marking an important milestone in the project's evolution from an experimental framework to a recognizable robotics development platform.
Highlights
Official BulletLab Logo
- Introduced the official BulletLab logo across the project
- Updated documentation branding and visual identity
- Improved project presentation and consistency
Documentation Improvements
- Refined MkDocs configuration
- Updated project metadata and repository information
- Improved overall documentation experience
Package & Project Updates
- Updated PyPI package metadata
- General bug fixes and quality-of-life improvements
- Continued preparation for future framework expansion
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
BulletLab v0.1.1
The first post-release update for BulletLab, focused on improving stability, package quality, and example coverage.
Highlights
Bug Fixes
- Fixed multiple framework bugs discovered after the initial public release
- Improved overall reliability and consistency across the API
Joint & Reset System Improvements
- Fixed reset-related issues affecting robot state initialization
- Improved robot reset behavior and simulation reproducibility
Package Metadata Improvements
- Refined PyPI package metadata
- Improved package distribution and installation experience
- Updated project information and package configuration
New Example
- Added Example 06: Husky Robot in Irregular Terrain
- Demonstrates BulletLab's ability to work with mobile robots in challenging environments
- Provides a foundation for navigation, autonomy, and reinforcement learning experiments
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 bulletlab
Links
Documentation: https://nuclearvenom.github.io/BulletLab/
Repository: https://github.com/NuclearVenom/BulletLab
BulletLab v0.1.0
First public release of BulletLab.
BulletLab is a robotics experimentation framework built on PyBullet that transforms robots into intuitive Python objects while providing modern tooling for simulation, visualization, telemetry, and reinforcement learning workflows.
Initial Features
Object-Oriented Robot API
- Robots represented as structured Python objects
- Named joints and links instead of raw PyBullet IDs
- Simplified robot interaction and state access
Joint System
- Joint discovery and enumeration
- Position, velocity, and torque control
- Runtime joint inspection and manipulation
Link System
- Link discovery and enumeration
- Dynamic property access
- Runtime modification of physical parameters
Telemetry System
- Real-time telemetry channels
- History recording and data collection
- Structured experiment monitoring
ImGui-Based User Interface
- Modern control panels separated from PyBullet visualization
- Interactive simulation controls
- Extensible UI architecture
Experimentation Tools
- Data logging utilities
- CSV export support
- Foundation for robotics research workflows
Documentation
- Initial MkDocs documentation site
- Installation and API reference guides
- Getting-started examples
Vision
BulletLab aims to provide a higher-level robotics experimentation environment on top of PyBullet, enabling rapid prototyping, testing, visualization, and reinforcement learning research through a clean Python-first interface.