GithubHelp home page GithubHelp logo

benliepert / rdla Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 1.86 MB

Diffusion Limited Aggregation in Rust

Home Page: https://benliepert.github.io/RDLA

Rust 93.40% Shell 0.49% JavaScript 0.69% HTML 5.42%
diffusion-limited-aggregation egui rust

rdla's Introduction

Diffusion Limited Aggregation in Rust

What is it?

A live, configurable, simulator of Diffusion Limited Aggregation (DLA). DLA is the clustering of particles undergoing a random walk due to Brownian motion.

The core algorithm is simple:

  1. Initialize a 2d/3d space with at least 1 position marked as "filled" (occupied by a particle).
  2. Spawn a particle at an "unfilled" position.
  3. Simulate a random walk for said particle until it's directly adjacent (touching) an existing particle, at which point it will "stick" and "fill" its current position in the space.
  4. Repeat steps 2 and 3 until you've reached a desired number of particles, or the grid is full (and executing step 2 is no longer possible).

In this simulator, DLA is modeled on a 2d space in Rust using a Pixels frame buffer and egui GUI.

How To Run

Visit benliepert.github.io/RDLA for a version (generated with trunk) that runs in your browser.
Or you can build and run the standalone app by using cargo run --release at the root of this repo.

Acknowledgments

Thanks @parasyte for your Conway's Game of Life, Minimal Egui, and Minimal Web examples!

rdla's People

Contributors

benliepert avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rdla's Issues

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.