Horizon

The Minecraft: Java Edition 26.3 client and its game logic, rewritten in Rust and checked against the vanilla game by 281 differential harnesses.

For Linux x86-64, macOS on Apple Silicon and Windows x64.

Unofficial Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.

Scroll

01What it is

Horizon rebuilds Minecraft: Java Edition 26.3 in Rust, one subsystem at a time, and holds every piece to the same inputs as the vanilla game until the outputs are identical.

Your own copy

Install Java Edition with the official launcher and play 26.3 once. Horizon builds its resources from those files on your machine, and never downloads or shares game files.

Native on three platforms

Linux, macOS on Apple Silicon and Windows. Worlds come from a Rust port of the vanilla generators, drawn with vanilla's block models, lighting, sky and fog.

Open source

Horizon's code is MIT. It contains no Minecraft code, assets or data; those belong to Mojang and Microsoft under the Minecraft EULA.

02In game

Drawn by Horizon

Captured in the Rust client itself, with vanilla assets from the player's own copy and no mods or shaders.

01A plains village
02Moonrise
03A crimson forest in the Nether
04Salmon in a river
05Survival at dusk

03Parity

281 differential harnesses drive the same inputs through Horizon and through the vanilla client and server, and compare what comes out.

Every subsystem matches vanilla.

Below is the project's own audit of each subsystem. Every subsystem now matches vanilla in every harness that compares it. 100% means 100% of what the harnesses compare, not proof that nothing else differs. The remaining known differences and the final checks are listed in the roadmap.

Last audited 2026-10-13100% of what the harnesses comparefrom the README on main

  1. 01Matches vanilla

    Window, input and game loop

    The game loop, options, camera, auto-jump, toggle sprint/sneak, local input and the frame limiter match vanilla

  2. 02Matches vanilla

    Assets and resources

    Item models match vanilla over 196,290 stacks and the client draws every item through them; the resource pack screen matches vanilla's drawing over 3,000 sessions of clicks, scrolling and searching, its incompatibility confirmation included

  3. 03Matches vanilla

    Network protocol and multiplayer

    Joins vanilla servers; the dedicated server (--dedicated) matches vanilla's files, status ping, login, configuration, play, chunks, chat, recipes, advancements and command tree, a client built from vanilla's packet code joins it, Horizon joins a vanilla server, and LAN discovery matches over 462 cases (offline mode only)

  4. 04Matches vanilla

    Chunk storage and palettes

    Client and saves share paletted containers, identical to vanilla over 266 scenarios

  5. 05Matches vanilla

    Section meshing

    112 scenes and over a million quads identical to vanilla

  6. 06Matches vanilla

    Rendering

    Entity models, block entity renderers (407 cases, End portals, gateways and the loom's banner preview included) and their animations (296 cases, End gateway beams included), the HUD overlays (2,200 states), the recipe book (600 states), the player list, subtitles and the world border match vanilla

  7. 07Matches vanilla

    Lighting

    Saved and relit light matches vanilla, slabs and stairs included

  8. 08Matches vanilla

    World generation

    2,352 whole chunks over 225 structure sites, in all three dimensions, identical to vanilla

  9. 09Matches vanilla

    Region files and saves

    Saves round-trip with vanilla, and worlds from 1.8 to 26.2 upgrade as vanilla's DataFixers do, superflat worlds included; old options.txt and hotbar.nbt files are upgraded too

  10. 10Matches vanilla

    Entities and physics

    Attributes, dimensions, death loot, spawn rules, natural spawning (15,500 cases), raids and patrols (1,900 cases), spawned mobs' gear, enchantments and state (finalizeSpawn, 24,000 cases) and mob AI (92 scenarios: villager breeding and gossip, the warden, ghastlings and copper golems included) match vanilla

  11. 11Matches vanilla

    Interaction and inventory

    Menu clicks match over 8,000 click sequences, the loom and the crafter included; recipe book placement (6,000 cases), its buttons (1,200), the saved book (1,500) and the loom and crafter screens (1,600) match vanilla

  12. 12Matches vanilla

    Menus, HUD and chat

    Every command runs as vanilla (758 commands over 39,685 parsed inputs), scoreboards and teams match (81,000 operations), the player list matches over 872,000 draw calls with heads drawn from players' skins (authlib's textures, SkinManager's lookup, legacy skin conversion), and the chat matches focused and scrolled; the resource pack screen (selection over 4,000 cases, drawing and its incompatibility confirmation over 3,000 sessions) and the chat input with its command suggestions, usage lines, Tab completion and history (3,000 sessions on vanilla's client command tree) match vanilla

  13. 13Matches vanilla

    Audio

    The sound engine, sound events, music, situational music, ambience and subtitles match vanilla

  14. 14Matches vanilla

    Block behaviours and ticking

    Block updates, random ticks, redstone, dispensers (6,000 cases), crafters (4,000 crafts), block entity removal (containers spill, 4,000 cases), copper golem chest sorting and the sculk family (435 scenarios: shrieker warnings and warden summoning included) match vanilla

