pathetic

A highly configurable A* pathfinding library for Java, designed for extensibility through custom node validation and cost processing. Ideal for 3D environments and game development.

187
17
Java

pathetic: The Pathfinding Engine

Ironically named, seriously powerful.


pathetic is a high-performance, battle-tested pathfinding library engineered for demanding, concurrent backend
systems. Forged and hardened in the high-traffic environment of large-scale Minecraft servers, its architecture is
designed from the ground up for server-side performance, scalability, and extensibility.

Itโ€™s the ideal engine for bringing intelligent navigation to your most challenging projects.


Core Features

๐Ÿš€ Extreme Performance

A state-of-the-art A* implementation that leverages advanced data structures like a Fibonacci Heap and closed-set
optimizations (using Bloom filters) to dramatically reduce search times in large spaces.

๐Ÿ›ก๏ธ Battle-Tested Robustness

Engineered and stabilized in live, high-traffic gaming environments, ensuring stability and resilience under heavy load.
Itโ€™s not just tested; itโ€™s proven in combat.

โš™๏ธ Built for Concurrency

The engine is inherently thread-safe, effortlessly handling multiple pathfinding requests simultaneously. This makes it
ideal for use in microservices and other modern backend architectures.

๐Ÿงฉ Highly Extensible

Customize the pathfinding logic with custom NodeValidationProcessor and NodeCostProcessor implementations to model
any environmental rule or cost heuristic you can imagine.


Ideal Use Cases

While its roots are in gaming, pathetic is a top-tier solution for a wide range of professional applications:

Category Application
๐Ÿšš Logistics & Supply Chain Calculate optimal routes for delivery fleets in complex, dynamic environments.
๐Ÿค– Robotics & Automation Power the navigation for autonomous robots in warehouses, factories, or outdoor settings.
๐ŸŽฎ Gaming & Simulation Drive pathfinding for thousands of NPCs in real-time or model complex movement.
๐Ÿ”ฌ Complex Systems Analyze and simulate crowd flow, network traffic, or other path-based systems.

๐Ÿ“– Documentation

For comprehensive guides, API reference, and usage examples, please see the official project wiki. It contains detailed information on everything from installation and basic usage to advanced topics like custom processors.

Pathetic Wiki


The Story Behind the Name

The name โ€œpath-eticโ€ is a tongue-in-cheek reminder of the projectโ€™s humble beginnings. What started as a simple pathfinder quickly evolved into a highly-optimized engine. We kept the name as a testament to that journey and as a humorous contrast to its powerful capabilities.

Pathetic-Bukkit (https://github.com/bsommerfeld/pathetic-bukkit) was also an early part of this project, developed in collaboration with @Ollie, who co-founded Pathetic and contributed significantly in its initial stages.