rubullet 0.1.0-alpha-3

Rust interface to the Bullet Physics SDK simmilar to PyBullet
Documentation

A Rust interface for Bullet physics inspired by PyBullet.

Example

use std::{thread, time::Duration};

use anyhow::Result;
use nalgebra::{Isometry3, Vector3};
use rubullet::*;

fn main() -> Result<()> {
let mut physics_client = PhysicsClient::connect(Mode::Gui)?;

physics_client.set_additional_search_path("../rubullet-sys/bullet3/libbullet3/data")?;
physics_client.set_gravity(Vector3::new(0.0, 0.0, -10.0));

let _plane_id = physics_client.load_urdf("plane.urdf", None)?;

let cube_start_position = Isometry3::translation(0.0, 0.0, 1.0);
let box_id = physics_client.load_urdf(
"r2d2.urdf",
UrdfOptions {
base_transform: cube_start_position,
..Default::default()
},
)?;

for _ in 0..10000 {
physics_client.step_simulation()?;
thread::sleep(Duration::from_micros(4167));
}

let cube_transform = physics_client.get_base_transform(box_id)?;
println!("{}", cube_transform);

Ok(())
}