A visualization tool for various pathfinding algorithms.

Overview

Pathfinding Visualizer

Welcome to Pathfinding Visualizer! I built this application because I was fascinated by pathfinding algorithms, and I wanted to visualize them in action. I hope that you enjoy playing around with this visualization tool just as much as I enjoyed building it. You can access it here (use Google Chrome!): https://clementmihailescu.github.io/Pathfinding-Visualizer/

Meet the Algorithms

This application supports the following algorithms:

Dijkstra's Algorithm (weighted): the father of pathfinding algorithms; guarantees the shortest path

A Search* (weighted): arguably the best pathfinding algorithm; uses heuristics to guarantee the shortest path much faster than Dijkstra's Algorithm

Greedy Best-first Search (weighted): a faster, more heuristic-heavy version of A*; does not guarantee the shortest path

Swarm Algorithm (weighted): a mixture of Dijkstra's Algorithm and A*; does not guarantee the shortest-path

Convergent Swarm Algorithm (weighted): the faster, more heuristic-heavy version of Swarm; does not guarantee the shortest path

Bidirectional Swarm Algorithm (weighted): Swarm from both sides; does not guarantee the shortest path

Breath-first Search (unweighted): a great algorithm; guarantees the shortest path

Depth-first Search (unweighted): a very bad algorithm for pathfinding; does not guarantee the shortest path

On top of the pathfinding algorithms listed above, I implemented a Recursive Division Maze Generation algorithm.

More about the Swarm Algorithm

The Swarm Algorithm is an algorithm that I - at least presumably so (I was unable to find anything close to it online) - co-developed with a good friend and colleague, Hussein Farah. The algorithm is essentially a mixture of Dijkstra's Algorithm and A* Search; more precisely, while it converges to the target node like A* , it still explores quite a few neighboring nodes surrounding the start node like Dijkstra's. The algorithm differentiates itself from A* through its use of heuristics: it continually updates nodes' distance from the start node while taking into account their estimated distance from the target node. This effectively "balances" the difference in total distance between nodes closer to the start node and nodes closer to the target node, which results in the triangle-like shape of the Swarm Algorithm. We named the algorithm "Swarm" because one of its potential applications could be seen in a video-game where a character must keep track of a boss with high priority (the target node), all the while keeping tracking of neighboring enemies that might be swarming nearby.

You might also like...
An educational android app that provides services like notes, online videos and visualization calculator to learn and understand deep concepts of DSA.
An educational android app that provides services like notes, online videos and visualization calculator to learn and understand deep concepts of DSA.

Aldo ALDO is a free education app for the young programmers who are desiring to master the concepts of Data Structure and Algorithms. ALDO offers prac

CPU Scheduler Visualization written in Kotlin TornadoFX

CPU-Scheduler-Visualization CPU Scheduler Visualization written in Kotlin TornadoFX 목적 CPU Secheduling algorithm을 시각화해주는 프로그램입니다. FCFS, NonPreemptiveS

Data2Viz port/wrapper for data visualization with Jetpack Compose
Data2Viz port/wrapper for data visualization with Jetpack Compose

Collage Data2Viz port/wrapper for Jetpack Compose. It is a visualization library, same as Data2Viz and d3. This is obviously not an official Data2Viz

Algorithms and data structures in Kotlin.
Algorithms and data structures in Kotlin.

Here you can find the most common algorithms and data structures written in Kotlin. The goal of this project is to create the most eloquent implementa

An Android application which visualizes some of the famous Algorithms for finding path from Source to Destination in a 2D grid.

Pathfinding-Visualizer An Android application which visualizes some of the famous Algorithms for finding path from Source to destination in a 2D grid.

This repo contains my solutions to some data structures and algorithms problems on leetcode.

DSA Playground This repository contains solutions to dsa problems in kotlin. NOTE: This file will get long, please consider using CtrlF DSA With Kun

Wordle-solver - Evaluates the efficacy of Wordle algorithms

Wordle Solver Wordle solver harness that evaluates the efficacy of any given alg

Chat App is built to demonstrate a simple end-to-end chat encryption using RSA and AES algorithms
Chat App is built to demonstrate a simple end-to-end chat encryption using RSA and AES algorithms

End-to-End Encrypted Chat 🔒 Chat App is built to demonstrate a simple end-to-end chat encryption using RSA and AES algorithms Built With ⚒️ Jetpack C

Kotlin Algorithms and Design Patterns
Kotlin Algorithms and Design Patterns

Kotlin Algorithms and Design Patterns This repository lists the most common algorithms, data structures, and design patterns written in the Kotlin pro

Bring together all of the remarkable Computer Graphics Algorithms in one place 🚀
Bring together all of the remarkable Computer Graphics Algorithms in one place 🚀

Compose Computer Graphics Playground 🚀 "There was an idea to bring together all of the remarkable Computer Graphics Algorithms in one place. And keep

andle is an Android tool help you sync dependencies, sdk or build tool version.

andle andle is an Android tool to help you sync dependencies, SDK or build tool version. Installation Simple install by pip: $ sudo pip install andle

This tool patches the CVE-2021-44228 Log4J vulnerability present in all minecraft versions NOTE THIS TOOL MUST BE RE-RUN after downloading or updating versions of minecraft as its not a perminent patch

WARNING THIS EXPLOIT EFFECTS BOTH CLIENTS AND SERVERS There is currently a exploit going around that affects all versions of Minecraft this exploit ab

Framework for dispatching various procedure on update application.
Framework for dispatching various procedure on update application.

Fit Framework for dispatching various procedure on update application. Photo License CC by NC-ND Attention This library is under development so API ma

