awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
qiao avatar

qiao/PathFinding.js

0
View on GitHub↗
8,701 星标·1,361 分支·JavaScript·5 次浏览qiao.github.io/PathFinding.js/visual↗

PathFinding.js

PathFinding.js is a grid-based pathfinding library that implements multiple search algorithms for computing optimal routes on 2D maps. It provides implementations of A*, Dijkstra, Breadth-First Search, and Jump Point Search, each designed to find the shortest path between two points on a grid while avoiding obstacles.

The library is built around a pluggable architecture where each pathfinding strategy shares a common interface, allowing algorithms to be selected at runtime without modifying core logic. It includes a configurable diagonal movement rule engine that controls diagonal traversal based on adjacent obstacle counts, and supports heuristic-driven search to balance optimality and performance. Jump Point Search optimization is available for uniform-cost grids, pruning symmetric paths to reduce node expansions in open areas.

The system represents the search space as a 2D grid of walkable and blocked cells, with support for defining obstacles at individual coordinates or across entire matrices. It offers algorithm selection from multiple strategies, diagonal movement control with configurable rules, movement restriction to cardinal directions only, and grid cloning to preserve original maps after pathfinding operations. Node pooling is used to reuse objects across searches, reducing memory allocation overhead in repeated calls.

Features

  • Grid Pathfinding - A library that computes shortest routes on 2D grids using multiple search algorithms like A* and Dijkstra.
  • Jump Point Search Pathfinding - Accelerates pathfinding on uniform-cost grids by skipping large open areas with Jump Point Search.
  • Obstacle Definitions - Allows marking cells as blocked or walkable to define the navigable space for pathfinding.
  • Grid-Based State Representations - Represents the search space as a 2D grid of walkable and blocked cells for pathfinding.
  • Pathfinding Algorithm Selection - Allows selection from multiple pathfinding strategies including A*, Dijkstra, Breadth-First, and Jump Point Search.
  • Grid Pathfinding - Implements Breadth-First Search for finding shortest paths on unweighted grid maps.
  • Dijkstra Implementations - Implements Dijkstra's algorithm for finding shortest paths on weighted or unweighted grids.
  • Diagonal Movement Rules - Controls diagonal movement based on configurable rules evaluating adjacent obstacle counts.
  • Grid Obstacle Definitions - Provides the core mechanism for defining navigable space by marking grid cells as obstacles.
  • Heuristic Graph Search Algorithms - Uses cost-plus-heuristic evaluation functions to guide node expansion in pathfinding algorithms.
  • Jump Point Search Optimizations - Implements Jump Point Search to prune symmetric paths and reduce node expansions on uniform-cost grids.
  • A-Star Search - Implements the A* search algorithm for finding optimal paths on grid-based maps.
  • Pathfinding Algorithms - Implements Dijkstra's algorithm for finding shortest paths by exploring cells in order of increasing distance.
  • Jump Point Search Pathfinding - Speeds up A* by skipping large open areas on uniform-cost grids using Jump Point Search.
  • Cardinal - Disables diagonal traversal so the pathfinder only moves in cardinal directions on the grid.
  • Plugin-Based Architectures - Implements a pluggable architecture where each pathfinding strategy is a swappable module sharing a common interface.
  • Grid Diagonal Movement Rules - Provides a configurable diagonal movement rule engine that controls traversal based on adjacent obstacle counts.

Star 历史

qiao/pathfinding.js 的 Star 历史图表qiao/pathfinding.js 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

PathFinding.js 的开源替代方案

