{"id":21635279,"url":"https://github.com/sarthak-0-sach/pathfinder-visualizer","last_synced_at":"2026-04-18T06:02:01.307Z","repository":{"id":263100773,"uuid":"883271710","full_name":"SartHak-0-Sach/Pathfinder-Visualizer","owner":"SartHak-0-Sach","description":"An interactive web application that demonstrates various pathfinding algorithms in a visual format. This project allows users to see how algorithms explore paths and find the shortest route between points on a grid. The visualizer provides an intuitive way to understand complex algorithms like Dijkstra, A*, BFS, and DFS algorithms. Hope it helps!✨","archived":false,"fork":false,"pushed_at":"2024-11-16T06:30:42.000Z","size":77,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T23:12:53.663Z","etag":null,"topics":["bfs","dfs","djikstra","pathfinder-visualizer","pathfinding-algorithms","reactjs","tailwindcss","typescript","vite-react-typescript"],"latest_commit_sha":null,"homepage":"https://pathfinding-visualizer-plum.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SartHak-0-Sach.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":"2024-11-04T17:10:16.000Z","updated_at":"2024-11-16T06:34:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"38f4e7b9-8f3b-4241-ad6e-0225e0b5bce6","html_url":"https://github.com/SartHak-0-Sach/Pathfinder-Visualizer","commit_stats":null,"previous_names":["sarthak-0-sach/pathfinder-visualizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SartHak-0-Sach/Pathfinder-Visualizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SartHak-0-Sach%2FPathfinder-Visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SartHak-0-Sach%2FPathfinder-Visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SartHak-0-Sach%2FPathfinder-Visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SartHak-0-Sach%2FPathfinder-Visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SartHak-0-Sach","download_url":"https://codeload.github.com/SartHak-0-Sach/Pathfinder-Visualizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SartHak-0-Sach%2FPathfinder-Visualizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31958467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["bfs","dfs","djikstra","pathfinder-visualizer","pathfinding-algorithms","reactjs","tailwindcss","typescript","vite-react-typescript"],"created_at":"2024-11-25T03:20:34.696Z","updated_at":"2026-04-18T06:02:01.268Z","avatar_url":"https://github.com/SartHak-0-Sach.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pathfinder Visualizer 🚀\n\n### Table of Contents 📚\n1. [Overview](#overview)\n2. [Features 🌟](#features-🌟)\n3. [File Structure 📁](#file-structure-📁)\n4. [Technologies Used 🛠️](#technologies-used-🛠️)\n5. [Getting Started 🚀](#getting-started-🚀)\n   - [Prerequisites](#prerequisites)\n   - [Installation](#installation)\n6. [Usage 📘](#usage-📘)\n7. [Algorithm Details 🔍](#algorithm-details-🔍)\n   - [Pathfinding Algorithms](#pathfinding-algorithms)\n   - [Maze Generation Algorithms](#maze-generation-algorithms)\n8. [Contributions 🤝](#contributions-🤝)\n9. [License 📄](#license-📄)\n10. [Acknowledgements 🙏](#acknowledgements-🙏)\n\n## Overview\n\nPathfinder Visualizer is an interactive web application that demonstrates various pathfinding algorithms in a visual format. This project allows users to see how algorithms explore paths and find the shortest route between points on a grid. The visualizer provides an intuitive way to understand complex algorithms like **Dijkstra's**, **A\\***, **Breadth-First Search (BFS)**, and **Depth-First Search (DFS)**.\n\n## Features 🌟\n\n- **Interactive Grid Interface**: Users can create walls, set start and end points, and watch as algorithms find the shortest path.\n- **Multiple Pathfinding Algorithms**:\n  - **Dijkstra's Algorithm**: The shortest path algorithm with weighted edges.\n  - **A\\* Algorithm**: Optimized pathfinding using heuristics.\n  - **BFS**: Explores the shortest path in an unweighted grid.\n  - **DFS**: Explores as far as possible before backtracking.\n- **Maze Generation Algorithms**:\n  - **Recursive Division**: Creates mazes with recursive sub-division.\n  - **Binary Tree**: Simple and fast maze generation.\n  - **Horizontal \u0026 Vertical Division**: Creates structured mazes.\n- **Customizable Speed**: Adjust the speed of the pathfinding visualization.\n- **Responsive Design**: Works seamlessly on desktop and mobile devices.\n- **Built with Modern Technologies**: React, TypeScript, and Tailwind CSS for styling.\n\n## File Structure 📁\n\n```\n/root-directory\n|-- public/                       # Public assets for the application\n|   |-- vite.svg                  # Vite logo\n|\n|-- src/                          # Main source code\n|   |-- assets/                   # Static assets used in the project\n|   |   |-- react.svg             # React logo\n|   |\n|   |-- components/               # React components for the UI\n|   |   |-- Grid.tsx              # Main grid component\n|   |   |-- Nav.tsx               # Navigation bar component\n|   |   |-- PlayButton.tsx        # Play button for starting visualization\n|   |   |-- Select.tsx            # Dropdown select component\n|   |   |-- Tile.tsx              # Tile component representing grid cells\n|   |\n|   |-- context/                  # Context for global state management\n|   |   |-- PathfindingContext.tsx # Context for pathfinding algorithm state\n|   |   |-- SpeedContext.tsx      # Context for speed settings\n|   |   |-- TitleContext.tsx      # Context for title management\n|   |\n|   |-- hooks/                    # Custom React hooks\n|   |   |-- usePathfinding.tsx    # Hook for pathfinding logic\n|   |   |-- useSpeed.tsx          # Hook for speed control\n|   |   |-- useTile.tsx           # Hook for tile operations\n|   |\n|   |-- lib/                      # Library for algorithm implementations\n|   |   |-- algorithms/\n|   |       |-- maze/             # Maze generation algorithms\n|   |       |   |-- binaryTree.ts             # Binary tree maze algorithm\n|   |       |   |-- horizontalDivision.ts     # Horizontal division maze algorithm\n|   |       |   |-- recursiveDivision.ts      # Recursive division algorithm\n|   |       |   |-- verticalDivision.ts       # Vertical division maze algorithm\n|   |       |\n|   |       |-- pathfinding/      # Pathfinding algorithms\n|   |           |-- aStar.ts      # A* algorithm\n|   |           |-- bfs.ts        # Breadth-First Search algorithm\n|   |           |-- dfs.ts        # Depth-First Search algorithm\n|   |           |-- dijkstra.ts   # Dijkstra's algorithm\n|   |\n|   |-- utils/                    # Utility functions for various tasks\n|       |-- animatePath.ts        # Function for animating the path traversal\n|       |-- constants.ts          # Constants used in the application\n|       |-- constructBorder.ts    # Constructs the grid border\n|       |-- createWall.ts         # Function to create walls on the grid\n|       |-- destroyWall.ts        # Function to remove walls from the grid\n|       |-- getUntraversedNeighbours.ts # Helper to get unvisited neighbors\n|       |-- helpers.ts            # Miscellaneous helper functions\n|       |-- heuristics.ts         # Heuristic functions for algorithms\n|       |-- isInQueue.ts          # Checks if a node is in the queue\n|       |-- resetGrid.ts          # Resets the grid to its initial state\n|       |-- runMazeAlgorithm.ts   # Executes selected maze algorithm\n|       |-- runPathfindingAlgorithm.ts # Executes selected pathfinding algorithm\n|       |-- types.ts              # Type definitions used across the app\n|\n|-- App.tsx                       # Main app component\n|-- index.css                     # Global CSS styling\n|-- main.tsx                      # Main entry point for React\n|-- vite-env.d.ts                 # Vite environment type declaration\n|\n|-- .eslintrc.cjs                 # ESLint configuration for code linting\n|-- .gitignore                    # Files and directories to ignore in Git\n|-- LICENSE                       # License for the project\n|-- README.md                     # Project description and instructions\n|-- index.html                    # Main HTML template\n|-- package-lock.json             # Lockfile for npm dependencies\n|-- package.json                  # Project metadata and npm scripts\n|-- postcss.config.js             # PostCSS configuration\n|-- tailwind.config.js            # Tailwind CSS configuration\n|-- tsconfig.app.json             # TypeScript configuration for the app\n|-- tsconfig.json                 # Base TypeScript configuration\n|-- tsconfig.node.json            # TypeScript config for Node environment\n|-- vite.config.ts                # Vite configuration file\n```\n\n### Technologies Used 🛠️\n\n| Technology     | Purpose                                      |\n|----------------|-----------------------------------------------|\n| **React**      | Building the user interface                  |\n| **TypeScript** | Ensuring type safety and improved development |\n| **Tailwind CSS** | Providing efficient, customizable styling  |\n| **Vite**       | Modern and fast development environment       |\n\n## Getting Started 🚀\n\nFollow these steps to run the project locally:\n\n### Prerequisites\n\n- Node.js (version 14.x or above recommended)\n- npm or yarn\n\n### Installation\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/yourusername/pathfinder-visualizer.git\n   cd pathfinder-visualizer\n   ```\n\n2. **Install dependencies**:\n   ```bash\n   npm install\n   ```\n\n3. **Start the development server**:\n   ```bash\n   npm run dev\n   ```\n\n4. **Open your browser** and go to `http://localhost:5173` to view the app.\n\n## Usage 📘\n\n1. **Place the Start and End Points**: Click on the grid to set the start and end nodes.\n2. **Create Walls**: Click and drag on the grid to create walls that the algorithms must navigate around.\n3. **Select an Algorithm**: Use the dropdown to choose a pathfinding or maze generation algorithm.\n4. **Run the Visualization**: Click the play button to watch the algorithm in action.\n5. **Adjust Speed**: Use the provided controls to change the visualization speed.\n\n## Algorithm Details 🔍\n\n- **Dijkstra's Algorithm**: Finds the shortest path in weighted graphs; guaranteed to find the shortest path.\n- **A\\* Algorithm**: Utilizes heuristics to speed up pathfinding while ensuring the shortest path.\n- **BFS (Breadth-First Search)**: Explores all nodes level by level; optimal for unweighted grids.\n- **DFS (Depth-First Search)**: Explores as far as possible along each branch before backtracking; not optimal for shortest paths.\n\n### Maze Generation Algorithms\n\n- **Recursive Division**: Creates complex mazes using a recursive approach.\n- **Binary Tree**: Simple method for generating basic mazes.\n- **Horizontal \u0026 Vertical Division**: Structured maze creation with controllable complexity.\n\n## Contributions 🤝\n\nContributions are welcome! If you find any bugs, have suggestions, or want to add new features, feel free to open an issue or submit a pull request.\n\n## License 📄\n\nThis project is licensed under the [MIT License](./LICENSE).\n\n## Acknowledgements 🙏\n\nSpecial thanks to the developers and educators who inspired this project and the pathfinding and maze algorithms research community.\n\n**Happy Pathfinding!** 🌟\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarthak-0-sach%2Fpathfinder-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarthak-0-sach%2Fpathfinder-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarthak-0-sach%2Fpathfinder-visualizer/lists"}