Repository navigation
v0.3.0
A large release: a data-driven node registry, a unified properties/settings UI, a feature-macro library for common landforms, a new differential-erosion node, surface-detail normals, and editor/export parity work.
Node graph and registry:
- Node types are now a single data-driven registry -- ports, parameters, palette entry, canvas colour, and source-node validation all derive from one descriptor per node, replacing the hand-maintained
executor.rsmatch and scattered metadata. - Node parameters can be driven by graph connections (scalar parameter ports).
- New
Differential Erosionnode: wears soft rock down while hard strata and slope-protected faces stand proud, forming mesas, benches, and stratified walls. Distinct from hydraulic erosion, which follows water flow and carves valleys. - New interactive
Curvenode editor for value remapping. - New
Channel Split/Channel Mergefor splitting a colour buffer into R/G/B/A heightmaps and recombining them; added coast-erosion and lightmap-bake compute operations.
Properties and settings:
- Every settings modal and node-property panel now renders through one shared field renderer -- consistent rows, sliders that update live while dragging plus an editable value box, a reset-to-default control, and whole-row hover tooltips.
- Settings modals gain a search filter and a Common/Advanced split so the fields most maps actually tune are up front and the rest stay one toggle away.
- Node-property sliders show the registry default as a tick and a reset control; parameter descriptions surface as row tooltips.
- Fixed-width label column and panel width so rows stay aligned instead of drifting as the panel settles.
- Action-bar modals close on Escape; section help shows on hover instead of a separate info icon.
Feature-macro library:
- Replaced the old biome macros with a data-driven feature-macro library of standalone landform generators (butte, mesa, plateau, basin, crater, chokepoint, land bridge, river, stream, canyon, island, ridge, and more), each with placement and configuration knobs.
- River, stream, and canyon channels meander; islands get irregular coastlines; primitive features use irregular hand-drawn geometry rather than perfect shapes.
- Path and area features seed editable splines so the initial shape can be drawn by hand.
Terrain and erosion:
- Hydraulic erosion intensity is now resolution-independent (droplet count scales with grid area), so the low-res preview matches the full-res export instead of eroding far harder.
- AutoTexture water bands and the CoastErosion shoreline anchor to the map's actual sea level.
- Mirror symmetry seams are feathered to remove the hard copy line.
- Reconciled hydraulic erosion defaults and dropped a dead method parameter.
Surface detail and normals:
- Procedural tileable detail-normal generator with a detailNormalTex picker in the resources panel; presets render as a relief thumbnail gallery and are generated off the UI thread.
- Surface Detail points at the splat-normal system; detailNormalTex is baked from the heightmap at export when left unset; the redundant heightmap-derived NormalMap node is gone.
Lava and water:
- Lava is detected and emitted via
mapconfig/lava.luainstead of being inferred from water damage. - Water damage is authorable, so caustic water can be set up.
Editor/export parity and CLI:
- GPU-dispatched nodes now match the CPU export exactly; CPU and GPU noise generation are unified.
- bar-cli: heightmap export command, a
--gpuflag, full project validation invalidate, and strict heightmap output in compile/export.
World Machine import tooling:
- World Machine
.tmdimport-evaluation tooling with gap reports, plus link-topology and faithful-translation probes.
Node canvas:
- New and imported nodes size to their port count, so a node is never created shorter than the height it could be manually resized down to.
Validation:
- FinalComposition requires a texture input; full project validation runs in the CLI.
Bug fixes:
- Slider handles stay clear of their neighbours at the value extremes.
- Whole-row hover tooltips no longer cover the field controls they describe.
- Default field values render in the normal text colour instead of a muted placeholder.
- Identity modal labels are corrected and fields fill the row.