REFERENCE

Terrain and generation reference

Every control that shapes the heightmap: brushes, stamps, coastlines, sea level, the Generate modal, models and their ground sample distances.

This page lists every control that changes elevation, with its real default, its real range and the engine key it writes. Colour controls live in Colour and climate reference; this page stops at the point where the heightmap is final. For the workflow around these controls, read Painting terrain and Enhancing terrain.

How to read this page#

The Engine key column names the field the control writes. Three kinds appear:

  • Wire params. Keys of DEFAULT_PARAMS or of the POST /api/worlds/{id}/generate body. These reach the engine and are recorded in provenance.
  • Request fields. Keys of a one-shot request such as the coastline apply payload or the Deterrace run. They are not persisted as world settings.
  • Client state. Brush geometry that never leaves the app's own interface layer; it is turned into painted texels locally and only the resulting heightmap goes to the engine. These are marked client.

Ranges are the ones the control enforces. Where the API accepts a wider band than the slider offers, both are given. Every spatial figure is ground distance unless it says pixels.

Physical scale#

Scale is set once, in the setup wizard, and everything downstream is denominated against it. Changing it later means rebuilding the world.

ControlEngine keyDefaultRangeWhat it does
Map width (km) (flat map)extent_km[0]200 km1 to 100 000 kmGround width of the single rectangle. Locked once a heightmap draft exists.
Equatorial circumference (km) (whole world)extent_km[0]40 000 km1 to 100 000 kmGround distance around the equator. Sets the scale every region inherits.
Planet radius (km) (whole world)planet_radius_km6371 km1 to 100 000 kmSphere radius used for the oblique Hammer projection each region is cut with.
Height at white (m)peak_m4000 m1 to 100 000 mLand elevation that pure white in your imported heightmap decodes to.

A blank globe starts as a 4096 x 2048 equirectangular ocean planet with no continents and no seed.

Section geometry#

A region cut off the globe carries its own raster geometry. These are set in the region composer's Advanced controls.

ControlEngine keyDefaultRangeWhat it does
Output long sideoutput_long_side2048 pxserver accepts 32 to 8192 pxPixel size of the longest edge of the new section's raster.
Overlap policyoverlap_ids handlingAllow overlapAllow / RejectWhether a selection that overlaps an existing region is refused. A rejection can be retried in place with Allow overlap.
Feathermargin_px32 pxfixed on this routeExtra margin carried around the drawn selection so edits at the edge have context.
Square cropsquare_cropofffixed on this routeRegions keep the aspect of what you drew.
TO CONFIRMthe region composer's Output long side field allows up to 16 384, and section_service.MAX_EDGE refuses anything above 8192 with "output_long_side exceeds bounds". Confirm whether the field should be clamped to 8192 or the server limit raised.

Two extents exist and they are not interchangeable. selection_extent_km is the great-circle span of what you drew. extent_km measures the persisted raster, which includes the feather, so it runs about 20 % larger on a region with the default 32 px margin and about 45 % larger on a globe-colour tile. The Regions list and the section footer both quote the selection.

Hard limits: a section crop may not exceed 8192 px on an edge or 32 megapixels in total, and a selection whose farthest vertex sits more than 100 degrees from its centre is refused as not representable as one local section.

Sea level#

Sea level is 0 m by definition. Land is positive, ocean is negative, and every section carries its own decode contract:

elev_m = brightness x scale_m - depth_m

The Sea level slider#

At the top of the Height brush group in Draw mode.

ControlEngine keyDefaultRangeWhat it does
Sea levelterrainSeaLevelNorm (client, committed as a datum rebase)0.500 to 1, step 0.01Moves the waterline through the section's height range. The panel states that 0.50 is the current datum, and the preview updates live as you drag.

At 0 or 1 the panel warns that the endpoint can leave an all-land or all-sea map with no usable coastline. Once a section has been through Generate, it also warns that moving sea level reclassifies land and ocean the model authored. Set sea level before you generate.

Sea level at import#

