Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timokoesters/nbodysim
Realtime 3D N-Body-Simulation
https://github.com/timokoesters/nbodysim
Last synced: 9 days ago
JSON representation
Realtime 3D N-Body-Simulation
- Host: GitHub
- URL: https://github.com/timokoesters/nbodysim
- Owner: timokoesters
- Created: 2019-12-03T21:31:41.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-11-04T20:15:48.000Z (about 3 years ago)
- Last Synced: 2024-08-02T14:10:34.001Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 1.31 MB
- Stars: 447
- Watchers: 12
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
N-Body-Simulation
=================Features:
- 3D
- Realtime
- GPU Acceleration using wgpu
- Save configurations in external files (see examples/)Controls:
- Move: WASD, Shift, Space, Move mouse
- Change movement speed: Scroll wheel
- Change simulation speed: 0-6 number keys
- Print fps to console: F## Usage
### From binary
Download the latest executable from [the GitHub release page](https://github.com/timokoesters/nbodysim/releases).
You can either start the binary on its own or give it the path to a configuration as an argument like this:
```bash
$ ./nbodysim examples/two-galaxies.ron
```
You can see example configurations [here](https://github.com/timokoesters/nbodysim/tree/master/examples).### From source
First, make sure you have rust installed. You can find installation instructions [here](https://www.rust-lang.org/tools/install).
```bash
# Clone the repo
$ git clone https://github.com/timokoesters/nbodysim.git
$ cd nbodysim# Compile
$ cargo build --release# Run default config
$ cargo run --release# Run custom config
$ cargo run --release -- examples/two-galaxies.ron
```![two galaxies](media/3dgalaxien01.png)
![two galaxies](media/3dgalaxien02.png)
![two galaxies](media/3dgalaxien03.png)
![two galaxies](media/3dgalaxien04.png)
![two galaxies](media/3dgalaxien05.png)
![two galaxies](media/3dgalaxien06.png)
![two bodies](media/video1.gif)
![two bodies](media/video2.gif)
![two galaxies](media/galaxien1.png)
![two galaxies](media/galaxien2.png)