Giter VIP home page Giter VIP logo

rust-drive-ai's Introduction

AI learns to drive

AI learns to drive in a road-fighter inspired environment

The cars are controlled using a neural network, and are trained using a genetic algorithm.

Built with Rust and Bevy game engine

gui

Demo

Here's the entire timelapse of the AI learning to drive

youtube

Devlog

Here's a devlog of how this was built

youtube

Usage

  • Clone the repo
    git clone [email protected]:bones-ai/rust-drive-ai.git
    cd rust-drive-ai
    
  • Run the simulation
    cargo run --release
    

Configurations

  • The project config file is located at src/configs.rs

Forks

Here's a list of of forks that extend this project, let me know if you have an interesting fork to add:

Assets

rust-drive-ai's People

Contributors

bones-ai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rust-drive-ai's Issues

License / Contributions ?

Hey!! What a fun little simulation, I love it!

This has made me want to get back to small neural net sims like this one.

I'd like to use and/or contribute to your code, can I? :)

Also if you need help choosing a license, I'm not an expert but I know a thing or two :)

crashes on initialization

on M1 silicon MacBook, app crashes after after running

Finished `release` profile [optimized] target(s) in 0.14s
     Running `target/release/steering`
2024-07-26T14:00:02.857264Z  INFO bevy_render::renderer: AdapterInfo { name: "Apple M1 Pro", vendor: 0, device: 0, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Metal }
2024-07-26T14:00:02.971056Z  INFO bevy_prototype_debug_lines: Loaded 2d debug lines plugin.
2024-07-26T14:00:02.981619Z  INFO bevy_winit::system: Creating new window "Bevy App" (0v0)
2024-07-26 17:00:03.112 steering[78715:8272772] CAMetalLayer ignoring invalid setDrawableSize width=4294967295.000000 height=4294967295.000000
2024-07-26T14:00:03.113864Z ERROR wgpu::backend::direct: Handling wgpu errors as fatal by default
thread 'Compute Task Pool (0)' panicked at /Users/blackbird/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.15.1/src/backend/direct.rs:3024:5:
wgpu error: Validation Error

Caused by:
    In Device::create_texture
      note: label = `main_texture_a`
    Dimension X value 4294967295 exceeds the limit of 16384


note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'Compute Task Pool (1)' panicked at /Users/blackbird/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_ecs-0.10.1/src/schedule/executor/multi_threaded.rs:194:60:
A system has panicked so the executor cannot continue.: RecvError
thread '<unnamed>' panicked at /Users/blackbird/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_tasks-0.10.1/src/task_pool.rs:376:49:
called `Option::unwrap()` on a `None` value
thread 'main' panicked at /Users/blackbird/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_render-0.10.1/src/pipelined_rendering.rs:136:45:
called `Result::unwrap()` on an `Err` value: RecvError
thread 'main' panicked at /Users/blackbird/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_tasks-0.10.1/src/task_pool.rs:376:49:
called `Option::unwrap()` on a `None` value

/tmp/rust-drive-ai main* ❯                                             17:00:03

Verifiable simulation fork

Hey!

I came across your work a few weeks ago and was interested in the possibility in using dojo to implement provable model inference. The gist of it is Dojo is a provable game engine inspired by Rust. It is written in Cairo which means that we can generate a mathematical proof of computation using a zkSTARK. It creates an interesting dynamic where a player can train a neural network to drive the car, then run inference using the Dojo implementation, and a submit a proof of their score, without having to expose the model weights. It's mostly an experiment with this new affordance. Essentially, with provable computation it is no longer necessary to verify a clients computation using a trusted centralized server, which enables interesting new architectures and also fully private information.

I wanted to share here incase you found it interesting. Happy to share more if so!

Thanks for the original implementation!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.