Quality-Tools-for-Android 7.5 0.0 L5 Java This is an Android sample app + tests that will be used to work on various project to increase the quality of the Android platform.
Quality-Tools-for-Android 7.5 0.0 L5 Java This is an Android sample app + tests that will be used to work on various project to increase the quality of the Android platform.

Quality Tools for Android This is an Android sample app + tests that will be used to work on various project to increase the quality of the Android pl

Helper object for injecting typeface into various text views of android.

TypefaceHelper Helper object for injecting typeface into various text views of android. Overview We can use various custom typefaces asset for any tex

Implementation of ImageView for Android that supports zooming, by various touch gestures.
Implementation of ImageView for Android that supports zooming, by various touch gestures.

PhotoView PhotoView aims to help produce an easily usable implementation of a zooming Android ImageView. [ Dependency Add this in your root build.grad

A view abstraction to provide a map user interface with various underlying map providers
A view abstraction to provide a map user interface with various underlying map providers

AirMapView AirMapView is a view abstraction that enables interactive maps for devices with and without Google Play Services. It is built to support mu

Various DialogFragments for Android.

Android-DialogFragments Various DialogFragments for Android. DialogFragments(traditional and material style) AlertDialogFragment ProgressDialogFragmen

Access and process various types of personal data in Android with a set of easy, uniform, and privacy-friendly APIs.
Access and process various types of personal data in Android with a set of easy, uniform, and privacy-friendly APIs.

PrivacyStreams PrivacyStreams is an Android library for easy and privacy-friendly personal data access and processing. It offers a functional programm

Comments
  • Made some changes to improve user experience. Read the comment for more.

    Made some changes to improve user experience. Read the comment for more.

    First of all... Big fan Clement! :)

    I love this project. But, when I was checking out the project, it felt a little buggy while creating walls. So I've added these 3 features to make it better:

    1. Disabled right click context menu within board. Previously, right click on the board would open up the context menu. This is unnecessary and so it is disabled.
    2. Separated left and right mouse button functionalities. Previously, both left and right mouse buttons could add as well as delete walls. Now, left mouse button will only be able to add walls and right mouse button will only be able to delete walls.
    3. Added mouseup and mousedown functions on body. Previously, when creating walls, it seemed to be kind of buggy. Also, when the user drags out of the page, on bringing the cursor back, it would continue to create walls. Now, mouseup function has been added to body to reduce buggy feeling and also, mouseleave function has been added to stop creating walls after leaving the page and returning back. NOTE: This was only done for normal elements and NOT special elements.

    Let me know if I need to change anything before this can be merged. Cheers :)

    opened by Nirmal-Palanichamy 1
  • Thank you for this tool

    Thank you for this tool

    Hello

    Just a quick message to thank you for this tool. I used it yesterday for a talk about Algorithms and Heuristics. A lot of people love it.

    Have a nice day

    opened by aloisdg 0
Owner
Clément Mihailescu
Co-Founder & CEO, AlgoExpert | Ex-Google & Ex-Facebook Software Engineer
Clément Mihailescu
An Android application which visualizes some of the famous Algorithms for finding path from Source to Destination in a 2D grid.

Pathfinding-Visualizer An Android application which visualizes some of the famous Algorithms for finding path from Source to destination in a 2D grid.

Pranjal Mishra 37 Aug 8, 2022
Allows you to launch various /hidden/ options of the Oculus Quest (2)

vrLauncher Allows you to launch various /hidden/ options of the Oculus Quest (2) Using it Sideload the apk onto your Oculus Quest (2) Choose the optio

Bastian 153 Dec 25, 2022
Tooltip Bubble is an information bubble creator tool.

TooltipBubble It's a simple Tooltip. Installing Add the code block to your project allprojects { repositories { jcenter()

Ally Bros Corporation 4 Oct 4, 2022
Visualizes various sorting algorithms

Sorting Visualizer ?? Description Visualizing sorting algorithms ?? for learning

Vivek Sharma 13 Aug 1, 2022
Collection of various algorithms in mathematics, computer science etc implemented in Kotlin for educational purposes.

The Kotlin Algorithms Implementation of different algorithms and data structures using Kotlin lang Overview The repository is a collection of open-sou

Oleksii Shtanko 9 Aug 1, 2022
AnyChart Android Chart is an amazing data visualization library for easily creating interactive charts in Android apps. It runs on API 19+ (Android 4.4) and features dozens of built-in chart types.

AnyChart for Android AnyChart Android Charts is an amazing data visualization library for easily creating interactive charts in Android apps. It runs

AnyChart 2k Jan 4, 2023
A Music Player for android that renders beautiful DNA(Visualization) of the currently playing music.

MusicDNA - A Music Player like no other A Music Player for android that makes use of the Visualizer Class for rendering a beautiful DNA (Visualization

Harjot Singh Oberai 2.8k Jan 5, 2023
An open source Android library that allows the visualization of large images with gesture capabilities

ByakuGallery ByakuGallery is an open source Android library that allows the visualization of large images with gesture capabilities. This lib is based

Diego Lima 311 Dec 4, 2022
Android Tableau library supports variety of graphs which developers simply integrate visualization reports on Android application.

Android Tableau Library Android Tableau library supports variety of graphs which developers simply integrate visualization reports on Android applicat

Sung Hyun 54 Jan 1, 2023
Detailing about the data provided (Data Visualization Application)

Detailing about the data provided (Data Visualization Application): • In the application, the data provided in the CSV is used for the Scatter plot cr

Neha Sharma 0 Nov 20, 2021