Nothing here is bolted on. Sculpting, texture painting, roads and foliage all read and write the same terrain data, so an edit made with one tool is respected by every other.
Four brush modes — Raise, Lower, Flatten and Smooth — apply to the heightmap through a cosine falloff: full strength at the brush center, tapering to zero at the edge, so consecutive strokes blend instead of leaving visible rings.
Flatten locks its target height the moment you press the mouse button, so an entire stroke levels toward one consistent plane instead of chasing the terrain under the cursor. Smooth blends each vertex toward the average of its 3×3 neighborhood, for knocking down noisy detail without fully flattening it.
A separate Grid Resolution slider (10–150) rebuilds the mesh at a different density and bilinearly resamples your existing heights onto it, so raising the resolution for finer detail — or lowering it for speed — never throws away the shape you've already sculpted.
Every vertex carries a 4-way weight across Grass, Dirt, Rock and Sand. Before you paint a single stroke, the terrain seeds itself automatically: grass on mid-height gentle slopes, rock on steep faces, sand in low areas, dirt filling whatever's left — so a fresh terrain already looks reasonable.
The four tiled textures are blended per-pixel in a real GLSL fragment shader, with per-pixel lighting, a cheap ambient-occlusion proxy on steep slopes, and a subtle sheen on rock/sand fractions to sell a wet, mineral look — all mixed with distance fog baked directly into the shader.
Painting nudges the brushed vertices' weights toward the selected layer using the same cosine falloff as the sculpt brush. Any of the four procedural textures can be swapped for your own image, and reset back to the procedural default at any time.
Click empty ground to drop a control point, click and drag an existing one to move it. A Catmull-Rom curve runs smoothly through every point, and the road mesh, terrain carve and prop layers all rebuild live as you edit — nothing needs a manual "apply" for point edits.
Toggle "Complete Track" to stitch the last point back to the first, closing the road into a full loop. "Branch New Road Here" starts a brand-new spline at the currently selected point, so forks and junctions line up exactly without hand-matching coordinates.
The road carves the terrain underneath it: fully flattened within the road's half-width, then blended back into the surrounding landscape over an adjustable margin using the same cosine falloff feel as the sculpt brush. Choose from four procedural road surfaces (Asphalt, Dirt Road, Cobblestone, Brick) or import your own.
Any road can carry any number of independent prop layers — a fence line and a row of lamp posts on the same road, without needing a second road just to add a second prop type.
Each layer has its own spacing, side (left / right / both), offset from the road edge, and a rotation-offset dial for props that were authored facing the "wrong" way. Every instance's yaw is computed fresh from the spline's tangent at that exact point, so a fence visibly turns to follow the road through a bend instead of holding one fixed rotation for the whole run.
Nine built-in types — tree, bush, grass, leaves, mud, sand, rock, flower and dead tree — each defined by a height band and a minimum slope ("flatness"). Painting with "All (mix)" selected weighs every type that qualifies at each spot and picks one, exactly like a natural scatter.
The brush respects minimum spacing between instances so holding the mouse down doesn't pile hundreds of trees on one spot, and an optional soft edge keeps density falling off toward the rim instead of a hard-edged disc. Erase mode removes anything inside the brush radius.
"Force placement" bypasses a type's normal rule entirely — plant a tree on a cliff peak that would normally reject it — and marks that instance so future sculpting never silently deletes it again. Ordinary sculpt strokes only re-glue or cull the foliage inside the brushed area; a full regenerate, flatten, or resolution change re-glues everything at once. Foliage is never placed automatically — the terrain starts empty, with an optional one-shot "Scatter Fill" for a quick random pass.
Drop in a Wavefront .obj — a CC-licensed Sketchfab download or your own Blender export — and set its height range, minimum flatness, scale range and tint color right in the importer. It appears in the foliage Type dropdown alongside the built-ins immediately.
The same pipeline works for road props: import once, choose a "forward axis" so the model orients correctly along a road's tangent, and it shows up in every road's prop-layer Type dropdown next to Fence and Lamp.
Files are picked with the system's native file dialog where available, falling back automatically to a built-in, dependency-free browser with folder navigation and extension filtering when it isn't.
Terrain layers, road surfaces and every foliage prop are generated procedurally at startup — nothing to download or unpack before you can start working.
Adjustable fog density and sky/fog color, baked into the same shader that renders the terrain, for quick day/night or draw-distance moods.
Regenerate, flatten, or resize the terrain and roads re-snap, re-carve, and foliage re-glues automatically — you never have to redo work by hand.