Skip to content
CAI
Software that uses CAICheck a score

louis-e/arnis

49.2

Weak · 28 September 2026

153.8k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Arnis is a world generation tool that converts OpenStreetMap geographic data into playable Minecraft worlds for both Java and Bedrock editions. It synthesizes terrain, elevation, and biome data with detailed asset placement, including 3D models from Wikidata and 3DMR, region-specific trees, and building facades derived from Mapillary imagery or Overture Maps. The system supports advanced features like vanilla-faithful cave generation, procedural interiors, and custom structure stamping, all accessible via a graphical interface or command-line tools.

How it got here

2022–2025 — GUI development and world generation expansion

20 changes.

This period focused on releasing the initial Arnis GUI application, featuring a comprehensive JavaScript refactor, dark theme styling, and integration with MapLibre GL for interactive map selection. Concurrently, the core world generation engine was expanded to support Minecraft Bedrock Edition, modular bridge systems, and procedural building interiors, while adding export capabilities for Luanti and Voxy LOD data.

2026 — 3D asset integration and world detail enhancement

18 changes.

This period focused on significantly enriching the generated world with high-fidelity 3D assets, including a new pipeline for placing models from Wikidata, 3DMR, and custom archetypes like stadiums. The engine also adopted Mapterhorn for global elevation, integrated Overture Maps for building data, and implemented vanilla-faithful cave generation alongside detailed tree and structure schematics.

Features

Add MapLibre GL integration and Leaflet.draw support to the map GUI

The map interface now supports WebGL-based vector tiles via a new Leaflet-MapLibre-GL bridge layer, enabling high-performance rendering of vector basemaps (such as OpenFreeMap) alongside standard raster tiles. Additionally, users can now draw and edit geographic features—including polylines, polygons, rectangles, circles, and markers—using the integrated Leaflet.draw plugin, which provides a toolbar for creating shapes and handles for modifying existing layers.

src/gui/js/maps · high confidence

Add Overture Maps building data integration with PMTiles and Parquet support

Users can now fetch ML-derived building footprints from Overture Maps to fill gaps in areas with sparse OpenStreetMap coverage. The system reads data from two transports: PMTiles vector tiles (default for smaller areas) and GeoParquet partitions (fallback for continental scales), caching both on disk keyed by immutable release names. Overture data enriches existing OSM buildings with height and floor count attributes without overwriting existing tags, and false-positive footprints are filtered out.

src/overture · high confidence

Add geographic coordinate types for latitude/longitude points and bounding boxes

Users can now work with validated geographic coordinates via the new \LLPoint\ and \LLBBox\ types in the \coordinate\_system::geographic\ module. \LLPoint\ provides bounds-checked latitude and longitude values, rejecting inputs outside the valid ranges (-90 to 90 for latitude, -180 to 180 for longitude). \LLBBox\ represents a checked bounding box defined by minimum and maximum \LLPoint\ vertices, supporting creation from string representations (comma or space-separated) and offering methods to check containment and calculate approximate area. These types ensure that geographic data is validated at the point of entry, preventing invalid coordinates from propagating through the system.

_src/coordinate\system/geographic · high confidence

Add map preview styling and assets

The GUI now includes the necessary CSS and image assets to display map previews. This change adds styles for the Leaflet map library, the Leaflet Draw toolbar, and a collapsible sidebar, along with SVG sprite sheets and icon sets required for the map controls and UI elements.

src/gui/css/maps · high confidence

Add map rotation feature with GUI slider and CLI support

Users can now rotate the entire map (elements, bounding box, and elevation) by a specified angle. Positive angles rotate the map clockwise as seen on a map view. This feature includes support for rotating compass-bearing tags (like \roof:direction\) so they remain consistent with the map's orientation, and is accessible via both a GUI slider and CLI commands.

_src/map\transformation/rotate · high confidence

Add map translation operators for vector and start-end displacement

Users can now apply translation transformations to map data, shifting nodes, ways, and the bounding box by a specified vector. This is exposed via two operator types: 'vector', which applies a direct displacement (dx, dz), and 'startend', which moves features from a start coordinate to an end coordinate. These operators can be instantiated from JSON configuration using the new \translator\_from\_json\ interface, enabling programmatic map shifting within the transformation pipeline.

