Saved document schema · Terrain authoring example · Lighting and scene controls · 3D input and export reference

Aether 0.10.151 terrain reference

The browser editor, shared desktop editor and shared MCP runtime are 0.10.151. Native Studio/Player/MCP/CAD binaries remain CP139. This update adds a saved terrain operation stack, hydraulic and thermal simulation, erosion maps, tiled terrain with distance LOD, mask-driven surface color/roughness, static-model instanced scatter, and high-bit-depth RAW import/export.

Start in the editor

Open Terrain Generation, expand Terrain simulation, and enable the pipeline. Add or reorder Noise, Hydraulic, Thermal, Terrace and Strata operations. The terrain graph displays the saved sequence. Parameters and the operation order are stored in the project, so exporting again reproduces the same configuration.

The original erosion slider remains a legacy generator parameter. Use the Hydraulic operation for sediment transport. Existing projects without a pipeline or imported heightfield retain their previous terrain heights. No automatic erosion is applied to old projects.

Hydraulic erosion runs deterministic droplets downhill across the heightfield. Each droplet carries water and sediment, erodes according to slope and capacity, deposits sediment when capacity falls or it moves uphill, and loses water through evaporation. Sediment leaving the open terrain boundary is counted separately. Thermal erosion redistributes material above a talus slope. Wear, deposit and flow channels accumulate across the simulation operations. This is a terrain-generation simulation, not a real-time fluid solver.

Resolution and tiling

Live simulation uses 128, 256 or 512 cells per side. The validator also limits estimated live work; reduce steps, rainfall or resolution if the budget is exceeded. Geometry resolution is separate, up to 2048 cells. A higher mesh resolution cannot restore detail absent from the simulation grid.

Enable tiled rendering to split geometry into chunks with distance-dependent detail and shared boundary heights/normals. Skirts conceal gaps between different levels of detail. Chunks remain resident; this is not out-of-core world streaming. World width/depth can be up to 8192 metres. Collision and gameplay terrain queries use the live simulation grid.

Export terrain maps rebuilds the whole simulation in a background worker at the chosen resolution, up to 4096 cells (4097 samples per side). It then splits the result into 128-, 256- or 512-cell tiles, duplicating the common edge sample. A 4096-cell export with 256-cell tiles produces 256 tiles. This is a new full-resolution bake, not enlargement of the live preview. Erosion details can change with resolution, so the 4K bake is not an exact high-detail copy of the live 512-cell terrain.

Large exports use substantial memory. A 4K export of all maps can approach a gigabyte of working memory; use fewer maps or a lower resolution on mobile devices. Cancel terminates the worker. Export does not change the saved project or replace the live collision grid.

Surface masks and maps

Surface layers blend in saved order using height, slope, wear, deposit or flow. Each layer specifies a range, transition width, color and roughness. Height/wear/deposit use metres; slope is rise over horizontal distance; flow is accumulated droplet-water visitation, not calibrated river discharge. The supplied erosion palette is a starting point, not a photorealism preset.

The renderer bakes layer color and roughness into textures from the live grid. These layers do not yet blend imported scanned image textures or form a biome graph. The map exporter provides albedo, tangent normal, roughness and approximate local ambient occlusion PNGs, plus 32-bit float wear/deposit/flow RAW maps. Normals and AO are derived from terrain heights. AO is a local horizon approximation, not ray-traced occlusion.

Heightfield interchange

Import supports little-endian unsigned 16-bit RAW and little-endian 32-bit float RAW. Specify rows and columns explicitly; 16-bit input also requires the height minimum and maximum in metres. Samples are row-major, columns run along world +X and rows along world +Z. Input limits are 2049 samples per side, finite heights within ±10000 metres, and the existing 32 MB project limit. Imported data replaces the base generator before the operation stack and saved sculpt stamps.

