@jeremybyu/asyncastar
v0.0.12
Published
Asynchronous A* Path Planner
Downloads
22
Readme
AsyncAStar
This module allows one to execute A* search in an Asynchronous pattern. It is very similar to EasyStar, however this module can be used for more than 2D planning for game development as EasyStar is designed for. It allows one to specify a generic Generate Successors
function, not needing to know anything about the graph. In other words, this module only cares about the algorithm of A*, not the graph, which is from your specific problem domain. It could be 2D, 3D, or however many dimensions you may need (though A* performance suffers greatly at higher dimensions).
Getting Started
Install : npm install asyncastar
Simple 2D or 3D Path Planning
Since most people will probably do 2D or 3D path planning, there is a simple wrapper for AsyncAStar
called
createPlanner
that assumes a 3D discretized space using ndarray
as the data holder of this space. The demonstration below shows 3D planning within a plane (basically 2D).
import { createPlanner} from '../lib/util';
const start = [0, 0, 0]
const goal = [2, 2, 0]
const maze = ndarray([0,0,0,0,0,0,0,0,0], [3,3,1]) // Empty 3X3X1 Maze
planner = createPlanner(maze, mazeTest.start, mazeTest.goal);
let result = planner.searchAsync(1) // only 1 expansion
console.log(result)
result = planner.searchAsync(3) // allow 3 more expansions
console.log(result)
Full API: https://jeremybyu.github.io/AsyncAstar/
Issues/Bugs/Feature Requests
Feel free to file any issues (bugs), or feature requests. Please follow the Issue template however.
Development
First download, pull, and run tests. Make sure its all working!
git pull https://github.com/JeremyBYU/AsyncAstar.git
npm install
npm run test
Then submit any PR's, following the contributing guidelines.
X and Y might be flipped in NDARRAY