Each subsystem scores 0 (absent), 0.25 (started), 0.5 (playable, major features missing), 0.75 (mostly complete) or 1 (complete and verified against vanilla by differential tests).

04The launcher

One small app, then play

The launcher installs Horizon, prepares it from your copy of the game and keeps both up to date.

  • One-click install

    Pick a release and it installs the build for your platform into its own folder, then prepares the resources from your Java Edition 26.3 install.

  • Updates on its own

    It looks for a new Horizon release when it starts and every four hours, and updates itself from the launcher's own releases.

  • Client or server

    Start the client, or a dedicated server in a folder you choose, with a live console.

  • Your choice of menus

    Play with Horizon's own menus, shown here, or vanilla's classic screens.

Download the launcher

Launcher 0.1.1 for Linux x86-64, macOS on Apple Silicon and Windows x64.

Horizon's title screen: a sidebar, the Horizon title, Singleplayer and Multiplayer buttons and the last world played, over a blurred frozen landscape
The Singleplayer page: three worlds with their dates and game modes, and Create world and Play buttons
The Video settings in their Simple view: a preset, render distance, field of view, framerate, VSync and GUI scale, each with what it costs
The pause screen of the world Glacier Pass, with Back to game, Open to LAN and Save and quit

Horizon's own menus, in the game. The launcher opens them, or vanilla's.

05Patch notes

What changed

Latest release

2026.10.13.1

Own menus, graphics settings, faster, many fixes

Downloads and full notes

Install and update Horizon with the Horizon launcher. If you already have it, it picks this version up by itself. Website: https://playhorizon.dev

New

  • Horizon's own menus: a new title screen, world list, options and pause menu in the launcher's style, over a live frozen landscape. The vanilla look is still available: Options → Interface → Menu style → Classic.
  • Graphics settings, Simple and Advanced: presets (Performance, Balanced, Quality, Ultra), or every rendering, quality, display and performance setting, each with a short description and its cost, plus a performance overlay.
  • Much faster rendering: for example, at render distance 8 over a village, 363 → 2,409 FPS on an RTX 4080. Render distance 32 still stutters in places.

