7 releases

0.1.6 Nov 1, 2024
0.1.5 Nov 1, 2024
0.1.4 Oct 27, 2024

#271 in Embedded development

Download history 167/week @ 2024-10-14 126/week @ 2024-10-21 375/week @ 2024-10-28 35/week @ 2024-11-04

703 downloads per month

Apache-2.0

33KB
477 lines

Motion🍃

Motion is a bare metal physics engine with which you can make simulations easily and quickly, also in rust.

Get started ✨

let's start by making a simple event loop

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

use motion::event_loop::EventLoopBuilder;

// The definition of this function depends on the context in which motion is used
fn sleep(duration: Duration) {
    thread::sleep(duration);
}

fn main() {
    let el = EventLoopBuilder::new().fps(1).build();

    el.start(|_config| println!("Hello! in the event loop"), sleep);
}

now we are going to do something more complex by creating an object

    let obj = Object2dBuilder::new()
        .position(vec2(2.0, 2.0))
        .density(2.0)
        .mass(3.0)
        .velocity(vec2(4.0, 4.0))
        .acceleration(vec2(3.0, 3.0))
        .radius(2.0)
        .shape(Shape::Circle)
        .build();

Why rust 🦀

Rust is a fast and efficient programming language, which makes it perfect for motion, plus it is very flexible allowing motion to be used everywhere.

No runtime deps

Features