Rust port of https://github.com/hunar4321/life_code with some fun features.

Overview

Smarticles

A Rust port of Brainxyz's Artificial Life simulator with some fun features.

A simple program to simulate primitive Artificial Life using simple rules of attraction or repulsion among atom-like particles, producing complex self-organzing life-like patterns.

– from the original repository

animation of the app simulating particles

Running the App

To run this, you will need Rust installed, which you can do by following the installation instructions on the Rust website. You should then have cargo installed, which is the command line program for managing and running Rust projects.

You can check your version of cargo in the command line:

cargo --version
cargo 1.64.0-nightly (85b500cca 2022-07-24)

Once done, download or clone this repository to your preferred location and run the program using cargo like so:

cd ~/Rust/smarticles
cargo run

How to Use It

First, watch it in action. Press the Randomize button, which will spawn a bunch of particles with randomized settings. Then, press Play to run the simulation.

screenshot of the app's basic controls

Try randomizing it a few times and seeing what kind of results you get.

animation of the app simulating particles

There are 4 particle types. You can change the behavior of each with the sliders:

screenshot of particle's parameters

Power is the particle's attraction to particles of the other type. A positive number means it is attracted to them, and negative means it is repulsed away. Radius is how far away the particle can sense particles of that type.

You can adjust these parameters while the simulation is running if you want to see the effect they have:

Sharing Simulations

The Seed field is the D.N.A of your particle system. It contains all the information needed to replicate the current simulation. Pressing Randomize will give you random seeds, but you can also enter a custom one.

What does your name look like?

simulation using "chevy" as the seed

☝️ literally the inside of my brain ☝️

If you start adjusting parameters, you'll notice the seed changes to a code that begins with the @ symbol. These are custom-encoded simulations, which you can share by copying the entire code.

The code will be partially cut-off by the textbox, so make sure you select it all before copying.

screenshot of particle's parameters

You might also like...
A fun rust terminal program so you can make Christmas trees!
A fun rust terminal program so you can make Christmas trees!

Xmastree 2021 A fun christmas tree where you can add ornaments! Then, you can export the file into either: a rust file a txt file About Taking a break

82 fun and easy to use, lightweight, spinners for Rust, with minimal overhead.
82 fun and easy to use, lightweight, spinners for Rust, with minimal overhead.

Spinners for Rust 82 fun and easy to use, lightweight, spinners for Rust, with minimal overhead, all the way from simple dots, to fun emoji based "spi

collaboration project focusing on rust. Made for fun

Collaboration space for on rust project(s) setup Pull down the repo first then do the following steps cd into lil-devils cargo fetch cargo build cargo

An operating system written in Rust (for fun and educational purposes)

Prestige Prestige is an operating system written for fun and educational purposes in Rust. It targets the x86-64 architecture and can run on common em

A just-for-fun™ JVM implementation in Rust

Caoimhe's Rust JVM (CaoRVM) This is a just-for-fun™ JVM implementation in Rust. This project was inspired by one of my previous C++ projects, CaoVM. S

Rust library for regular expressions using "fancy" features like look-around and backreferences

fancy-regex A Rust library for compiling and matching regular expressions. It uses a hybrid regex implementation designed to support a relatively rich

Rust implementation of PowerSession, with new features and enhancements

PowerSession Record a Session in PowerShell. PowerShell version of asciinema based on Windows Pseudo Console(ConPTY) This is a new Rust implemented ve

Estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from digital audio signals.
Estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from digital audio signals.

estratto 〜 An Audio Feature Extraction Library estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from

2048 in `tui`, just for fun
2048 in `tui`, just for fun

TUI 2048 - Have a relax at anytime - 😎 ^_^ How to run repo clone this repo, git clone https://github.com/WanderHuang/game-2048-tui.git cd game-2048-t

Comments
  • Scrool Bars

    Scrool Bars

    Hi! I'd like to ask you to put scroll bars on the particle window, and a scroll bar on the settings window. I've added several particle colors (about 7), but I don't know how to add a scroll bar so I can see all the settings. I also increased the simulation space to 2000x2000 but the particles are out of view. I should be able to either zoom or have scroll bars to the simulation space. Can you do these? I can make a small donation towards these requirements.

    opened by KhadrasWellun 0
Owner
Chevy Ray Johnston
I'm a video game programmer, designer, artist, and writer. Creator of Ikenfell: http://ikenfell.com
Chevy Ray Johnston
Mod for pxtone Collage that adds some shiny features

ptcMod Mod for pxtone Collage that adds some shiny features READ THIS FIRST The program is extremely invasive to ptCollage. This project makes extensi

David M. 6 Sep 17, 2022
A run-codes cli front end with some extra features

run-cli Run-cli A run-codes cli front end with some extra features Report Bug · Request Feature Table of Contents About The Project Built With Getting

Matheus Vieira 13 Nov 16, 2022
Lightweight alternative Discord client with a smaller footprint and some fancy extensible features.

Dorion Dorion is an alternative Discord client aimed and lower-spec or storage-sensitive PCs that supports themes, plugins, and more! Table of Content

SpikeHD 20 Jan 2, 2023
Simple low-level web server to serve file uploads with some shell scripting-friendly features

http_file_uploader Simple low-level web server to serve file uploads with some shell scripting-friendly features. A bridge between Web's multipart/for

Vitaly Shukela 2 Oct 27, 2022
Some Steam patches, fixing broken Steam features on Asus Rog Ally

Ally Steam Patches Ally Steam Patches is a tool designed to enhance your Steam experience by applying patches to the Steam client. Installation To ins

MIkhail Kozlov 2 Jul 10, 2023
Some Steam patches, fixing broken Steam features on Asus Rog Ally

⚙️ Steam Patch Steam Patch is a tool designed to enhance your Steam experience by applying patches to the Steam client. ?? Installation To install Ste

MIkhail Kozlov 3 Jul 18, 2023
GitHub CLI extension to search some repos interactively.

gh activity GitHub CLI extension to search some repos interactively. It's wrapper to build gh command provided by GitHub CLI, it could search more eas

taka naoga 3 Jul 28, 2023
Rust-based interpreter for the Dreamberd (https://github.com/TodePond/DreamBerd) language

Dreamberd.rs Rust-based interpreter for the Dreamberd language. The full specification for Dreamberd is available at https://github.com/TodePond/Dream

null 16 Jul 2, 2023
ARCHIVED -- moved into the main Embassy repo at https://github.com/embassy-rs/embassy

ARCHIVED - moved into the main Embassy repo https://github.com/embassy-rs/embassy cyw43 WIP driver for the CYW43439 wifi chip, used in the Raspberry P

null 245 Jun 27, 2023
A rust binary that will flip one or more bits of a file (mostly for messing with images for fun).

file-bitflipper A rust binary that will flip one or more bits of a file (mostly for messing with images for fun). Example (bitflipped bentley) Usage $

null 1 Aug 31, 2022