Skip to content
Elben Shira edited this page May 11, 2014 · 16 revisions

Hi! Thanks for checking out Kapal. The FAQ below is a good way of getting to know what Kapal is all about. Once you’re ready, head over to the API Overview page to start planning paths.

Q: What is Kapal?

Kapal is an open source path-planning library written in Python. Its intended use is algorithms research and navigation tasks in games and robotics. Kapal aims to be:

  • easy to use – Kapal helps you understand and use planning algorithms better.
  • loaded – Kapal comes with many different world representations and algorithms.
  • expendable – implement new world representation and algorithms with ease.
  • fast – run away from pirates with confidence.

Q: What is the state of Kapal?

Kapal is in still in development. It’s usable, but it is definitely not feature complete. Two algorithms are currently implemented: Dijkstra’s and A*. Other Dijkstra-based algorithms (Anytime D*, D* Lite, etc) are to be part of Kapal (once I find some time).

Q: What is Seaship?

Seaship is a GUI-based tool to help you play around with Kapal. Seaship comes with Kapal (they’re in the same git repository). It’s still under development, but here’s a screenshot:

Q: Why Python? Isn’t Python too slow for path-planning?

I couldn’t find a full-featured path-planning library for Python, so I decided to write my own. And yes, Python isn’t as fast as compiled languages, but if you are already using Python for your game or robot, then you probably don’t need the fastest path-planner. If you need a faster (and more complicated) path-planner, check out OOPSMP.

Q: How do you pronounce “kapal”?

kah – pahl.

Q: Where did the word “kapal” come from?

Kapal is Indonesian for boat or ship. I chose this name because sea vessels require path-planning, especially away from pirates, maelstroms, and sea monsters.

Q: Why are you so lazy? Finish this thing already!

I’m a university student. Kapal started as a summer project for comparing the performance of different planning algorithms. I decided to generalize it a bit and release it for public consumption (and criticism, I suppose). I then wrote Seaship to learn about GUI development. In other words, Kapal is a personal project. So please bear with Kapal’s slow progress.

If you wanted to use Kapal to learn about Dijkstra or A*, then Kapal and Seaship is “good enough” at its current state. Play around with Seaship to get a feel for the algorithm. Then, read through the algorithm code in Kapal to figure out what’s going on under the hood. Enjoy yourself!