Horizon

Minecraft: Java Edition 26.3Written in Rust

Horizon: The game you know,rebuilt in Rust.

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

WindowsLinuxLauncher 0.2.4563.2 MB326,434 downloads

Benchmarks

3× the frame rate.

Average frames per second in vanilla 26.3 with no mods installed.

Horizon150fps
Standard launcher50fps

Drag the standard launcher bar to try your own frame rate. Results vary with hardware.

What it is

Same inputs, identical outputs.

Horizon, sometimes called Minecraft Rust Edition, 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.

Visit contributors(opens in a new tab)
A Minecraft windmill above a field of lavender
  • 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.

Sculk

Your Minecraft
Server, 24/7 Online.

Get your server now in under ~60 seconds!

Get my server(opens in a new tab)

Contributors

Built by 232 people.

Everyone with commits in horizon-rust/horizon, most commits first, and the people behind this site.

All contributors on GitHub(opens in a new tab)
  • some-du6e
  • arismoko
  • Detimes
  • HrafnaValkyrja
  • TheMrZZ
  • xFedeT
  • martipops
  • dontstopgorkingit
  • Joansitoh
  • d3grando
  • Xmilon
  • Akirabane
  • Online5277
  • elythepreciouscat
  • DUzzL
  • Domanffe
  • Teiwazik
  • arslanarm
  • senjinthedragon
  • Sylviromi
  • masa-masa-0314
  • sirrayi
  • PzmuV1517
  • degepie
  • ThatCakeIsAPie
  • glitchsnake
  • socksprox
  • GIGABAIT93
  • Stink-O
  • TiggerTakkyTTT
  • CocofireHD
  • reservedbytes
  • gigamans442
  • iLostName
  • Qwerner88880
  • voidsipp
  • leifiyoo
  • mariuslozo-boop
  • Vaspyyy
  • NikitaMGrimm
  • WooCaash
  • ErikKalikas
  • Ragbie
  • JustKarkat
  • k3yh
  • FusselTV
  • ClickingMaster
  • breachato
  • DenisHumen
  • xxaxio
  • codex
  • doodlyyousuf
  • hectoreccles
  • josegil1909
  • spidercraft
  • stievenw
  • navinor
  • AurelienBelloir
  • GabrielNichols
  • NerfPhaselock
  • abit-foggy
  • UMCEKO
  • LookImEcho-Rick
  • megabytesme
  • itarqos5
  • JulesB40
  • TobiasLogic
  • oskal675-design
  • yahya-nusseibeh
  • loicpiller
  • vlesmentie
  • Delete228
  • jaszkus
  • JohnUzoka
  • oxi-does-dev
  • grkthegreat2018-bot
  • ludovicthenot
  • razzo715
  • Ashura006
  • apeirs
  • mulareal
  • v3nn7
  • yosifdheef
  • Cheezer1656
  • 4404c
  • Bloodulon
  • ItsPotatoTime
  • kerimgrande
  • posok124521
  • TraiNguyenVan
  • deezhizyu
  • KBroneZ
  • xMelonekMaX
  • Solenopsisbot
  • Teiwazikk
  • feeldev12
  • carlosnunez09
  • RVZO6
  • repositorykreml1n
  • 1038april
  • TheLion102009
  • Sticky-Bug
  • damnurmum
  • deloskiytbackup
  • Mik00000
  • echo-ilovech3ss
  • sdraeger
  • Expected333
  • lazy-importer
  • wxundup
  • quintyo
  • ult1mq
  • ilguerro
  • NetuosoDEV
  • Corbonat
  • foudretbr
  • Username59138
  • xKumorio
  • contactjayclatty
  • DanielGodriNeto
  • Mayonesu0
  • Hiuoy
  • delete-jpg
  • hildlabs
  • kaicsm
  • DmytroChup
  • Dufru
  • testatanucleare13-create
  • rison1337
  • JacobRWebb
  • lukehinojosa
  • jedev3095
  • iseaprojects
  • finalpantasy
  • Slavik-85
  • SlaVKsVolks
  • janibert1
  • kohad1ck
  • malordin
  • matyden
  • mmmaarian03-crypto
  • phexuss
  • readerkid
  • WhyFovius
  • utophii
  • valkdzx
  • zhykowo
  • s1f102500012
  • vnsmoreira
  • AHHhHHHHH-H
  • Alysia42
  • BPMichon
  • Blzs2005
  • Karma12359
  • cryingtoilet
  • Excurs1ons
  • Lostpold88
  • byMehd
  • nathaniel-ramos-dev
  • OlaHulleberg
  • RobertTGreat
  • cristibctr
  • gravitacia
  • Benflex1
  • hhamaj
  • hello23113
  • I114rk
  • mahirsn
  • sl4ppleware
  • dreadpiratejoelius
  • vivescene
  • Yvonne-Aizawa
  • Brineexee
  • dill-lk
  • d3xc0
  • eymenwsmc
  • Fauxvale
  • hamza-cskn
  • Louistuis
  • Obstacleee
  • TREYX77
  • SolomonNumb1
  • Swuarez
  • anthra123x
  • calclb
  • fy2ne
  • dfrnoch
  • dacrab
  • ccclosed
  • bxnjxmin27
  • arbelonson-source
  • anweisen
  • abduvaliy-engineer
  • Web-mc1
  • torinsapp
  • TJKDev1
  • sleepe229
  • gemakfy
  • hasanbkaylan
  • hauserdew-ui
  • kerneldroid
  • mattiaemolo
  • oscargzss
  • pikammmmm
  • ratuser1
  • Vadyanik
  • vvnikita74
  • AfrobamaYT
  • Vasysik
  • CayMac97
  • Ente3
  • fo-agent
  • guilhermejansen
  • haruki55go
  • Iam-Sanja
  • Lyvt-Dev
  • minantiii
  • Murilinho145SG
  • mitsa-ng
  • NikitaRTN
  • nirajkhetre
  • PH4N7OMx
  • Razerpoa
  • SU4G3
  • SamsVT
  • sifi11

281

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

Every subsystem passes the harnesses that compare it.

Below is the project's own audit of each subsystem. Every subsystem now matches vanilla in every harness that compares it.

Last audited players still find differences: the open reports(opens in a new tab)

  • 01Window, input and game loopPasses its harnesses

    Passes its harnesses

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

  • 02Assets and resourcesPasses its harnesses

    Passes its harnesses

    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.

  • 03Network protocol and multiplayerPasses its harnesses

    Passes its harnesses

    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).

  • 04Chunk storage and palettesPasses its harnesses

    Passes its harnesses

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

  • 05Section meshingPasses its harnesses

    Passes its harnesses

    112 scenes and over a million quads identical to vanilla.

  • 06RenderingPasses its harnesses

    Passes its harnesses

    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.

  • 07LightingPasses its harnesses

    Passes its harnesses

    Saved and relit light matches vanilla, slabs and stairs included.

  • 08World generationPasses its harnesses

    Passes its harnesses

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

  • 09Region files and savesPasses its harnesses

    Passes its harnesses

    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.

  • 10Entities and physicsPasses its harnesses

    Passes its harnesses

    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.

  • 11Interaction and inventoryPasses its harnesses

    Passes its harnesses

    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.

  • 12Menus, HUD and chatPasses its harnesses

    Passes its harnesses

    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.

  • 13AudioPasses its harnesses

    Passes its harnesses

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

  • 14Block behaviours and tickingPasses its harnesses

    Passes its harnesses

    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
  • 1 complete and verified against vanilla by differential tests