Exports provide height.r16 and/or height.r32, wear.r32, deposit.r32, flow.r32, albedo.png, normal.png, roughness.png and ao.png for each selected tile. terrain.json documents sample counts, tile origins, spacing, global 16-bit height range, channels and coordinate conventions. RAW data has no header. Adjacent tiles share identical edge samples. EXR, 16K export and automatic tiled-heightfield reassembly/import are not implemented.

Instanced scatter

Import a static GLB/OBJ asset, then add a layer under Instanced scatter. Set count, seed, scale range and filters for height, slope or a terrain mask. The renderer batches transforms by mesh, material and spatial tile using GPU instances. Scatter layers are stored separately from actors and do not consume the 150 actor budget.

Limits are 50000 requested instances per layer, 100000 per scene and 32 layers. Filters can leave fewer placements than requested; inspect the placed/rejected counts. Model complexity and material count still determine performance. Skinned and morph-target models are rejected. Instances have no individual rigid bodies, gameplay identity or animation. Use regular actors when those features are required.

The older aether_terrain_scatter tool still creates one actor per placement for compatibility. Use aether_scatter_layer_upsert for instancing.

MCP reference

Connect to the official endpoint https://modeljlabs.com/aether/workspace/mcp. All mutation tools use the normal project_id and expected_revision fields. Read the resulting revision before the next write. aether_document_schema includes pipeline, heightfield, tiling, layers and scatter fields. The JSON schema and terrain authoring example linked above are readable downloads.

New tools: aether_terrain_pipeline_set, aether_terrain_layers_set, aether_terrain_heightfield_import, aether_terrain_pipeline_inspect, aether_terrain_channel_tile, aether_scatter_layer_upsert, aether_scatter_layer_remove and aether_scatter_inspect. The tool catalog specifies exact arguments and bounds. Use the browser/desktop background map exporter for 2K/4K jobs; channel_tile reads the live terrain grid.

Example pipeline payload, in addition to the project/revision fields:

{"pipeline":{"resolution":256,"operations":[{"kind":"noise","amplitude":8,"frequency":0.015,"octaves":6,"persistence":0.5},{"kind":"hydraulic","seed":7,"rainfall":0.15,"steps":48,"inertia":0.2,"capacity":4,"erosion":0.35,"deposition":0.3,"evaporation":0.025,"radius":2},{"kind":"thermal","iterations":12,"talus":0.6,"strength":0.2}]}}

Example instanced layer payload; tree-glb must match an existing imported asset ID:

{"layer":{"id":"forest","assetId":"tree-glb","count":5000,"seed":7,"minHeight":0,"maxHeight":100,"maxSlope":1.2,"scaleMin":0.8,"scaleMax":1.3,"tileSize":128}}

The pipeline has at most 12 operations. Noise supports amplitude, frequency, octaves, persistence, seed and ridged mode. Terrace quantizes heights with adjustable step and blend. Strata adds directional sinusoidal bands; it is not a geological folding solver. Saved sculpt stamps apply after the stack. This is an ordered operation stack, not a general node graph with arbitrary branches.

Verification and remaining limits

Automated checks cover sediment/material balance, downhill deposition, deterministic masks, flat-terrain stability, thermal conservation, legacy terrain compatibility, shared tile edges/normals, LOD/skirt geometry, instanced batches, RAW round trips, schema validation, map ZIP integrity, 2K/4K simulation and desktop/shared export parity. A 5000-instance test produced four spatial draw batches without adding actors. Actual 4K simulation/export processed 16.8 million height samples and produced 256 tiles.

Software-rendered Chromium exercised the editor, simulation controls, surface layers, background map download and standalone WebGL game startup. These checks do not certify physical GPU performance, WebGPU visual parity or Windows/Linux graphical installation. The unchanged native binaries do not gain the shared terrain pipeline through a version-label change.

Still outside this release: EXR/16K interchange, out-of-core terrain streaming, scanned-texture mask blending, a biome system, river/lake authoring, fluid simulation, general graph composition, and individual physics/animation for scattered instances. The terrain example is an authoring scene; it does not include gameplay rules.