_src/map\transformation/translate · high confidence

Add vanilla-faithful cave generation system

Introduces a new cave worldgen system (\--caves\) that ports Minecraft 1.21.8 cave generation into the engine. This includes a clean-room implementation of the vanilla density field for noise-based caverns, a random-walk carver for tunnels and ravines, and a post-carve decoration pass featuring eight biome themes (lush, dripstone, deep dark, etc.) and procedural features. The system also handles deepslate transitions, vanilla ore tables, water/lava pools, and supports curated \.schem\ asset packs for formations like ice spikes and amethyst clusters, all while maintaining deterministic, seam-safe generation across tile boundaries.

src/caves · high confidence

Added preset building facade textures with metadata

The \assets/building-facades\ directory now includes a generated set of building facade textures, a build script (\build\_facades.py\), and a \manifest.json\ that maps each texture to specific building categories (such as Residential, Commercial, Industrial, and various skyscraper types). This allows the game to select appropriate facade appearances based on the type of building being constructed, replacing or supplementing previous generic textures with categorized, real-world photographic assets processed for tiling and resolution.

assets/building-facades · high confidence

Added procedural interior generation and loot tables for buildings

The building interior generation subsystem now features procedurally defined layouts for both standard and abandoned buildings, using deterministic 2D character maps to place walls, doors, and decorative blocks across multiple floor layers. Additionally, a new loot system has been introduced that populates chests with weighted, theme-based items (such as food, junk, and building resources) using a deterministic RNG to ensure consistent drops across region streaming.

_src/element\processing/subprocessor · high confidence

Extended build height for Arnis-generated worlds

Added a bundled datapack and Bedrock behavior pack that extend the Overworld build height to 4064 blocks (min Y -2032) for worlds generated by Arnis. The Java datapack uses schema overlays to support Minecraft versions 1.21.4 through 26.1.x, ensuring compatibility across different engine versions while maintaining correct dimension properties.

assets/minecraft · high confidence

Initial release of the Arnis GUI application

The application now includes a graphical user interface for generating Minecraft worlds. This update introduces the core frontend files, including the main application window (index.html) with controls for world naming, format selection (Java, Bedrock, Luanti), and generation progress, as well as the map selection interface (maps.html) for defining generation boundaries. A desktop entry file (arnis.desktop) is also added to support system integration.

src/gui · high confidence

Initial source code release for Arnis world generation

The application source code is now available in the \src\ directory, introducing the core logic for generating Minecraft worlds from OpenStreetMap data. This release includes the command-line argument parser (\args.rs\), block definitions and Bedrock mapping (\block\_definitions.rs\, \bedrock\_block\_map.rs\), biome assignment based on land cover and climate (\biome.rs\), and a benchmarking utility (\bench.rs\).

src · high confidence

Introduce XZBBox for validating and managing 2D spatial bounds

Added the \XZBBox\ type in \src/coordinate\_system/cartesian/xzbbox\ to represent and validate bounding boxes in the XZ plane. This change introduces factory methods (\rect\_from\_xz\_lengths\, \rect\_from\_min\_max\) that enforce validity checks, ensuring dimensions are non-negative and coordinates are within integer limits, while providing accessors for min/max coordinates and containment checks.

_src/coordinate\system/cartesian/xzbbox · high confidence

Introduction of 3D model substitution pipeline

The \src/models\_3d\ module has been added to support substituting standard map elements with 3D models. This new pipeline orchestrates model placement from three sources: external 3DMR (glTF) data, Wikidata (STL) entries, and custom archetypes like stadiums. It includes logic to voxelize GLB files into world blocks, handle world transforms (scale, rotation, translation), and manage region deferral to ensure streaming compatibility. Users will now see 3D models placed in the world where supported by these data sources, with models snapping to the lowest ground level within their bounding box.

_src/models\3d · high confidence

Major GUI JavaScript refactor and feature expansion

The application's frontend JavaScript has been completely rewritten and expanded, introducing a modular architecture with dedicated modules for settings persistence (settings-store.js), settings layout navigation (settings-layout.js), internationalization (language.js, language-selector.js), and 3D terrain preview (preview3d.js). This refactor adds significant new capabilities including a persistent settings system with per-setting revert and global reset, a scroll-spy navigation sidebar for the settings modal, and an interactive 3D terrain preview panel using MapLibre GL JS. The update also integrates new data sources such as ESA WorldCover land cover classification, Overture Maps buildings, and Koppen-Geiger climate data for biome selection. Additionally, the GUI now supports city search via Nominatim, improved bounding box handling with a FormatSniffer for multiple input types, and a comprehensive credits and licensing modal. The logging system has been enhanced with rate-limiting and iframe-safe error reporting to improve diagnostics.

src/gui/js · high confidence

New 3D structure props and schematic stamping system

The world generator now supports placing detailed 3D models (schematics) for various props and structures, including aircraft, vehicles, and landmarks. This change introduces a generic \.schem\ loader and stamping engine in \src/structures/schematic.rs\, enabling the placement of planes on runways/taxiways, jet bridges at airports, boats in open water, cars in parking lots, construction equipment (cranes, excavators) on large sites, and decorative items like fountains, lighthouses, playgrounds, tombstones, wind turbines, and a SpaceX Starship. These features are controlled by the existing \--use-3d\ and \--place-schematics\ toggles, ensuring they remain optional and do not affect 2D generation.

src/structures · high confidence

New baked Wikidata 3D model index with manual overrides

The application now uses a pre-baked JSON index of Wikidata 3D models (generated via a new Rust script) instead of fetching them live. This index filters for permissive licenses (CC0, Public Domain, CC BY) and includes metadata like artist and height. Additionally, a separate manual overlay file allows hand-curated models (e.g., Statue of Liberty, Christ the Redeemer) with custom Minecraft block palettes, ensuring high-quality or specific models are always available regardless of Wikidata's current state.

assets · high confidence

New element processors for advertising, amenities, barriers, and modular bridges

The element processing module now includes dedicated processors for several new and enhanced OSM features. Advertising elements (billboards, Litfaßsäule columns, flags, and poster boxes) are generated with specific block palettes and decal support. Amenities such as recycling containers, waste baskets, vending machines, and bicycle parking structures are now rendered with appropriate materials and logic. Barrier types (bollards, hedges, fences, walls) are generated with style-aware materials and heights, including support for bridge-adjacent placement. Additionally, a new modular bridge system allows sweeping pre-defined segment schematics along bridge paths, replacing the previous procedural-only approach for longer bridges.

_src/element\processing · high confidence

New global and planetary elevation providers with improved reliability

The elevation system now includes a new global provider using Mapterhorn tiles (offering sub-meter resolution where available) and a fallback AWS Terrarium provider, replacing previous regional providers. It also adds support for Moon and Mars elevation data via NASA PDS archives. The implementation includes robust error handling, such as automatic fallback to parent tiles and outage detection, and fixes tile index clamping to prevent crashes at map boundaries.

src/elevation/providers · high confidence

New map transformation pipeline with JSON-configurable operators

A new map transformation module has been introduced, allowing map elements, bounding boxes, and ground data to be modified via a sequence of operators. These operators (such as translate and rotate) are defined in a JSON configuration file and applied through a central \transform\_map\ function, which reads the config using \include\_str!\ and executes the operations in order. The system supports error handling for invalid JSON formats and includes tests to validate both valid and invalid operator configurations.

_src/map\transformation · high confidence

New world export formats and rendering support

The world editor now supports exporting generated worlds to additional formats and engines. It can save worlds in the Bedrock Edition (.mcworld) format, compatible with Minecraft Bedrock, and includes an experimental export for Luanti (Mineclonia) using its v29 mapblock format. Additionally, for Java Edition worlds, the editor can now generate pre-computed Level of Detail (LOD) data for the Voxy rendering mod, allowing worlds to render to the horizon immediately upon opening without the mod needing to build the cache in-game.

_src/world\editor · high confidence

Preset building facades for unphotographed areas

The application now applies preset facade photographs to buildings that have not been captured by Mapillary, ensuring visual consistency across the entire generated world rather than only along streets with existing imagery. This feature introduces a deterministic selection system that chooses textures based on building category, height, and world position to minimize repetition between neighbors, and handles fitting these images to walls of varying dimensions without stretching. The facade set is compiled into the binary by default but can be overridden via command-line flags or environment variables for custom asset packs.

_src/building\facades · high confidence

