Skip to content

A path in time. Any-angle pathfinding that handles moving obstacles and shifting goals.

Notifications You must be signed in to change notification settings

wildbook/shorai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Shorai

A simple yet flexible any-angle pathfinding library.


Uses a modified variant of Lazy Theta* to reach performance goals while still being accurate.

The algorithm itself is in pathfind.rs, is relatively small, and is extensively commented. If you're curious how the crate or algorithm works I'd recommend reading through the comments in that file.

Benchmarks

The benchmark relies on a fixed-seed random state.

To run the benchmarks, run cargo bench --features rand in shorai/

Demo

The demo involves time as part of the pathfinding algorithm, just to show that it's possible to.

All paths are precalculated and not modified on-the-fly. This means that the obstacle movements need to be known when the algorithm runs, which is the case for this demo.


To run the demo, run cargo run --release -- --help in demo/render/. Running without --release takes a long time.

As an example command, try cargo run --release -- --missiles 100 --seed 6424138677911309346:

out.mp4

The output ends up as individual files in an out/ folder to simplify debugging.

To merge them into a video using ffmpeg, run ffmpeg -r 20 -i out/step_%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4.

About

A path in time. Any-angle pathfinding that handles moving obstacles and shifting goals.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages