quadcopter_with_PID_controller
Quadcopter dynamics simulation with two proportional–integral–derivative (PID) controllers that adjust the motor speeds…
Advanced, modular, coupled geomorpohology simulator for real-time procedural terrain generation.
git clone https://github.com/weigert/SoilMachine.gitweigert/SoilMachineAdvanced, modular, coupled geomorpohology simulator for real-time procedural terrain generation in C++.
Visualization with TinyEngine.
Article: An Efficient Data Structure for 3D Multi-Layer Terrain and Erosion Simulation
SoilMachine is a unified geomorphology simulator for procedural terrain. It represents the culmination of a lot of work on particle-based transport and erosion systems (hydraulic and wind). Most importantly, a new layered terrain data structure allows for modeling surface and sub-surface phenomena based on particle transport with multiple soil types, which exceeds the functionality of voxels.
SoilMachine is written from scratch in very little code and visualized with TinyEngine using a technique called vertex pooling, which obviates the need to remesh the heightmap (ever). It is designed to be modular and expandable.
This repo is currently in development and will probably not be done soon but I am publishing it so updates can be followed live for anybody who is interested.
Tested on Ubuntu20 LTS. See below for how to build.
Reading:
<> optional
[] required
Run:
./soilmachine <options/flags>
Options:
-SEED [#] Run using sed. No seed = random
-soil [file] Specify relative path to .soil file
-oc [file] Export color map to .png file at relative path (on program exit)
-oh [file] Export height map to .png file at relative path (on program exit)
Note: More options and flags are planned in the future. See the todo.md file for more information.
ESC: Toggle GUI
P: Toggle Pause (Paused by default!!!)
Scroll-Y: Zoom
Scroll-X: Camera Angle
Arrow Keys: Camera Orientation
C / V: Move Camera Up / Down
WASD: Move Camera in Plane
In the GUI, a number of things can be done, including Re-Seeding the map, setting erosion parameters, tuning the soil properties without re-launching the program and tuning the visualization. More features are planned in the future (see todo.md for more information).
SoilMachine is visualized using TinyEngine. Install TinyEngine using the instructions at the repo:
https://github.com/weigert/TinyEngine
TinyEngine is the only dependency (besides sub-dependencies).
Once that works, build SoilMachine using the makefile and run in place (no install):
cd ~
git clone https://github.com/weigert/SoilMachine
cd SoilMachine
make all
./soilmachine
Implemented
Planned
Some example outputs:
MIT License
more like this
Quadcopter dynamics simulation with two proportional–integral–derivative (PID) controllers that adjust the motor speeds…
A sandbox game created in C using raylib, featuring various types of falling pixels, such as sand or water. (more in th…
A crowd simulation and visualization demo implemented in Unity using Dijkstra Distance Field and simplified version of…
search projects, people, and tags