Region-aware schematic tree packs with tiered size controls

The bundled tree assets in the \assets/tree-packs\ directory have been reorganized into region-specific packs (e.g., \afr\, \asn\, \eur\, \ena\, \aus\, \ind\, \sam\, \fl\, \wna\, \vnplus\) that define distinct communities, habitats, and species variants. These packs introduce a size-tier system (small, medium, big, tall, giant) with corresponding toggle controls in the Meld 'Trees' card, where giant trees are disabled by default and only render at 1:1 scale. The update also includes an attribution file for the original artist and a size statistics document detailing species and variant counts per realm.

assets/tree-packs · high confidence

Schematic-based tree generation with region-specific packs

The tree generation system now uses Sponge .schem files instead of procedural generation, allowing for detailed, pre-designed tree models. This change introduces a region-aware library that selects tree packs based on geographic location (e.g., North America, Europe, Asia) and habitat type, while excluding palms outside subtropical zones. Trees are categorized into five size tiers (Small to Giant) based on schematic height, and the system supports bundled realm packs with a 'vanilla-plus' fallback for unmapped areas.

src/trees · high confidence

Support for Web Mercator projection in coordinate transformations

The coordinate system module has been reorganized into submodules (cartesian, geographic, transformation) and now supports two distinct modes for converting geographic coordinates to local Minecraft space. Users can now opt into a Web Mercator projection via the new \CoordTransformer::with\_projection\ method, which maps latitude/longitude bounds to projected X/Z coordinates, in addition to the existing default linear interpolation mode (\Local\). This change introduces a \ProjectionMode\ discriminator within the \CoordTransformer\ struct to handle the dispatch logic between the legacy linear scaling and the new projection-based mapping.

_src/coordinate\system · high confidence

Support for custom 3D stadium archetypes with remote model fetching

The application now supports placing custom 3D stadium models based on OpenStreetMap tags. This change introduces a new module in \src/models\_3d/custom\ that handles fetching GLB model files from a remote server (arnismc.com) and caching them locally. The \stadium.rs\ component defines logic to identify qualifying stadiums via OSM tags (e.g., \leisure=stadium\, \building=stadium\), calculates their placement and orientation, and manages region deferral for streaming. If the remote model fetch fails, the system falls back to procedural rendering, ensuring robustness.

_src/models\3d/custom · high confidence

Support for placing 3D models from the 3D Model Repository (3DMR)

Users can now place 3D models from the 3D Model Repository by adding a \3dmr=\<id\>\ tag to OSM elements. The system fetches model metadata and GLB files from the 3DMR API, caches them on disk, and places the voxelized models in the world. When a 3DMR model is placed, any building-like elements within its footprint are suppressed to avoid visual overlap. The placement respects the model's intrinsic rotation, scale, and translation, as well as the OSM element's direction tag.

_src/models\_3d/three\dmr · high confidence

Wikidata 3D model integration with caching and placement logic

The application now supports placing 3D models sourced from Wikidata (via P4896/Comons links) into the generated world. This change introduces a new module in \src/models\_3d/wikidata\ that handles fetching STL and GLB model files with an on-disk cache keyed by URL hash, enforcing a 128 MB size cap and a 30-second request timeout. It includes a static index merging auto-generated and hand-curated model entries, allowing for specific license and attribution data. The placement logic resolves model orientation, scales models based on OSM tags or curated height data, and applies per-voxel palette picking for texture variation, while suppressing models that fail to fetch or exceed extent limits.

_src/models\3d/wikidata · high confidence

Behavioural changes

1 commit (0 fixes) modifying assets/decorations

A change to existing behaviour in assets/decorations — 1 commit, 33 files.

(repo-wide) · low confidence · unverified

7 commits (0 fixes) modifying assets/structures

A change to existing behaviour in assets/structures — 7 commits, 57 files.

assets/structures · medium confidence · unverified

Arnis v3.2.0 release with Apache 2.0 license and Nix support

This release updates the project license from MIT to Apache 2.0 and introduces a Nix flake for development and packaging. The Tauri configuration now enforces a dark theme, disables window transparency, and embeds the WebView2 bootstrapper for Windows. The application version is set to 3.2.0, and the README has been updated to reflect these changes along with new community and documentation links.

