Skip to content

bsommerfeld/pathetic

Repository files navigation

pathetic

Mentioned in Awesome Java Build Status JitPack License

A high-performance, concurrent pathfinding library for Java.

pathetic is a thread-safe pathfinding engine built for demanding, server-side applications. Originally developed for large-scale game servers, it uses an optimized A* algorithm to deliver fast and scalable results in complex environments.


Core Features

  • High-Performance A*: Utilizes a Fibonacci Heap for the open set and optional Bloom filters for the closed set, ensuring excellent performance in large search spaces.
  • Concurrent by Design: Fully thread-safe to handle multiple pathfinding requests simultaneously, making it ideal for microservices and other backend systems.
  • Highly Extensible: Customize pathfinding behavior using NodeValidationProcessor and NodeCostProcessor to model complex rules and traversal costs.

Use Cases

While born from gaming, pathetic is suited for any problem requiring efficient graph traversal:

  • Logistics & Robotics: Calculate optimal routes for delivery fleets or autonomous agents.
  • Game Development: Power NPC navigation in real-time simulations.
  • Network & System Simulation: Model and analyze data flow or crowd movement.

Documentation & Usage

For installation instructions, getting started guides, and the complete API reference, please visit the official project wiki.


Project Origin

The name "pathetic" is a tongue-in-cheek nod to the project's humble beginnings. The library was co-founded and initially developed with @Ollie.