Authored once, in the wizard's Sea & terrain step, and written into the section's decode contract.

ControlEngine keyDefaultRangeWhat it does
Waterlinesea_level_normthe server's proposal, falling back to 0.50 to 1, step 0.005Brightness counted as sea level. 0 means black is sea level.
Deepest point (m) / Deepest point override (m)floor_depth_m6000 m on an attached bathymetry map, otherwise inferred1 to 100 000 mMetres the darkest ocean value decodes to. Not to be confused with the coastline tool's ocean_floor_depth_m below, which is a different control on a different job.
Ocean depth sourcebathymetry_sourceNo depth in my maps (none/v1)none/v1, heightmap/v1, uploaded-map/v1Where the bathymetry comes from: synthesized, read from the heightmap's own sub-waterline shades, or attached as a separate depth map.
Synthetic sea floorsynth_bathymetryAutoauto, on, offWhether a shelf, slope and abyss are synthesized under a heightmap that carries no depth. Only shown for No depth in my maps.
Values already in metresvalues_in_metresfalsetrue / falseEXR and DEM passthrough. When true, sea_level_m (default 0.0 m) states which metre value counts as sea level.

With a normalised heightmap, the value above the waterline maps as (b - s) / (1 - s) x peak_m and below it as (b - s) / s x depth_m, so the two branches are continuous and b == sea_level_norm is exactly sea level. A heightmap that encodes elevation and bathymetry as one continuous ramp implies depth = peak x s / (1 - s), which is what the inferred depth reports. The waterline can also be read off a land mask or a Köppen climate map of the same size rather than off the heightmap. See Setting up a world.

Sea level during Generate#

ControlEngine keyDefaultRangeWhat it does
(fixed by the modal)water_level_m0 many finite metre value over the APIElevation the generator counts as sea level for the land/sea split, the water-tile skip and the land reconcile.

Both generation paths anchor the datum to the input: the model authors detail, the input owns sea level.

The height brush#

Four brush modes share one group. Set height is the continuous brush; Stamp, Landmass and Coast are placement tools and are covered further down.

Size#

ControlEngine keyDefaultRangeWhat it does
SizeradiusM (client)3 % of the section's short ground edgemin = larger of 50 m and 0.2 % of the extent; max = smaller of 500 km and 50 % of the extentBrush radius in ground metres, on a log10 track. The readout is diameter.

The bounds are per section, so the slider always spans something useful. The size is shared with the Biome brush. A section that records no ground scale sizes the brush in texels instead and says so in the panel; its physical size then differs between sections.

Strength, flow and edge#

The pair of sliders under Size swaps depending on whether the mode is relative or absolute.

ControlEngine keyDefaultRangeWhat it does
Strength (Relative only)strength (client)250 m10 to 2000 m, step 10Metres added or removed per stroke pass, or per second while you hold the brush still.
Flow (absolute modes)flow (client)1.000.05 to 1, step 0.05Fraction of the way each dab moves the surface toward the target height.
Falloff (Relative only)hardness (client)0.500 to 1, step 0.05Exponent of the dab profile. Higher is a sharper shoulder.
Edge hardness (absolute modes)levelHardness (client)1.000 to 1, step 0.05Fraction of the radius that stays flat-topped. The readout appends · hard at 0.95 and above.
Lower (carve) (Relative only)dir (client)off (raise)on / offFlips the stroke from raise to carve.

Set-height modes#

ModeWhat it does
RelativeAdds or subtracts around the current surface.
SetWrites exactly the target height.
Raise toOnly lifts ground that sits below the target.
Lower toOnly drops ground that sits above the target.
ControlEngine keyDefaultRangeWhat it does
Target heighttargetM (client)0 mthe section's own span, widened to at least -6000 to +9000 mThe elevation the absolute modes write toward. Step 100 m.
Snap to levelssnapToLevels (client)offon / offSnaps the target, and any eyedropper sample, to the nearest saved level.