相似的开源项目,按与 PathFinding.js 的功能重合度排序。
  • zhm-real/pathplanningzhm-real 的头像

    zhm-real/PathPlanning

    9,294在 GitHub 上查看↗

    PathPlanning is a library of animated path planning algorithms that includes implementations of A-star, Dijkstra, RRT, and spline-based trajectory generation for both 2D and 3D environments. The project provides a collection of motion planning algorithms that demonstrate how robots can find collision-free paths through continuous spaces, with each algorithm rendered as a step-by-step visual animation to show how the search or tree grows over time. The library covers three main categories of path planning: sampling-based methods like RRT, RRT-star, and BIT-star that grow trees by randomly samp

    Pythonanytime-dstaranytime-repairing-astarastar
    在 GitHub 上查看↗9,294
  • shomali11/go-interviewshomali11 的头像

    shomali11/go-interview

    4,691在 GitHub 上查看↗

    This project is a Go algorithm implementation library designed for technical interview preparation. It provides a collection of common data structures and algorithmic solutions to help practice for software engineering coding assessments. The library includes a custom data structure collection featuring linked lists, stacks, queues, trees, and hash maps. It also implements specific algorithmic solutions, such as A* pathfinding for calculating the shortest path between nodes and a real-time stream processor for computing moving averages and running medians from continuous data inputs.

    Goanswergogolang
    在 GitHub 上查看↗4,691
  • albertlauncher/albertalbertlauncher 的头像

    albertlauncher/albert

    7,945在 GitHub 上查看↗

    Albert is a keyboard launcher that opens files, applications, and runs commands by typing search queries into a search bar. It functions as a keyboard-driven workflow tool, enabling users to navigate their file system, launch installed applications, and execute shell commands without touching a mouse. The launcher processes user input through a plugin-based modular architecture, where functionality is extended by dynamically loaded C++ and Python plugins. Queries are dispatched to all enabled handlers in parallel, with results merged and ranked by a combination of match quality and historical

    C++albertalbertlauncherapplication-launcher
    在 GitHub 上查看↗7,945
  • ckeditor/ckeditor4ckeditor 的头像

    ckeditor/ckeditor4

    5,817在 GitHub 上查看↗

    CKEditor 4 is a browser-based WYSIWYG rich text editor that enables users to create and format HTML content directly in the browser. It operates on a plugin-based architecture with a configurable toolbar system, DOM-based content editing, and an event-driven lifecycle, all delivered through a CDN-based distribution model. The editor supports skin-based theming and includes a legacy plugin compatibility layer for backward compatibility. The editor distinguishes itself as a cross-platform framework that integrates natively with Angular, React, Vue, Electron, Android, and iOS environments. It of

    Rich Text Formatckeditorckeditor4contenteditable
    在 GitHub 上查看↗5,817
查看 PathFinding.js 的所有 30 个替代方案→

常见问题解答

qiao/pathfinding.js 是做什么的?

PathFinding.js is a grid-based pathfinding library that implements multiple search algorithms for computing optimal routes on 2D maps. It provides implementations of A*, Dijkstra, Breadth-First Search, and Jump Point Search, each designed to find the shortest path between two points on a grid while avoiding obstacles.

qiao/pathfinding.js 的主要功能有哪些?

qiao/pathfinding.js 的主要功能包括:Grid Pathfinding, Jump Point Search Pathfinding, Obstacle Definitions, Grid-Based State Representations, Pathfinding Algorithm Selection, Dijkstra Implementations, Diagonal Movement Rules, Grid Obstacle Definitions。

qiao/pathfinding.js 有哪些开源替代品?

qiao/pathfinding.js 的开源替代品包括: zhm-real/pathplanning — PathPlanning is a library of animated path planning algorithms that includes implementations of A-star, Dijkstra, RRT,… shomali11/go-interview — This project is a Go algorithm implementation library designed for technical interview preparation. It provides a… albertlauncher/albert — Albert is a keyboard launcher that opens files, applications, and runs commands by typing search queries into a search… ckeditor/ckeditor4 — CKEditor 4 is a browser-based WYSIWYG rich text editor that enables users to create and format HTML content directly… 1186258278/openclawchinesetranslation — OpenClawChineseTranslation is a framework for building conversational assistants that functions as a cross-platform… aimacode/aima-python — This project is a Python collection of algorithms and data structures that implement the concepts from the Artificial…