(repo-wide) · high confidence

Improved shoreline accuracy and bridge land cover repair

The land cover system now produces more realistic coastlines and water features by integrating OpenStreetMap data to override ESA satellite classifications. OSM water polygons and waterways now force water classification, while OSM roads and buildings reclaim land from ESA's noisy 10m shoreline pixels. A new shoreline reconstruction algorithm straightens jagged, pixelated coastlines by tracing and simplifying water boundaries. Additionally, a new bridge repair module reclassifies built-up cells under OSM bridges to water or adjacent land classes based on height and proximity, ensuring river bridges render correctly over water rather than as land.

_src/land\cover · high confidence

Migrate to Mapterhorn for global elevation data with enhanced post-processing and cache management

The elevation system now primarily uses Mapterhorn tiles instead of regional providers (DE, FR, ES, JP) and AWS Terrain Tiles, providing a seamless global source that includes high-resolution national LiDAR data where available. This change introduces a robust tile caching mechanism with a 30-day expiration and a GUI-accessible cache clear function that safely handles symlinks and reports freed space. Terrain generation features significant post-processing improvements, including land-cover-aware repair to smooth urban artifacts and flatten water bodies, a 5x5 median filter to fix LiDAR classification errors and tile seams, and support for planetary elevation data (Moon, Mars). The pipeline also optimizes memory usage by storing height grids as f32 and caps grid dimensions to 16384 per axis to prevent out-of-memory errors on large areas.

src/elevation · high confidence

Port the facade pipeline from Python to Rust

The facade generation pipeline, previously implemented in Python, has been rewritten in Rust. This change introduces a new set of modules under \src/mapillary\ (including \api.rs\, \cache.rs\, \facades.rs\, and \displays.rs\) that handle imagery fetching, caching, wall-plane extraction, and texture application. The Rust implementation maintains the same functional behavior for generating building facades from Mapillary imagery, ensuring compatibility with existing world generation workflows while leveraging Rust's performance and safety characteristics.

src/mapillary · high confidence

Redesigned GUI with new settings, dialogs, and map controls

The application's interface has been visually overhauled with a new dark theme using neutral greys and a yellow accent color. A redesigned settings page features a sidebar navigation and section cards, while dialogs (such as release notes and credits) now use a consistent modal shell with a title bar, scrolling body, and footer. Map controls have been restyled with translucent, blurred backgrounds and yellow indicators for active tools, and a new 3D terrain preview panel includes a loading animation and an expanded viewer mode.

src/gui/css · high confidence

Test coverage

Added test fixtures and golden data for facade alignment

Added a sample OSM file containing building footprints, highway ways, and a point of interest to the test fixtures directory, alongside a large JSON dataset of camera poses and alignment metadata used as golden data for the facade alignment tests.

tests · high confidence

Dependencies

Added jQuery 1.9.1 and jQuery UI 1.10.3 libraries to the GUI

The GUI now includes the jQuery 1.9.1 JavaScript library (both development and minified versions) and the jQuery UI 1.10.3 'ui-lightness' theme (both CSS and minified CSS). This adds the necessary client-side dependencies for interactive UI components and styling within the application.

src/gui/css/libs/ui-lightness, src/gui/js/libs · high confidence

Arnis v3.2.0 release with Bedrock support and dependency updates

This entry introduces Arnis version 3.2.0, which adds support for Minecraft Bedrock Edition via the bedrockrs library and pins the nbtx dependency to a specific commit to resolve compatibility issues. The release also updates core dependencies including clap to 4.6.0, geo to 0.33.1, and tokio to 1.48.0, while configuring the release profile to use ThinLTO and enabling overflow checks for improved performance and safety.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 54 → 49 (-4.8)
  • Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 74 → 74 (+0.0)
  • Architecture 98 → 81 (-16.7)
  • Maturity 58 → 60 (+1.9)
  • Readiness 71 → 68 (-2.8)
  • Security 59 → 60 (+0.6)
  • Accessibility 42 → 32 (-10.4)
  • Performance 100 (new)

