path-finding-visualizer
path-finding-visualizer copied to clipboard
A tool for visualizing numerous path planning algorithms.
Pathfinding Visualizer
A tool for visualizing numerous pathfinding algorithms in two dimensions.
This project involves minimal implementations of the popular planning algorithms, including both graph-based and sampling-based planners. We provide an easy-to-use GUI to control the animation process and explore different planner configurations. Current implementation of the project involves four search-based planning algorithms: BFS, DFS, DIJKSTRA and A-Star and two sampling-based planners: RRT and RRT*. The project extensively uses SFML, ImGui and Modern C++ features such as smart pointers, lamda expressions along with multi-threading concepts.
Dependencies
- cmake >= 3.14
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
Basic Build Instructions
The project depends on SFML, Dear ImGui and ImGui-SFML. However, you are not required to install external dependencies by yourself. The following build instructions will manage all the necessary external dependencies for you.
- Clone this repo.
- Make a build directory in the top level project directory:
mkdir build && cd build
- Compile:
cmake .. && make
- Run it:
./main
.
TODO
Graph-based planners
- [x] BFS
- [x] DFS
- [x] DIJKSTRA
- [x] A*
- [ ] Bidirectional-A*
- [ ] D*
- [ ] LPA*
Sampling-based planners
- [x] RRT
- [ ] RRT-Connect
- [x] RRT*
- [ ] Informed-RRT*
- [ ] FMT*
- [ ] BIT*
- [ ] ABIT*
- [ ] AIT*