The floor and ceiling are the abyssal-plain reference the coastline tool uses and an above-Everest ceiling, so you can always paint outside the section's current range. When the target sits outside that range the panel warns that Apply changes will widen the span, and that the 16-bit height step grows with it.

The level palette#

Saved elevations that Deterrace later reads as its band centres. Add the current target with + Add current (n m); each saved level is a chip you can click to reuse or remove. [ and ] step the target through the palette in every mode except Relative. Alt-clicking the canvas samples the height under the cursor into the target.

Landform stamps#

One pointer-down places one landform. Dragging does not build it up. Each tile carries its own measured ground extent and relief, so placing one at 1x puts a real range down at the size that range actually is.

ControlEngine keyDefaultRangeWhat it does
Scale (no jitter)stampScale (client)1x0.1x to 10x, log10 track, step 0.01Multiplier on the tile's true ground size. The cap note reports the resulting span, and appends · true size within 2 % of 1x.
Scale (jitter on)stampJitter.scaleMin/Max (client)0.65x to 1.5xsame trackThe band each placement samples from.
Rotation (no jitter)stampRotation (client)0 degrees-180 to +180 degrees, step 0.01 radHeading of the placement.
Rotation (jitter on)stampJitter.rotationMin/Max (client)-180 to +180 degreessameThe band each placement samples from.
OpacitystampOpacity (client)1.000.05 to 1, step 0.05How strongly the stamp writes into the surface.
BlendstampBlend (client)NormalNormal / Add / Max / MinMax and Min keep the higher or lower of stamp and terrain, which is usually what you want for heights.
Keep out of open waterstampRespectWaterline (client)onon / offStops Add and Max growing land where the sea already is.

Jitter#

ControlEngine keyDefaultWhat it does
Jitter, vary each stampstampJitter.on (client)offTurns the two Scale and Rotation sliders into ranges.
Vary examplestampJitter.example (client)onEach click drops a random landform from the open category.
Mirror flipsstampJitter.mirror (client)onAllows horizontal and vertical mirroring per placement.

Categories are the tile bank's own feature classes: 1 Fold, 2 Block, 3 Rift, 4 Plateau, 5 Hills, 6 Volcanic, 7 Canyon, 8 Dunes, 9 Range, 10 Region. One is open at a time. The panel refuses to size a stamp on a section with no ground scale, and warns when the placement is wider than the section.

Landmass shapes#

A landmass placement writes no metres. It stages a land or sea decision, and the server turns the accumulated batch into terrain with a real continental margin. There is no cap on how many placements go into one coastline, which is what the panel means by PLACE AS MANY AS YOU LIKE.

ControlEngine keyDefaultRangeWhat it does
Placingop per dabAdd landAdd land / Remove landRemove land erases with the same outlines, which is how a bay, a strait or a lagoon gets a real coastline instead of a circle.
Scale (no jitter)landmassScale (client)1x0.2x to 200x, log10 trackMultiplier on the outline's measured true size.
Scale (jitter on)landmassJitter.scaleMin/Max (client)0.75x to 1.35xsame trackThe band each placement samples from.
RotationlandmassRotation (client)0 degrees-180 to +180 degreesHeading. With jitter on this becomes a -180 to +180 degree range.
Jitter, vary each placementlandmassJitter.on (client)offon / offAs for stamps, with Vary example and Mirror flips on by default.

Shapes are grouped by real size class: 1 Skerry (under 3 km across), 2 Islet (3 to 8 km), 3 Isle (8 to 20 km), 4 Island (20 to 50 km), 5 Large island (over 50 km). Above 5x the panel states plainly that the outline is no longer that island, it is that island's outline used as a continental silhouette. The shape stays plausible because coastlines repeat at every scale; the size is yours.

Coastline detail#

Shared with the Coast lasso: one settings object, one continental margin per section.