Resolved (73)

  • Change coupling: postprocess.rs ↔ ground.rs (src/elevation/postprocess.rs)
  • Change coupling: water_areas.rs ↔ waterways.rs (src/element_processing/water_areas.rs)
  • Climate::surface_palette (cognitive 27) (src/climate.rs)
  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10–11 lines × 2) (src/gui.rs)
  • Duplicated block (10–12 lines × 3) (src/world_utils.rs)
  • Duplicated block (12–13 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (13–16 lines × 4) (src/block_definitions.rs)
  • Duplicated block (15 lines × 2) (src/landmarks.rs)
  • Duplicated block (16–23 lines × 2) (src/ground_generation.rs)
  • Duplicated block (17 lines × 2) (src/landmarks.rs)
  • Duplicated block (17 lines × 2) (src/world_editor/mod.rs)
  • Duplicated block (26–27 lines × 2) (src/ground_generation.rs)
  • Duplicated block (27–28 lines × 2) (src/overture/mod.rs)
  • Duplicated block (5 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (5 lines × 3) (src/element_processing/landuse.rs)
  • Duplicated block (5 lines × 4) (src/element_processing/buildings.rs)
  • Duplicated block (6 lines × 2) (src/element_processing/buildings.rs)
  • …and 53 more

New (156)

  • Duplicated block (10 lines × 2) (src/caves/decoration.rs)
  • Duplicated block (10 lines × 2) (src/landmarks.rs)
  • Duplicated block (10–12 lines × 2) (src/world_editor/bedrock.rs)
  • Duplicated block (12 lines × 2) (src/overture/mod.rs)
  • Duplicated block (13 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (13 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (13 lines × 2) (src/landmarks.rs)
  • Duplicated block (13 lines × 2) (src/overture/mod.rs)
  • Duplicated block (14–15 lines × 2) (src/element_processing/landuse.rs)
  • Duplicated block (17 lines × 3) (src/world_editor/mod.rs)
  • Duplicated block (19 lines × 2) (src/data_processing.rs)
  • Duplicated block (19 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (24 lines × 2) (src/world_utils.rs)
  • Duplicated block (3–6 lines × 3) (src/caves/schems.rs)
  • Duplicated block (5 lines × 2) (src/block_definitions.rs)
  • Duplicated block (5 lines × 2) (src/caves/schems.rs)
  • Duplicated block (5 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (5 lines × 2) (src/element_processing/buildings.rs)
  • Duplicated block (5 lines × 3) (src/element_processing/landuse.rs)
  • Duplicated block (6 lines × 2) (src/caves/carver.rs)
  • …and 136 more

Changes since last survey

  • 64 commits — 62 feature/other, 2 fixes

By area

  • src/gui — 13 commits
  • (repo) — 12 commits
  • src/element_processing — 10 commits
  • src/osm_tiles.rs — 8 commits
  • src/caves — 3 commits
  • src/gui.rs — 3 commits
  • src/data_processing.rs — 2 commits
  • src/elevation — 2 commits
  • src/overture — 2 commits
  • (root) — 1 commit
  • .github/workflows — 1 commit
  • docs/one_world.md — 1 commit
  • src/biome.rs — 1 commit
  • src/block_definitions.rs — 1 commit
  • src/floodfill_cache.rs — 1 commit
  • src/main.rs — 1 commit
  • src/mapillary — 1 commit
  • src/world_utils.rs — 1 commit

Notable commits

  • fix: Fix crashes reported by 3.2.0 telemetry
  • fix: Fix the Linux build and harden One World locking and cleanup
  • change: Add One World: one persistent Java world that every generation extends
  • change: Add a terrain height multiplier
  • change: Add opt-in cave generation
  • change: Address code review
  • change: Address code review
  • change: Address code review and further refinements
  • change: Adjust benchmark reference values
  • change: Drop the flat template region from a void world
  • change: Fetch archive tiles in parallel and report bytes on the wire
  • change: Formatting
  • change: Give military areas grass and worn ground instead of a concrete slab
  • change: Harden tile decoding against a hostile archive index
  • change: Improve building details
  • change: Improvements and code review changes
  • change: Join multipolygon rings split over several ways before filling them
  • change: Keep buildings off runways drawn as areas
  • change: Keep buildings off runways, and traced roofs off taxiways and aprons
  • change: Keep cave features whole across tile seams
  • …and 44 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

louis-e/arnis was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit daee5a7bff2403499c2369ae37328a7fea480f19 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d46da229e3fd.