{"id":23433935,"url":"https://github.com/david-rodden/pathfinder-visualizer","last_synced_at":"2025-04-09T15:48:50.710Z","repository":{"id":269405824,"uuid":"907313870","full_name":"David-Rodden/pathfinder-visualizer","owner":"David-Rodden","description":"An interactive web tool to visualize pathfinding algorithms like A*, Dijkstra, and BFS on a dynamic grid. Select start and end points, place obstacles, and watch the algorithms find the optimal path in real-time.","archived":false,"fork":false,"pushed_at":"2025-01-21T01:33:41.000Z","size":360,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T09:41:39.103Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/David-Rodden.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-12-23T09:59:41.000Z","updated_at":"2025-01-21T01:33:44.000Z","dependencies_parsed_at":"2024-12-23T11:18:47.330Z","dependency_job_id":"3741ea08-8787-46c6-bd0a-ba6e980adf32","html_url":"https://github.com/David-Rodden/pathfinder-visualizer","commit_stats":null,"previous_names":["david-rodden/pathfinder-visualizer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Rodden%2Fpathfinder-visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Rodden%2Fpathfinder-visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Rodden%2Fpathfinder-visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Rodden%2Fpathfinder-visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/David-Rodden","download_url":"https://codeload.github.com/David-Rodden/pathfinder-visualizer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248063253,"owners_count":21041745,"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":[],"created_at":"2024-12-23T11:36:25.362Z","updated_at":"2025-04-09T15:48:50.685Z","avatar_url":"https://github.com/David-Rodden.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Pathfinding Visualizer\n\nWelcome to my **Pathfinding Visualizer** – an interactive tool designed to dynamically showcase popular pathfinding\nalgorithms in action. This project is ideal for learning and demonstrating how various search algorithms navigate\nthrough grids to find the shortest path.\n\n## ✨ Features\n\n- 🎯 **Visualize** pathfinding algorithms in real-time.\n- 🔄 **Bidirectional Pathing** – Speed up search by enabling bidirectional search.\n- 🎨 **Responsive UI** – Sleek and intuitive interface using Material-UI and Tailwind CSS.\n- ⏱️ **Timer** – Track how long each algorithm takes to compute the path.\n\n## 📸 Preview\n\n![Pathfinding Visualizer](public/visualizer_preview.png)\n\n---\n\n## ⚙️ Algorithms Included\n\n- 🔵 **Breadth-First Search (BFS)** – Unweighted, guarantees shortest path.\n- 🟢 **Depth-First Search (DFS)** – Unweighted, does not guarantee shortest path.\n- 🟡 **Dijkstra's Algorithm** – Weighted, guarantees shortest path.\n- 🔴 **A*** – Weighted, heuristic-based pathfinding.\n- 🔄 **Bidirectional Versions** – Available for all algorithms to boost performance.\n\n---\n\n## 🚧 How It Works\n\n- **Select** an algorithm from the dropdown.\n- **Enable** the bidirectional switch (optional).\n- **Start Pathfinding** – Visualize the algorithm finding the shortest path.\n- **Reset Grid** to try another algorithm.\n\n---\n\n## 🛠️ Installation\n\n```bash\n# Clone the repository\ngit clone git@github.com:David-Rodden/pathfinder-visualizer.git\n\n# Navigate to the project directory\ncd pathfinding-visualizer\n\n# Install dependencies\nnpm install\n\n# Run the development server\nnpm run dev\n```\n\n---\n\n## 🎨 Customization\n\nWant to tweak the visualizer to your liking? Here are a few quick tips:\n\n- **Grid Size**  \n  Modify the grid size by adjusting the `GRID_SIZE` variable in `Grid.tsx`.\n  ```\n  const GRID_SIZE = 20;  // Change this to resize the grid\n  ```\n\n- **Obstacle Density**  \n  Customize the obstacle generation by tweaking the `Math.random()` threshold in `generateGrid()`.\n  ```\n  const newGrid: TileType[][] = Array.from({ length: GRID_SIZE }, () =\u003e\n      Array.from({ length: GRID_SIZE }, () =\u003e (Math.random() \u003c 0.3 ? 'blocked' : 'free')),\n  );\n  ```\n  Lowering the value reduces obstacles, while raising it creates denser grids.\n\n- **Algorithm Defaults**  \n  Set the default algorithm by modifying the state in `Home.tsx`:\n  ```\n  const [algorithm, setAlgorithm] = useState\u003cAlgorithmType\u003e('bfs');\n  ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-rodden%2Fpathfinder-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavid-rodden%2Fpathfinder-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-rodden%2Fpathfinder-visualizer/lists"}