Pathetic – Java pathfinding: 10k concurrent paths in ~7ms
It started with drones. My co-founder and I were building a Minecraft plugin where drones had to navigate through unloaded chunks - terrain that doesn't even exist in memory yet. No existing library had any concept of it, which led to drones being stuck in non-existence. Sloppy at first, tightly coupled to Minecraft's API, we built our own. But somewhere along the way we realized: the problem wasn't Minecraft. It was how Java pathfinding is built in general - object-heavy, GC-hostile, and single-threaded by assumption. So I split the project. The core became its own thing: pure Java 8+ for…
What it does
In the maker’s words, at launch
It started with drones. My co-founder and I were building a Minecraft plugin where drones had to navigate through unloaded chunks - terrain that doesn't even exist in memory yet. No existing library had any concept of it, which led to drones being stuck in non-existence. Sloppy at first, tightly coupled to Minecraft's API, we built our own. But somewhere along the way we realized: the problem wasn't Minecraft. It was how Java pathfinding is built in general - object-heavy, GC-hostile, and single-threaded by assumption. So I split the project. The core became its own thing: pure Java 8+ for compatibility, featuring a zero-allocation primitive heap instead of a theoretically optimal FibonacciHeap, because pointer chasing and cache misses were unacceptable. 100% async, even in a single-threaded, async-hating Minecraft hell, and a processor pipeline providing full extensibility. No game engine, yet the possibility to adapt to your environment. Sometimes it isn't the algorithm that needs optimization, but the environment it lives in. Pathetic is full of these micro-optimizations: a BloomFilter lookup before the expensive closed set check, a multi-metric squared heuristic to kill Math.sqrt() overhead, and bit-packing 3D coordinates into a single primitive long. In order to get Java fast, you need to treat it like C++. The result: 10k concurrent paths in ~7ms, where most libraries quietly die. A 20k distance path (equivalent to 100k+ nodes) in ~60ms without bloating the heap. The README is... a choice. Judge it, because it does the same to you.
Does the same job
all alternatives →- RARedstone, a distributed Minecraft server that runs on Node.js2013 · redstone.io · ▲125

- SHShow HN We just launched forking for your Minecraft worlds2012 · blog.minefold.com · ▲92
- MAMCServer – A FOSS Minecraft server in C++, with Lua plugins2015 · github.com · ▲64
- RWRust WebAssembly A* Pathfinding Demo2017 · github.com · ▲12
- APA physically based, CPU-only path tracer written in Rust2020 · github.com · ▲7
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 1d ago · opentrailpaper.com

Launched alongside, May 2026
the whole month →

Parallel agents, diff reviewer, and multi-model comparisons
Dev tools · May 2026 · kilo.ai


- NW
Hey HN, Henry here from Cactus. We open-sourced Needle, a 26M parameter function-calling (tool use) model. It runs at 6000 tok/s prefill and 1200 tok/s decode on consumer devices. We were always frustrated by the little effort made towards building agentic models that run on budget phones, so we conducted investigations that led to an observation: agentic experiences are built upon tool calling, and massive models are overkill for it. Tool calling is fundamentally retrieval-and-assembly (match query to tool name, extract argument values, emit JSON), not reasoning. Cross-attention…
Life & fun · May 2026 · github.com
- FM
Dev tools · May 2026 · github.com