Giter VIP home page Giter VIP logo

asyncastar's Introduction

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!

  1. git pull https://github.com/JeremyBYU/AsyncAstar.git
  2. npm install
  3. npm run test

Then submit any PR's, following the contributing guidelines.

X and Y might be flipped in NDARRAY

asyncastar's People

Contributors

jeremybyu avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.