bullet3 README

The project's README from github.com/bulletphysics/bullet3. As one markdown file: README.md.

Travis Build Status Appveyor Build status

Bullet Physics SDK

This is the official C++ source code repository of the Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

PyBullet

Issues

The Issue tracker was flooded with support questions and is closed until it is cleaned up. Use the PyBullet forums to discuss with others.

PyBullet

It is highly recommended to use PyBullet Python bindings for improved support for robotics, reinforcement learning and VR. Use pip install pybullet and checkout the PyBullet Quickstart Guide.

Installation is simple:

pip3 install pybullet --upgrade --user
python3 -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python3 -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul
python3 -m pybullet_envs.deep_mimic.testrl --arg_file run_humanoid3d_backflip_args.txt

If you use PyBullet in your research, please cite it like this:

@MISC{coumans2021,
author =   {Erwin Coumans and Yunfei Bai},
title =    {PyBullet, a Python module for physics simulation for games, robotics and machine learning},
howpublished = {\url{http://pybullet.org}},
year = {2016--2021}
}

Requirements for Bullet Physics C++

A C++ compiler for C++ 2003. The library is tested on Windows, Linux, Mac OSX, iOS, Android, but should likely work on any platform with C++ compiler. Some optional demos require OpenGL 2 or OpenGL 3, there are some non-graphical demos and unit tests too.

Contributors and Coding Style information

https://docs.google.com/document/d/1u9vyzPtrVoVhYqQOGNWUgjRbfwfCdIts_NzmvgiJ144/edit

Requirements for experimental OpenCL GPGPU support

The entire collision detection and rigid body dynamics can be executed on the GPU.

A high-end desktop GPU, such as an AMD Radeon 7970 or NVIDIA GTX 680 or better. We succesfully tested the software under Windows, Linux and Mac OSX. The software currently doesn't work on OpenCL CPU devices. It might run on a laptop GPU but performance will not likely be very good. Note that often an OpenCL drivers fails to compile a kernel. Some unit tests exist to track down the issue, but more work is required to cover all OpenCL kernels.

License

All source code files are licensed under the permissive zlib license (http://opensource.org/licenses/Zlib) unless marked differently in a particular folder/file.

Build instructions for Bullet using vcpkg

You can download and install Bullet using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install bullet3

The Bullet port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Build instructions for Bullet using premake. You can also use cmake instead.

Windows

Click on build_visual_studio_vr_pybullet_double.bat and open build3/vs2010/0_Bullet3Solution.sln When asked, convert the projects to a newer version of Visual Studio. If you installed Python in the C:\ root directory, the batch file should find it automatically. Otherwise, edit this batch file to choose where Python include/lib directories are located.

Windows Virtual Reality sandbox for HTC Vive and Oculus Rift

Build and run the App_SharedMemoryPhysics_VR project, preferably in Release/optimized build. You can connect from Python pybullet to the sandbox using:

import pybullet as p
p.connect(p.SHARED_MEMORY) #or (p.TCP, "localhost", 6667) or (p.UDP, "192.168.86.10",1234)

Linux and Mac OSX gnu make

Make sure gcc and cmake is installed (sudo apt-get install build-essential and sudo apt-get install cmake for Linux, brew install cmake for Mac, or https://cmake.org)

In a terminal type:

./build_cmake_pybullet_double.sh

This script will invoke cmake and build in the build_cmake directory. You can find pybullet in Bullet/examples/pybullet. The BulletExampleBrowser binary will be in Bullet/examples/ExampleBrowser.

You can also build Bullet using premake. There are premake executables in the build3 folder. Depending on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines Using premake:

cd build3
./premake4_linux --double gmake
./premake4_linux64 --double gmake
./premake4_osx --double --enable_pybullet gmake

Then

cd gmake
make

Note that on Linux, you need to use cmake to build pybullet, since the compiler has issues of mixing shared and static libraries.

Mac OSX Xcode Click on build3/xcode4.command or in a terminal window execute

./premake_osx xcode4

Usage

The App_ExampleBrowser executables will be located in the bin folder. You can just run it though a terminal/command prompt, or by clicking it.

[--start_demo_name="Demo Name"]     Start with a selected demo  
[--mp4=moviename.mp4]               Create a mp4 movie of the window, requires ffmpeg installed
[--mouse_move_multiplier=0.400000]  Set the mouse move sensitivity
[--mouse_wheel_multiplier=0.01]     Set the mouse wheel sensitivity
[--background_color_red= 0.9]       Set the red component for background color. Same for green and blue
[--fixed_timestep= 0.0]             Use either a real-time delta time (0.0) or a fixed step size (0.016666)

You can use mouse picking to grab objects. When holding the ALT or CONTROL key, you have Maya style camera mouse controls. Press F1 to create a series of screenshots. Hit ESCAPE to exit the demo app.

Check out the docs folder and the Bullet physics forums for further information.

bullet3 (bulletphysics/bullet3)

Searching Database…

14.8K ·GitHub
这是什么?Bullet Physics SDK 是官方的 C++ 库,用于实时碰撞检测和多物理场仿真,应用于虚拟现实、游戏、视觉特效、机器人和机器学习等领域。
这是我可以链接到自己应用里的 C++ 库,还是独立程序?它主要是一个 C++ 库,并附带基于它构建的可选示例/演示程序(AppExampleBrowser);另外还提供名为 PyBullet 的 Python 绑定,无需接触 C++ 即可编写脚本。
怎样才能让它运行起来?使用 Python 的话,直接运行 'pip install pybullet' 即可。使用 C++ 的话,可以通过 vcpkg('vcpkg install bullet3')构建,或使用 cmake/premake:在 Windows 上运行 Visual Studio 的批处理或解决方案文件;在 Linux/Mac 上用 gcc/cmake 运行构建脚本;Mac 上也可以使用 Xcode。
我需要 C++ 编译器,还是只要 Python 就行?使用 PyBullet 只需要 Python 和 pip;使用原生库则需要 C++ 编译器(C++2003)、cmake 或 premake,以及 Linux/Mac 上的 make/gcc(build-essential、cmake)。
GPU/OpenCL 支持开箱即用吗?实验性的 OpenCL GPGPU 支持需要 Radeon 7970、GTX 680 或更高端的桌面 GPU;它不能在 OpenCL CPU 设备上运行,笔记本 GPU 的性能较差,而且部分 OpenCL 驱动无法编译内核。
它可以在哪些平台上运行?已在 Windows、Linux、Mac OSX、iOS 和 Android 上测试,理论上任何有 C++ 编译器的平台都应可用。
遇到问题时可以获得支持吗?由于 GitHub 议题区充斥着支持性问题,已被关闭;用户会被引导至 PyBullet 论坛寻求帮助。
程序运行后,如何控制演示程序?运行 AppExampleBrowser 可执行文件,使用鼠标拾取来抓取物体,按住 ALT/CONTROL 可使用 Maya 风格的相机控制,按 F1 截图,按 ESCAPE 退出。
为什么要用 PyBullet,而不是直接使用原生 C++ 库?与直接使用原生 C++ API 相比,PyBullet 提供了更完善的高层支持,专门面向机器人、强化学习和虚拟现实的工作流程。
Size
290.1 MB
Stars
14.8K
Age
15y
Commits · 90 Days