Fixed

  • No sound on Linux.
  • Linux builds now run on ordinary distros (Arch, Ubuntu, …), not just the machine they were built on.
  • Windows asked for a missing DLL: the launcher no longer needs the Visual C++ runtime.
  • Memory growing near villages: mobs were duplicated when chunks reloaded.
  • The frame rate dropping and staying low in villages.
  • Preparing resources failed on Linux with "Missing … java-objc-bridge" (#41). Mojang's republished 26.3 version file is accepted too.
  • The hand and held item looked wrong at high FOV.
  • Missing swing animations in Creative and Survival.

Known

  • Sprint-jumping has been reported as broken, but we couldn't reproduce it. If it happens to you, describe it in #horizon-bugs on Discord.
  • Online-mode servers aren't supported; skins served over https show the default skin unless already cached.

Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft. You need your own copy of Minecraft: Java Edition 26.3.

Earlier releases

2026.10.13100% of harnessed vanilla parity

Horizon is a Rust reimplementation of Minecraft Java Edition 26.3, checked against vanilla by differential harnesses.

Vanilla parity: 100% of what the harnesses compare. Every subsystem in the README's table now matches vanilla in all 281 harnesses. Parity is declared complete only after a from-scratch audit on Linux and macOS and launch checks on these packaged builds, which come next.

What's new since 2026.10.12

  • Dedicated server: horizon-client --dedicated --nogui runs a server vanilla clients can join (offline mode), with vanilla's server.properties, status ping, chat, recipes, advancements and command tree. LAN discovery matches vanilla.
  • Worlds from 1.8 onwards open and are upgraded as vanilla does, superflat worlds included, along with old options.txt and creative hotbars.
  • Mob AI matches vanilla tick by tick in 92 scenarios: villager breeding and gossip, the warden and the sculk shrieker summoning it, ghastlings, copper golems sorting chests.
  • Spawned mobs' gear and enchantments match vanilla.
  • Screens: the resource pack screen, the open chat (input, history, command suggestions), the recipe book (drawing, search, ingredient placement), the loom's banner preview, End gateway beams, and player-list heads drawn from players' skins.
  • Render distance 2 now loads.
  • macOS gives vanilla's results in every harness.

Known differences

Online-mode servers aren't supported; skins served over https show the default skin unless already cached; pack icons show the unknown-pack texture in game; the creative hotbar keys (C/X) aren't wired up; item tooltips lack attribute lines.

See PLAY.txt in each archive to prepare the game's resources from your own copy of Minecraft.

Downloads and full notes on GitHub

2026.10.1288% vanilla parity

Horizon is a Rust rewrite of Minecraft: Java Edition 26.3, checked against the game itself. Java parity: 88% (270 differential harnesses pass; see the README's Project status).

Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft. These builds contain no Minecraft code, assets or data: you need your own copy of Minecraft: Java Edition 26.3, and the first start prepares the resources from it.

Downloads

| Platform | File | | --- | --- | | Linux x86-64 (glibc 2.39+: Ubuntu 24.04, Debian 13, Fedora 40 or newer; Vulkan) | horizon-linux-x86_64.tar.gz | | macOS, Apple Silicon | horizon-macos-arm64.zip | | Windows x64 (Vulkan) | horizon-windows-x64.zip |

Each folder holds the game, the resource preparation tool and a PLAY.txt with the steps: Python 3.10+, JDK 25, your launcher's 26.3 install and the 26.3 server jar you download yourself, then python3 tools/prepare_native_client.py --prepare --server-jar PATH once, then run horizon-client from the folder. The macOS build is not notarized: right-click > Open the first time.

What's new

  • Mob AI matches vanilla, tick by tick in 72 scenarios, with villagers on a port of vanilla's brain.
  • New mobs: the breeze and wind charges, the creaking and the creaking heart, the sniffer, the happy ghast and ghastlings, llamas and trader llamas, and the copper golem; the warden's model, animations and emissive layers.
  • Raids and pillager patrols.
  • Dispensers, crafters, the loom and the recipe book; containers spill their items when their block is replaced.
  • Every command runs as vanilla, including /item modify, /spectate, /waypoint, /dialog and /place.
  • Scoreboards and teams in gameplay, the player list, subtitles, every HUD overlay, block entity animations, and End portals and gateways with vanilla's shader.
  • Worlds from 1.17 onwards are upgraded as vanilla does.
  • Builds for Linux, macOS and Windows.

Known gaps

The warden's brain and the sculk shrieker summoning it, villager breeding and gossip, spawned mob gear enchantments, the resource pack screen, a dedicated server mode, and worlds older than 1.17.

Known issues

  • With the render distance at 2 chunks, a world stays on "Loading terrain…". Use a render distance of 3 or more (Options > Video, or --render-distance 12).

Downloads and full notes on GitHub

Every release on GitHub

06What's next

With parity as the base

The roadmap from the README, as it stands on main.

Known differences. Online-mode servers (Mojang's session servers) are not supported; skins served over https show the default skin unless already cached; pack icons show the unknown-pack texture in game; the creative hotbar keys (C/X) aren't wired to the hotbar loader; item tooltips lack attribute lines.

Final checks. A from-scratch audit (tools/parity.py --all) on Linux and on macOS, and the launch checks on the packaged Linux, macOS and Windows builds listed in Rust rewrite status.

Next. With vanilla parity as the base:

  • Performance: optimize the client and the server as far as they can go (rendering, chunk generation and meshing, memory, multithreaded ticking) while the differential harnesses keep gameplay identical to vanilla.
  • Modding support: a stable API for writing mods against Horizon.
  • Agent control: an MCP server and a CLI so AI agents and scripts can play and drive the game, growing out of today's horizon-ctl scripting socket.
  • Built-in recording: capture gameplay video in a keypress, without external tools.
  • Automatic version updates: a pipeline that ports each new Minecraft release on its own: compare the new version with the pinned one, regenerate the data, rewrite the changed parts and prove them with the same differential harnesses.