Giter Club home page Giter Club logo

path-finding-visualizer's Introduction

Pathfinding Visualizer

MIT CI

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.

panel1 panel2

Dependencies

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.

  1. Clone this repo.
  2. Make a build directory in the top level project directory: mkdir build && cd build
  3. Compile: cmake .. && make
  4. Run it: ./main.

TODO

Graph-based planners

  • BFS
  • DFS
  • DIJKSTRA
  • A*
  • Bidirectional-A*
  • D*
  • LPA*

Sampling-based planners

  • RRT
  • RRT-Connect
  • RRT*
  • Informed-RRT*
  • FMT*
  • BIT*
  • ABIT*
  • AIT*

Related Publications

  • DIJKSTRA: A Note on Two Problems in Connexion with Graphs
  • A*: A Formal Basis for the Heuristic Determination of Minimum Cost Paths
  • LPA*: Lifelong Planning A*
  • RRT: Randomized kinodynamic planning
  • RRT*: Sampling-based algorithms for optimal motion planning

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.