rsbullet 0.3.10

Compiles bullet3 and exposes rust bindings to the C API
Documentation
use std::{thread::sleep, time::Duration};

use rsbullet::{BulletResult, Mode, PhysicsClient, UrdfOptions};

fn main() -> BulletResult<()> {
    let mut client = PhysicsClient::connect(Mode::Gui)?;
    client
        .set_default_search_path()?
        .set_real_time_simulation(true)?
        .set_gravity([0., 0., -10.])?;

    let plane = client.load_urdf("plane.urdf", None::<UrdfOptions>)?;
    let cube = client.load_urdf("cube.urdf", Some([0., 0., 3.]))?;

    client
        .set_collision_filter_group_mask(cube, 1, 0, 0)?
        .set_collision_filter_pair(plane, cube, -1, -1, true)?;

    while client.is_connected() {
        client.step_simulation()?;
        sleep(Duration::from_secs_f64(1. / 240.));
    }
    Ok(())
}