aeoniv / 3D-PathFinder

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

3D-Pathfinder

3D-Pathfinder is a fluid 3D, easy to understand and a new way to visualize pathfinding algorithms built on Three.js.

3d2

Live Demo

Find the live demo here

Features!

Algorithms

Breadth-First Search

BFS is a pathfinding algorithm where it starts traversing from a selected node (source or starting node) and traverses the graph layerwise thus exploring the neighbour nodes first. ☑ Shortest path

Depth-First Search

DFS algorithm is a recursive algorithm that uses the idea of backtracking. It involves exhaustive searches of all the nodes by going ahead, if possible, else by backtracking. ☒ Shortest path

Dijkstra’s algorithm

Dijkstra's Algorithm allows you to calculate the shortest path between one node (source or starting node) and every other node in the graph. ☑ Shortest path

A* Search algorithm

A* Search algorithm is a modification of Dijkstra’s Algorithm that is optimized for a single destination and it is one of the best and popular technique used in path-finding. ☑ Shortest path

Bi-directional BFS

Bidirectional search is a graph search algorithm that finds a shortest path from an initial vertex to a goal vertex in a directed graph. It runs two simultaneous searches: one forward from the initial state, and one backward from the goal, stopping when the two meet. ☑ Shortest path

Maze Generation

Random maze generator has been implemented which generates (walls/obstacles) randomly.

Installation

3d-Pathfinder requires Node.js to run. First, clone the repository to your preferred location. Then cd into the cloned directory and run

$ cd /path/to/cloned/directory
$ npm install

Once, the dependencies are installed, run

$ npm start

You now have the live server started at your localhost and can now play around with the code and application.

Technologies Used

  • ReactJS
  • ThreeJS

Attributions

My main inspiration to develop this project was Clément Mihailescu's Pathfinding project.

Todos

  • Add more Algorithms
  • Add more Maze generation algorithms
  • Add new shape (e.g. circle, instead of cube) for visualization

About


Languages

Language:JavaScript 93.0%Language:HTML 4.0%Language:CSS 3.0%