Skip to content

[draft] Add OSM/Arnis-style city feature prototype - #21

Draft
amithyst wants to merge 9 commits into
Yucareux:mainfrom
amithyst:wlb/arnis-feature-source
Draft

[draft] Add OSM/Arnis-style city feature prototype#21
amithyst wants to merge 9 commits into
Yucareux:mainfrom
amithyst:wlb/arnis-feature-source

Conversation

@amithyst

@amithyst amithyst commented May 4, 2026

Copy link
Copy Markdown

Summary

This is a draft prototype for bringing Arnis-style real-world city detail into Tellus without importing pre-generated region files.

The branch adds:

  • a neutral external feature layer for roads, buildings, areas, lines, and points
  • a cache-first Overpass/OSM source with local raw JSON cache, endpoint probing, cache estimation, and bounded prefetching
  • OSM/Arnis-style city rendering details: tagged road widths/surfaces/lanes/sidewalks, bridge rails, tunnel shells, railway/barrier/water/landuse/leisure/natural surfaces, parking lots, street furniture, small POIs, entrances, and city-scale vegetation
  • building metadata improvements for material/color/roof tags, storefront facades, and roof height handling
  • Arnis-inspired deterministic tree shapes for wild trees and OSM natural=tree nodes
  • an in-game map waypoint/teleport UI prototype for Earth worlds
  • docs tracking the integration approach and Arnis parity status

Why

Tellus already owns the realtime Earth terrain generator, projection, tile caches, and chunk lifecycle. Arnis has useful OSM-to-Minecraft city-detail rules, but its implementation is an offline/export-style generator. This prototype ports the ideas into Tellus' chunk generator so features can be generated live from cached OSM/Overpass data while preserving Tellus terrain ownership.

Notes for maintainers

This is intentionally opened as a draft because the diff is large and likely needs to be split before review. The most upstreamable first slice is probably the neutral external feature model plus the cache-first Overpass source. Some UI/default naming still reflects the local WLB test workflow and can be renamed or removed before a final PR.

Network behavior is cache-first by default with bounded session fetches, so cached areas do not re-download data. Runtime toggles are available for disabling Overpass, forcing cache-only mode, limiting session network tiles, or changing endpoints.

Validation

Validated locally with:

GRADLE_OPTS='-Xmx4g' ./gradlew --no-daemon :mc1201:test :mc1211:test :mc1201:build :mc1211:build

The active 1.20.1 test jar was also exercised in a large Forge/Connector modpack enough to catch and fix a bridge-edge bounds crash in chunk generation. mc261 files were kept roughly in parity for settings/UI pieces but were not part of the final build validation in this branch.

@graperpie

Copy link
Copy Markdown

hi there, this looks super interesting but could you if possible show some screenshots on how this looks? (also use DH if possible otherwise it's okay), im looking to make a build of this myself sometime in the future

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants