Collider: An experimental Minecraft server
Summary
Collider is an experimental Minecraft server written in Clojure that implements parallel tick processing without locks or regions, achieving 4.5 times faster performance than vanilla on multiple cores.
View Cached Full Text
Cached at: 09/04/26, 02:16 PM
Nozistance/collider
Source: https://github.com/Nozistance/collider
Collider
A proof-of-concept Minecraft server
About
Collider is a Minecraft server with a parallel tick and no asterisks: no locks, no regions, no thread ownership, no rules about which mechanics may cross a boundary. Every part of it is as simple as I could make it.
On one core it matches vanilla 1.8.9 performance; on six it is 4.5 times faster.
FAQ
Why Clojure?
Servers that try to parallelize the tick end up reaching for the same ideas: an immutable snapshot, a pure read phase, changes as data instead of in-place edits. Each gets one or two of them, hand-written, for one subsystem. I did not have to collect them: the language hands over all of it at once. The whole tick, six lines:
(defn tick [world events]
(let [world' (-> (update world :tick inc)
(update :time-of-day (fnil inc 0)))
world' (reduce state/apply-event world' events)
deltas (deltas/of systems world' events)]
(state/apply-deltas world' deltas)))
Which Minecraft projects is this for?
None. The feature set is deliberately small - the point was to be able to measure performance, and to have a reference for working with the data model. It is a personal experiment, ~5500 lines of Clojure.
How does this compare to the region (Folia) approach?
Regions need spatial independence: split the world, give each part a thread, never let two touch. A crowd merges neighboring regions back into one thread. Collider does not care where the players are.
What is implemented
The only mob is the sheep, with a closely reproduced AI. There is light, water, lava, fire, block physics, dropped items, TNT, damage, a day and night cycle, world saving, chat with commands, and an inventory.
World: Minecraft 1.8.9, flat, creative, peaceful.
Some features exist to load the benchmarks, the rest to prove the data model carries real mechanics.
How to run it
java \
-XX:+UseG1GC -XX:MaxGCPauseMillis=5 \
-XX:G1PeriodicGCInterval=60000 -Xmx2g \
--sun-misc-unsafe-memory-access=allow \
-jar collider.jar
Requires Java 21+. Server properties go in a config.edn file in the working
directory.
Credits
To recreate vanilla behavior I read the decompiled 1.8.9 sources of MCP-919.
Similar Articles
I run Claude Code + Codex in parallel and kept losing the thread between them - built a no-server coordination layer that lives in an S3 bucket
tracecraft is a CLI that uses an S3-compatible bucket as a stateless coordination layer for multiple coding agents like Claude Code and Codex, enabling atomic task claims, mailboxes, shared memory, and cross-harness session mirroring.
Clojure is almost as fast as C (with some help)
This article details how Clojure, with the JVM's Vector API and careful optimization, achieved frame rates within 20% of C for a 3D stress test, demonstrating that a dynamic language can approach low-level performance on hot loops.
Code mode with a stateful REPL
The author introduces ptc_runner_mcp, an MCP server that provides a stateful, sandboxed REPL using a Clojure-like language, allowing AI agents to perform exploratory computations without overwhelming the context window.
@1jehuang: I run 20 coding agents in parallel as my everyday workflow. Today, I’m launching Jcode. It’s an open-source agent 20x m…
1jehuang launched Jcode, an open-source terminal coding agent written in Rust that claims 20x better memory efficiency than Claude Code, allowing dozens of agents to run in parallel.
@liambraus: CLAUDE CODE TAKES 3.4 SECONDS TO START UP. THIS ONE DOES IT IN 14 MILLISECONDS. A single developer just built their own…
A single developer built a code agent harness in Rust that starts up 245 times faster than Claude Code (14 ms vs 3.4 s) and uses up to 20x less RAM, achieving 10.4k stars on GitHub.