{"id":15015584,"url":"https://github.com/tekian/path-finder","last_synced_at":"2025-04-12T09:40:32.819Z","repository":{"id":176522293,"uuid":"143317048","full_name":"tekian/path-finder","owner":"tekian","description":"Visualization tool to demonstrate how different search algorithms work.","archived":false,"fork":false,"pushed_at":"2018-08-06T20:31:22.000Z","size":617,"stargazers_count":6,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-26T04:35:00.201Z","etag":null,"topics":["artificial-intelligence","astar-algorithm","dijkstra-algorithm","kivy","kivy-framework","pathfinder","pathfinding","python","python3","tekian-ai"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tekian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-08-02T16:02:49.000Z","updated_at":"2023-08-15T09:59:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"0b943526-fd76-4518-b809-32b243c88a3c","html_url":"https://github.com/tekian/path-finder","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"5ad4d99b08ff90c9149468f9aa2ff5cbdd94451e"},"previous_names":["tekian/path-finder"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tekian%2Fpath-finder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tekian%2Fpath-finder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tekian%2Fpath-finder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tekian%2Fpath-finder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tekian","download_url":"https://codeload.github.com/tekian/path-finder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248548989,"owners_count":21122808,"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","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":["artificial-intelligence","astar-algorithm","dijkstra-algorithm","kivy","kivy-framework","pathfinder","pathfinding","python","python3","tekian-ai"],"created_at":"2024-09-24T19:47:39.566Z","updated_at":"2025-04-12T09:40:32.794Z","avatar_url":"https://github.com/tekian.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Path Finder\n\nPath Finder is a visualization tool to demonstrate how different search algorithms work. I've created it while studying course _Intro to Artificial Intelligence_ (https://classroom.udacity.com/courses/cs271). UI is built on Kivy framework (https://kivy.org/#home).\n\n## Installation\n\nInstall in two steps. Clone the repository and run provided script:\n```\ngit clone https://github.com/tekian/path-finder.git\ncd path-finder\n.\\pathfinder.bat  (Windows)\n./pathfinder.sh   (Linux)\n```\n\nProvided scripts execute following steps:\n- Checks you have Python 3 installed (searches in `PATH`)\n- Installs required dependencies (from [requirements.txt](./requirements.txt))\n- Starts the application (by running [src/pathfinder.py](./src/pathfinder.py))\n\n(Nothing else. No need to be paranoid. Read sources [here](./pathfinder.bat) and [here](./pathfinder.sh).)\n\n## Running\n\nRun `pathfinder.sh` or `pathfinder.bat` depending on your platform. See [Installation](#installation).\n\n![Video](./docs/path-finder-video.gif)\n\n## Features\n\nApplication supports two modes of map generation:\n- **Grid Map** – You can provide `X`, `Y` and optionally how much `% Edges to keep` (edge cost equals 1)\n- **File Spring Map** – Red from file ([example](./src/romania.json)) \u0026 positions generated by [Fruchterman-Reingold algorithm](https://networkx.github.io/documentation/networkx-1.9/reference/generated/networkx.drawing.layout.spring_layout.html) (Spring)\n\nIt supports following search algorithms:\n- [A* Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm) – Implementation at [a_star_finder.py](./src/pathfinding/algorithms/a_star_finder.py)\n- [Greedy First Search](https://en.wikipedia.org/wiki/Greedy_algorithm) – Implementation at [greedy_finder.py](./src/pathfinding/algorithms/greedy_finder.py)\n- [Breadth First Search](https://en.wikipedia.org/wiki/Breadth-first_search) – Implementation at [bfs_finder.py](./src/pathfinding/algorithms/bfs_finder.py)\n- [Dijkstra (Least cost first search)](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm) – Implementation at [dijkstra.py](./src/pathfinding/algorithms/dijkstra_finder.py)\n\n(Code wise, these algortihm differ only in calculated cost function. See the [code](./src/pathfinding/algorithms) for details.)\n\nYou can choose from two playback modes:\n- **Step** – You press `Step` every time you want to move forward with the search\n- **Continuous** – You can control the speed \u0026 `Start`/`Stop` the algorithm\n\nLast but not least, you can control _Show options_ of nodes and edges at any time:\n- **Show node names** - Name appears on top of the node\n- **Show node costs** - Cost appears below the node\n- **Show edge costs** - Cost appears in the middle of edge and below the line\n\n## Contributions\n\nContributions are welcome. If you have time, passion and idea, go ahead and create a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftekian%2Fpath-finder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftekian%2Fpath-finder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftekian%2Fpath-finder/lists"}