ControlEngine keyDefaultRangeWhat it does
Reshape strengthfidelity (inverted: strength = 1 - fidelity)0.80 (fidelity 0.20)0 to 1, step 0.05How far the engine departs from the outline you stamped. Reads Faithful below 0.4, Balanced to 0.7, Bold above.
Roughnesscoast_roughness2.00 to 3, step 0.1Amplitude of the re-injected coast detail. Rugged over relief, calm over flats.
Island densityisland_density100 to 30, step 1How many offshore islets the refiner grows.

The outline you place is smooth at its new size, so this band re-injects real coast detail at the right physical scale.

Sea floor#

ControlEngine keyDefaultRangeWhat it does
Shelf depthshelf_depth_m130 m20 to 400 m in the panel, API accepts up to 2000 mDepth of the continental shelf outside the new coast.
Shelf widthshelf_width_km60 km5 to 200 km in the panel, API accepts up to 500 kmHow far the shelf runs before the slope begins.
Ocean floorocean_floor_depth_m6000 m1000 to 11 000 m, step 250Abyssal-plain depth the slope descends to.

The coast lasso#

Trace a loop and the coast inside it is redrawn. Nothing outside the loop changes, the preview is live, and Revert is available after you apply. The lasso previews from the applied terrain, so it refuses to run while you have unapplied strokes.

Coastline shape#

ControlEngine keyDefaultRangeWhat it does
Reshape strengthfidelity (inverted)0.80 (fidelity 0.20)0 to 1, step 0.05Faithful keeps your painted waterline; Bold grows rias, bays and islets from it.
Roughnesscoast_roughness2.00 to 3, step 0.1Amplitude of the injected detail.
Detail octavesoctaves41 to 8, step 1How many scales of coast detail are added.
Bay densitybay_density60 to 30, step 1How many bays are cut into the traced coast.
Island densityisland_density100 to 30, step 1How many offshore islets are grown.

Sea floor#

ControlEngine keyDefaultRangeWhat it does
Shelf depthshelf_depth_m130 m20 to 400 mAs above.
Shelf widthshelf_width_km60 km5 to 200 kmAs above.
Ocean floorocean_floor_depth_m6000 m1000 to 11 000 mAs above.
Blend radiusblend_radius_km145 km20 to 300 km, step 5How far offshore the new margin blends into the existing sea floor.
Keep out of open watercoast_bathymetryonon / offWhether the apply writes a real continental margin under the new coast.

The lasso's preset differs from the landmass preset it inherits from: coast_bathymetry true, fidelity 0.2, coast_roughness 2.0, dejag_strength 12, octaves 4.

TO CONFIRMKeep out of open water on this band writes coast_bathymetry, which is the sea-floor switch, and the same label on the Stamp band writes stampRespectWaterline, which is a different thing. Confirm which label is wrong.

Coastline settings with no control#

These ship at fixed values on every coastline apply. They are on the wire, so the API can set them.

Engine keyDefaultWhat it does
land_threshold0.0Field value that counts as the land cut.
dejagcorridorDe-jagging strategy. uniform and adaptive also exist.
dejag_strength30.0 on a landmass apply, 12.0 on the lassoHow hard the traced outline is smoothed before detail is added.
preserve_areafalseKeeps the land area constant across the refine. The Preserve land area toggle in the Generate modal sets this, along with zero island and bay density.
island_kmauto: 2 % of the extent, clamped 8 to 300 km, then 70 % of thatCharacteristic island size.
bay_kmauto: 2 % of the extent, clamped 8 to 300 kmCharacteristic bay size.
coastal_plain_km15 kmWidth of the flat coastal plain behind the new shore.
slope_width_km85 kmWidth of the continental slope between shelf and abyss.
seed7Same seed, same coast.

Deterrace#

Melts the risers of a contour-quantized heightmap into ramps while every pixel stays inside the elevation band it was drawn in. Land only: the sea floor is untouched.

