Skip to content

settlemaker 2.4.0 — village streets, bridges and biome homes

Choose a tag to compare

@barrulus barrulus released this 10 Sep 19:40
· 29 commits to master since this release

Settlemaker 2.4.0 brings a dedicated village generator, roads shaped by housing demand, timber bridges and biome-specific homes. This is the first official GitHub release since 1.0.0 and includes the intervening 1.1–2.3 work. It is already serving production at settlemaker.com.

Highlights since 1.0

  • A dedicated village engine. generateSettlement selects the village engine for populations up to and including 1,000, and the city engine above that. Both return SVG and GeoJSON with shared version metadata.
  • Village roads that fit the settlement. Shared, irregular streets grow when they provide useful housing frontage. Smaller settlements use narrower, shorter networks. Supplied approach bearings remain intact; arrivals connect to town, local and footpath streets, with a major through-road exception for small roadside hamlets.
  • Greens and landmarks with a place in the village. Greens follow their connecting routes; inns use useful traveller frontage, religious buildings sit near the centre, and large landmarks receive room for their actual footprints.
  • Water and bridges. Coasts form bays and headlands, including at portless settlements. Supplied water polygons preserve river banks and bends. Ordinary village road paint stays out of water, with timber decks at short crossings. Approach roads extend to the tile edge, and exported bounds match the drawn frame.
  • Biome homes and landscape. FMG biome names select the matching dwelling, field and vegetation sets. Tundra dwellings use native snowy roofs, and spare ground gains biome-appropriate vegetation.
  • Generator-native symbols. Wells, mills, market crosses, church marks and tree canopies are placed by the generator. City scene output includes the symbol and mark styling groups introduced in scene version 2.
  • A standalone library. The public repository contains the generator, symbols, tests and tooling. The website is maintained separately and serves the GPL browser library as /lib/settlemaker.js.

Upgrading from 1.0

  • Regenerate cached maps. The 2.0 seed change and subsequent village redesign change layouts and generated feature IDs. Determinism holds within a generator version; include settlemaker_version or the pinned revision in cache keys.
  • Use generateSettlement for automatic village/city selection. generateFromBurg remains the city-generation entry point.
  • URL payload version remains 1 and GeoJSON schema remains 4. This release reports settlemaker_version: "2.4.0". Village route roles, widths, provenance and bridge geometry are additive output fields.
  • FMG adapters must send each measured land approach separately. Two sides of a continuing route share a route_id; through: true never invents an opposite bearing. Send the actual road/trail class in kind, separately from group.
  • Send filled river/coast polygons in coastlineGeometry; the followsRiver hint alone does not draw a river. Sea feeder/coastal routes, airroutes and traderoutes are not village land approaches. Wide-river bridge design remains outside this release.

See the URL API contract, FMG handoff and 2.4.0 notes, and library usage.

Validation

  • 1,296 generator tests passed across 124 files; the release version checks passed all 100 tests in the seven relevant files.
  • All 112 fixed and held-out village examples house their full populations with no building-access failures.
  • Library compilation, script type checks and browser bundle build passed.
  • The production web build and all 110 web tests passed. The deployed library bundle was verified byte-for-byte against the validated build.

Full changelog: v1.0.0…v2.4.0