{"id":21988955,"url":"https://github.com/jkeresman01/pathfinding-visualizer","last_synced_at":"2025-10-04T18:13:55.045Z","repository":{"id":241602079,"uuid":"807195240","full_name":"jkeresman01/Pathfinding-visualizer","owner":"jkeresman01","description":"Visualization tool for path finding algorithms(BFS, DFS, Dijkstra, A*)","archived":false,"fork":false,"pushed_at":"2024-05-28T19:34:01.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-29T08:13:52.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jkeresman01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-28T16:30:29.000Z","updated_at":"2024-05-29T08:13:56.171Z","dependencies_parsed_at":"2024-05-29T08:13:55.784Z","dependency_job_id":"f8f8aa7a-c314-4bff-98e5-c79584744575","html_url":"https://github.com/jkeresman01/Pathfinding-visualizer","commit_stats":null,"previous_names":["jkeresman01/pathfinding-visualizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jkeresman01/Pathfinding-visualizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkeresman01%2FPathfinding-visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkeresman01%2FPathfinding-visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkeresman01%2FPathfinding-visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkeresman01%2FPathfinding-visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jkeresman01","download_url":"https://codeload.github.com/jkeresman01/Pathfinding-visualizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkeresman01%2FPathfinding-visualizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278352128,"owners_count":25972894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T19:26:49.748Z","updated_at":"2025-10-04T18:13:55.012Z","avatar_url":"https://github.com/jkeresman01.png","language":"C++","readme":"# Pathfinding Visualizer #\n\nThis tool is designed to visualize various pathfinding algorithms including BFS, DFS, and Dijkstra's algorithm. \n\nIt's built using the SFML library. You can learn more about SFML here: [SFML Documentation](https://www.sfml-dev.org/documentation/2.6.1/).\n\nUpon starting the application, you'll be presented with a menu where you can choose between the following modes:\n- Maze Solving\n- Wall Building\n\n## Available Options ##\n\n| Key Combination            | Description                                      |\n|----------------------------|--------------------------------------------------|\n| `\u003cR\u003e`                      | Reset the grid                                   |\n| `\u003cD\u003e`                      | Start Depth First Search algorithm               |\n| `\u003cB\u003e`                      | Start Breadth First Search algorithm             |\n| `\u003cJ\u003e`                      | Start Dijkstra's algorithm                       |\n| `Space + Left Mouse Click` | Position the start node                          |\n| `Space + Right Mouse Click`| Position the end node                            |\n| `Enter + Left Mouse Click` | Put walls around the grid                        |\n| `ESC`                      | Return to the start menu                         |\n\n\n## Maze Solving ##\nA maze is a puzzle that involves navigating through a network of paths to find a route from start to finish. There are numerous algorithms for generating mazes based on graph theory, such as Randomized DFS, Iterative Randomized Kruskal's Algorithm, and Iterative Randomized Prim's Algorithm.\n\nFor this tool, a variation of Randomized DFS (Recursive Backtracking) is used. Once your maze is generated, you can start testing out the pathfinding algorithms.\n\n![maze](https://github.com/jkeresman01/Pathfinding-visualizer/assets/165517653/e251d24c-4272-4bcb-b9e9-289fa0650ac9)\n\n## Wall Building ##\nIn this mode, you can build walls and observe how different algorithms navigate around them to find the shortest path.\n\n![cpp](https://github.com/jkeresman01/Pathfinding-visualizer/assets/165517653/95befe9d-0665-430b-baf5-eae45ccf43cb)\n\n### Example with No Walls ###\n![bfs](https://github.com/jkeresman01/Pathfinding-visualizer/assets/165517653/607efa2a-ca2d-4521-9142-38d5c21ca8cf)\n\n### Example with Random Walls ###\n![wall](https://github.com/jkeresman01/Pathfinding-visualizer/assets/165517653/3859c0ab-3664-4077-bc69-f9b7bd8adbb6)\n\n\n## Starting the application ##\n\nIf the version of SFML that you want to install is available in the official repository, then install it using your package manager.\n\nFor example, on Debian, Ubuntu you would do:\n```\nsudo apt-get install libsfml-dev\n```\n\nNow you will need to compile the program:\n```\ng++ -c *cpp\n```\n\nIn case you installed SFML to a non-standard path, you'll need to tell the compiler where to find the SFML headers:\n```\ng++ -std=c++17 -c *cpp -I\u003csfml-install-path\u003e/include\n```\n\nYou must then link the compiled file to the SFML libraries in order to get the final executable.\n```\ng++ *.o -o find-path -lsfml-graphics -lsfml-window -lsfml-system -lsfml-audio\n```\nYou can now execute the compiled program:\n```\n./find-path\n```\n\n### Build and run the game with CMake ###\n\nInstall SFML using your package manager, for example, on Debian, Ubuntu you would do:\n``` shell\nsudo apt-get install libsfml-dev\n```\n\nClone the repository\n``` shell\ngit clone https://github.com/jkeresman01/Pathfinding-visualizer\n```\n\nBuild and Run the game:\n\n``` shell\ncd Pathfinding-visualizer\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n./find-path\n```\n## Useful Resources ##\n\n| Resource                    | Link                                                                                      |\n|-----------------------------|-------------------------------------------------------------------------------------------|\n| Maze Generation Algorithms  | [Wikipedia: Maze Generation Algorithm](https://en.wikipedia.org/wiki/Maze_generation_algorithm) |\n| Dijkstra's Algorithm        | [Wikipedia: Dijkstra's Algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)        |\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkeresman01%2Fpathfinding-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjkeresman01%2Fpathfinding-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkeresman01%2Fpathfinding-visualizer/lists"}