ControlEngine keyDefaultRangeWhat it does
Radiussigma_px2.0 px0.5 to 8 px in the panel, API accepts 0.25 to 32 pxSmoothing radius in pixels of this section's grid. The panel converts it to metres for you.
Iterationsiters30020 to 1000 in the panel, API accepts 1 to 5000How many relaxation passes run.
Stop once further passes can no longer change the resultauto_stop_epschecked, sends 0.1on / offStops early once the largest per-pixel move of a pass falls below 0.1 m.
Level tablelevels_mdetected from the sectionat least one level, strictly increasingOne elevation per level. Each level's band runs up to the next level. Rows are editable and removable.
Max heighttop entry of bands_mone contour step above the top level, or the highest land seenat or above the top levelThe upper bound of the top level's band. Equal to the top level keeps the summit flat.

The modal scores the section first and reports what share of land sits on a detected level. A low score discourages the run, it never blocks it. Running Deterrace invalidates a refined coastline, so refine the coast afterwards rather than before.

Terrain models#

The model is the scale contract. Its coarse cell is a fixed physical size, and the decoder super-resolves each cell to a fixed 256 x 256 block, so the cell size decides the feature scale of everything the model invents. Picking the wrong one gives you correct-looking terrain at the wrong scale.

ModelIdCoarse cellPixels per cellNative ground sample distance
90 mxandergos/terrain-diffusion-90m23.0 km25690 m/px, continental
30 mxandergos/terrain-diffusion-30m7.7 km25630 m/px, playable
Base-liteloresat/base-lite23.5904 km20about 1.18 km/px, continental

90 m is the default and the recipe the reference world was generated with. Base-lite is our own whole-world model: it runs its own fixed recipe, bypasses the coarse grid the other two derive from your extent, and ignores precision, output resolution, SNR, rainfall and coastline settings.

The modal steers you between them:

  • A 30 m run whose extent spans more than 128 coarse cells is flagged as beyond the continental threshold, with the note that 90 m matches the reference recipe at that size and keeps native output within reach of the combine ceiling.
  • Base-lite below a 3000 km long edge is flagged because it invents roughly the 2.7 to 46 km band and adds nothing finer than about 2.4 km, so at that size the 90 m and 30 m models produce far more detail.

Which models appear depends on what is installed. The list is filtered to the server's allowed models, and base-lite additionally needs its runtime environment variables set.

The Generate modal#

Re-synthesizes the section's terrain at true physical scale, then colours it. Climate is inherited unchanged.

Model and precision#

ControlEngine keyDefaultRangeWhat it does
Terrain model capabilitymodelthe server's default, falling back to 90 mthe three models aboveSets the coarse cell, and therefore the feature scale.
Precision (hidden for Base-lite)dtypeHalf · bf16bf16, fp32Inference precision. Baked into the loaded pipeline, so the sidecar reloads when you change it.

Output resolution#

ControlEngine keyDefaultRangeWhat it does
Native output (uncapped) (hidden for Base-lite)combine_res_cap and output_resolutionoffon / offOff, the run targets the workspace Output selection. On, it assembles at the model's own 256 px per cell with no combine ceiling, which is the Blender Seamless reference behaviour.

The modal states the resulting inference size, pixels per cell and approximate metres per pixel before you start. At or above a 4 GB estimated assembly it warns that the assembly canvas needs roughly that much system RAM while combining chunks, and that the final heightmap PNG will be similarly large.

Detail#

Three preset cards lead the section: Sketch (90 m, SNR 0.20, x1, the default), Faithful (30 m, SNR 0.05, x1) and Faithful, faster (90 m, SNR 0.05, x2). A preset sets model, SNR and feature scale together; moving any dial off a preset's exact values simply leaves the preset. The feature-scale slider shows the resulting effective cell size in km.

