0560bbf876
`report <work>` writes coverage.json and coverage.md: per mod ported, partial, not yet or not needed with the reason, and the totals by class, tier and licence family. It reads the inventory, each mod's carry report and its harness result: ported is a green harness with nothing left out (blocks with a class of their own are counted and named); partial lists the failing checks, the blocks left out and what the templates miss; not yet names the API tier or the dependency it waits for; not needed covers libraries, performance mods and pack tooling. Unclassified mods are not yet, never not needed. `import` also reads Crash Assistant's modlist.json, the list ATM10 publishes in its repository (mod ids, names, versions, Modrinth hashes, the loader entry), and the inventory uses its mod ids and names when there is no jar. ATM10 (496 files, the eight mods we downloaded carried and checked): ported 1, partial 7, not yet 367, not needed 121. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Horizon documentation
To play, use the launcher; the project site is playhorizon.dev. These pages are for developers.
Build and run
- Build from source: your own copy of the game, resource preparation,
cargo run. - Native client: options, controls, the dedicated server,
horizon-ctlscripting, packaging, architecture. - Agent control: what AI agents can drive in the launcher and the game, and the design of the control socket,
horizon-ctland MCP. - Graphics: the Simple and Advanced graphics settings, the graphics benchmark and what it measured.
- Benchmark: Horizon against vanilla 26.3 and vanilla with performance mods, on the same machine, world, path and settings: what is measured, how it is kept fair, how to reproduce it.
- Shader packs: how the renderer draws a frame, the Horizon WGSL shader pack format (stages, uniforms,
pack.toml, hot reload), and the plan to translate OptiFine/Iris packs. - Extras: optional zoom, minimap, FPS and keystroke overlays and auto-reconnect, all off by default.
- Mods: Horizon's own mod system (Rust, sandboxed WebAssembly), how to make and install mods, and what carries over from Java mods.
- Modpacks: porting whole packs (ATM10 and smaller): import, inventory, carry-over, an agent per mod with a harness against the Java original, coverage, and how "10x" is measured.
- Launcher: installs, updates and starts builds; its CLI and MCP server; releasing it.
- Resource packs: everything a 26.3 resource pack can change, whether Horizon honours it, and the proof.
- Opt-in data collection: the consent, exactly what is sent, how it is stored and sent.
- Benchmark report format: the versioned JSON every benchmark writes (game, launcher,
tools/perf_bench.py), the local log and, with consent, the upload. - Menus: the title, world list, create world, multiplayer, options and pause screens share the launcher's design tokens and fonts (
crates/horizon-theme), drawn byui_themeover a live frozen backdrop (game/backdrop.rs, blurred and graded bypost.rs). Options → Interface → Menu style switches to vanilla's screens (Classic, kept inhorizon.txt;HORIZON_MENU_STYLE=horizon|classicoverrides it, and scripted runs default to Classic). Title (webm), worlds, options, pause.
Parity
- Rust rewrite status: completion criteria, how to reproduce the validation, and per-area scope.
- Parity workflow:
tools/parity.py, the gate, other machines, merging. - Area notes: block behaviours and ticking, section meshing.
- Version ports: how a new Minecraft release is detected, diffed against the pinned one and ported, and what stays manual.
- Decompilation and research lab and decompilation status: the local game inspection workspace the harnesses build on.
Architecture: world generation
- World generation: the pipeline from noise to features.
- Noise generation, compiled density functions, structure density, terrain filling.
- Biomes: lookup, temperatures.
- Surfaces: material surfaces, material conditions, rule libraries, vertical anchors, value providers.
- Carving, heightmaps, feature placement.
Architecture: world data and simulation
- World data: chunk storage, palettes, region files.
- Block-state codecs, scheduled ticks.
- Collision geometry: shapes, collision, movement and fluids.
- Face visibility: which model faces the mesher emits.