HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
bsommerfeld
pathetic
Java2026–2026
bsommerfeld / pathetic

pathetic

The Java pathfinder that ended the era of “good enough”

2Distinct people
2Mentions
0Explicit recommenders
396GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The Java pathfinder that ended the era of “good enough”

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day2 dated mentions

Observed mentions: 2026-04-14 08:16:48 UTC to 2026-05-05 16:31:01 UTC.

012026-04-14 00:00:00 UTC to 2026-04-15 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsApr 142026-04-15 00:00:00 UTC to 2026-04-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-16 00:00:00 UTC to 2026-04-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-17 00:00:00 UTC to 2026-04-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-18 00:00:00 UTC to 2026-04-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-19 00:00:00 UTC to 2026-04-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-20 00:00:00 UTC to 2026-04-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-21 00:00:00 UTC to 2026-04-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-22 00:00:00 UTC to 2026-04-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-23 00:00:00 UTC to 2026-04-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-24 00:00:00 UTC to 2026-04-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 242026-04-25 00:00:00 UTC to 2026-04-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-26 00:00:00 UTC to 2026-04-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-27 00:00:00 UTC to 2026-04-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-28 00:00:00 UTC to 2026-04-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-29 00:00:00 UTC to 2026-04-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-30 00:00:00 UTC to 2026-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-01 00:00:00 UTC to 2026-05-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-02 00:00:00 UTC to 2026-05-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-03 00:00:00 UTC to 2026-05-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-04 00:00:00 UTC to 2026-05-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-05 00:00:00 UTC to 2026-05-06 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsMay 5

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Apr 142026-04-14 00:00:00 UTC2026-04-15 00:00:00 UTC110
Apr 152026-04-15 00:00:00 UTC2026-04-16 00:00:00 UTC000
Apr 162026-04-16 00:00:00 UTC2026-04-17 00:00:00 UTC000
Apr 172026-04-17 00:00:00 UTC2026-04-18 00:00:00 UTC000
Apr 182026-04-18 00:00:00 UTC2026-04-19 00:00:00 UTC000
Apr 192026-04-19 00:00:00 UTC2026-04-20 00:00:00 UTC000
Apr 202026-04-20 00:00:00 UTC2026-04-21 00:00:00 UTC000
Apr 212026-04-21 00:00:00 UTC2026-04-22 00:00:00 UTC000
Apr 222026-04-22 00:00:00 UTC2026-04-23 00:00:00 UTC000
Apr 232026-04-23 00:00:00 UTC2026-04-24 00:00:00 UTC000
Apr 242026-04-24 00:00:00 UTC2026-04-25 00:00:00 UTC000
Apr 252026-04-25 00:00:00 UTC2026-04-26 00:00:00 UTC000
Apr 262026-04-26 00:00:00 UTC2026-04-27 00:00:00 UTC000
Apr 272026-04-27 00:00:00 UTC2026-04-28 00:00:00 UTC000
Apr 282026-04-28 00:00:00 UTC2026-04-29 00:00:00 UTC000
Apr 292026-04-29 00:00:00 UTC2026-04-30 00:00:00 UTC000
Apr 302026-04-30 00:00:00 UTC2026-05-01 00:00:00 UTC000
May 12026-05-01 00:00:00 UTC2026-05-02 00:00:00 UTC000
May 22026-05-02 00:00:00 UTC2026-05-03 00:00:00 UTC000
May 32026-05-03 00:00:00 UTC2026-05-04 00:00:00 UTC000
May 42026-05-04 00:00:00 UTC2026-05-05 00:00:00 UTC000
May 52026-05-05 00:00:00 UTC2026-05-06 00:00:00 UTC110

What Hacker News says

2 sources

Show HN: 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 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 p
Read the rest
ipeline 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.
8 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.