ControlEngine keyDefaultRangeWhat it does
Elevation SNR (hidden for Base-lite)snr_elev0.200.05 to 1.0, step 0.05Adherence to the terrain you painted, above the model's scale floor: the model follows your map above about 6 cells (roughly 138 km at 90 m or 46 km at 30 m, divided by the feature scale), sketches 1.5 to 6 cells, and invents everything finer at any SNR. Lower sticks closer above that limit. Do not read this as a quality dial and do not invert it. The default 0.20 keeps the inventive recipe that suits hand-drawn maps. When authored coastlines and shallows must survive a model-authored run, use 0.05: measured on a real continental section it roughly doubles shelf-bathymetry adherence and keeps authored water bodies recognisable, with no drowned-land penalty.
Feature scale (hidden for Base-lite)feature_scale×1×0.5 to ×4, step 0.25The grain of everything the model invents. The working grid is sized as if the section spanned its extent times this value: above ×1 landforms come finer and denser, below ×1 broader and more massive. The world's real size — and every kilometre-denominated system downstream — is untouched. Cost grows with the square of the value: ×4 is roughly 16× the generation time, and a large section can tip over the single-shot cap into the chunked path.
Seedseed00 and up, step 1Same seed with the same conditioning gives identical terrain.

Rainfall conditioning#

ControlEngine keyDefaultRangeWhat it does
Off / Use rainfall (hidden for Base-lite)use_rainfallUse rainfallon / offFeeds the section's rainfall layer to the model's precipitation channel. Falls back to elevation-only conditioning when the section has no rainfall layer.
(fixed by the modal)snr_precip0.20any finite value over the APIAdherence on the precipitation channel. Only meaningful when rainfall is on.
(fixed by the modal)precip_max_mm3000 mm/yrany finite value over the APIThe millimetres per year that rainfall brightness 1.0 means.

The physical scale comes from the rainfall layer's own recorded millimetres per year at white. Only a layer with no recorded scale is read at the 3000 mm/yr default, which silently mis-scales a map exported at any other range. That failure is invisible: you get a plausible-looking world conditioned at the wrong climate.

Coastline#

ControlEngine keyDefaultRangeWhat it does
Model authors coastlinemodel_authors_coastlineonon / offOn, bathymetry guides a model-authored shore and generated ocean fades back to the authored sea floor by 600 m depth. Off, the current land and sea boundary is preserved exactly.
Enhance coastline before generationcoastline_enhanceoff, and disabled while Model authors coastline is onon / offRuns the coastline refiner as a pre-pass. Intended for terrain with no meaningful bathymetry.
Preserve land areacoastline_params.preserve_areaoffon / offOnly appears when the refiner is on and the model is not authoring the coast. Sends preserve_area: true with island and bay density at 0.

The two are mutually exclusive by validation: asking for coastline enhancement while the model authors the coastline is a 422. On whole-world globe runs model_authors_coastline is forced off, because the open-ocean land-scatter regression is still open.

The fixed part of the recipe#

The modal pins these and states so: "Addon parity: 16-cell chunks, 3-cell overlap, de-block on, bathymetry on, deep-ocean skipping, 0 m water level, retained chunk tiles, and no relief-body remap." They are all on the wire, so the API can change them.

Engine keyDefaultWhat it does
chunk_cells16Coarse cells per GPU read on a chunked run. Memory against batching; never affects terrain or seams.
overlap_cells3Cross-fade margin between neighbouring reads. Turns the per-read DC step into an invisible gradient. 0 abuts hard.
max_coarse_long64Single-shot ceiling on the coarse-cell long edge. Over the cap a section auto-routes to the chunked path rather than erroring.
combine_res_cap32768 px, or 0 when Native output (uncapped) is onTerrain combine ceiling. 0 means uncapped native.
deblock_lowfreq_reconciletrueSolves and blends the per-chunk DC offsets that would otherwise read as square blocks. Needs scipy.
keep_individual_tilestrueRetains each generated read region as a 16-bit PNG plus tiles_index.json, for diagnosis and A/B replay.
skip_water_tilestrueSkips chunks that sit entirely below the coastal fade.
use_bathymetrytrueComposes the conditioning's ocean depth from the bathymetry crop.
target_peak_m0.0 (auto)0 trusts the model's own metres: the land is matched to your map block by block (mean height) and the summits stay the model's. A positive value pins the land peak to it exactly.
relief_body_matchfalseSee below.

Two notes on use_bathymetry. Turning it off does not mean land-only or ocean-at-zero: it keeps a constant ocean floor at ocean_floor_depth_m (6000 m). The model was trained on real DEMs where the sea floor is negative metres, so an ocean at zero reads as flat coastal land and the model invents random coastal relief. A constant floor anchors the coastline in the conditioning itself. Second, conditioning is rebuilt from the authored land heightmap and bathymetry on every run, never from the previous generation's output, so a repeated Generate does not ratchet the sea level upward.

Relief matching#

Two post-processes exist that reshape the model's land body against your input. Both are off, both are reachable only through the API, and both exist for a specific defect.

Engine keyDefaultWhat it does
relief_body_matchfalseLifts each block's land relief distribution toward the input's without moving the coast or the block peak. Aimed at the "flat land under sparse peaks" case, where block maxima already match but the between-peak body stays flat (measured 24 m of relief against the authored 47 m on a 4000 km section). The coastline and the block peak are fixed points of the remap, so it cannot move the shore or invent offshore land. The per-block exponent is clipped so it lifts and never flattens, and it is applied only where the input's body is higher than the model's.
lowfreq_land_swapfalseRe-imposes the authored low band on land. Default off as a deliberate divergence from the add-on: measured on real runs it sank the model's healthy land body below sea level on low-lying worlds, drowning 30 to 32 % of authored land against 0.8 % without it. Kept as the rescue for a pathological global DC bias, nothing else.

relief_body_match is not part of the reference recipe. Turn it on only when you have looked at a render and can name the flat interior it is meant to fix.

Grain rolloff#

Base-lite output carries a rising near-Nyquist tail that aliases into moiré under fractional zoom (measured at 18.7 times real terrain's power at 2 px). Every base-lite pass therefore runs a calibrated radial 13 x 13 FIR rolloff over the deviation from the guide, after stitching and after relief matching.

It is on by default, it is not exposed in the interface, and the server never passes the tool's --no-grain-rolloff flag. Because it filters the deviation and not the guide, authored detail survives untouched, and because the kernel is translation-invariant it is seam-safe across tiles. Content at 4 px and coarser is unaffected.

This applies to base-lite only. The 30 m and 90 m models do not run it.

Revert and snapshots#

Generate takes a snapshot of the hand-authored heightmap before the first run on a section, and Revert to authored heightmap in the modal footer restores it. Deterrace keeps its own snapshot, restored with Revert to previous heightmap. Both buttons appear only when a snapshot exists. A revert protects future generates; it does not undo a generate you have since built on.

Defaults worth leaving alone#

  • snr_elev at 0.20. Small values mean strong adherence to your terrain. Raising it loosens the model from what you painted, which is rarely what someone reaching for a "more detail" slider wants. 0.20 is the value the terrain-diffusion author recommends for imported heightmaps, and it is what the model's own CLI ships as its default. The one deliberate departure: drop to 0.05 for coastal fidelity when a model-authored run must respect authored shallows and island layouts.
  • The model choice. The coarse cell is a physical contract. A 30 m run on a continental extent produces mountains at the wrong size, and the result looks right until you measure it.
  • use_bathymetry on. Off means a constant 6000 m floor, and the constant floor is doing real work. Neither setting gives you an ocean at zero.
  • relief_body_match and lowfreq_land_swap off. The second one drowns a third of the authored land on low-lying worlds. It exists to rescue a pathological run, and nothing else.
  • Sea level before Generate. Moving the waterline afterwards reclassifies land and ocean the model authored, and the editor says so.
  • Grain rolloff on. Stripping it puts moiré into every base-lite world at viewer zoom. If the model is ever retrained the rolloff's calibration constants have to be re-measured against the new output, not just carried over.
  • precip_max_mm at 3000. It is only read when your rainfall layer records no scale of its own. Changing it to match a map that does record a scale changes nothing, and changing it blind mis-scales the climate conditioning invisibly.