Saved document schema · Lighting, terrain and part-color example · 2D runtime reference · 3D input and export reference
Aether 0.10.150 — lighting, terrain and composed models
Browser editor, shared runtime/MCP and Windows/Linux shared editor report 0.10.150. Native modeling, CAD and native binaries remain CP139. This release updates the shared editor and exported browser players, not all native rendering features.
Lighting
Open the World atmosphere settings button in the Inspector. The new Lighting section is available for general 3D projects. Exposure existed previously, but its controls were under mission settings. Ambient hemisphere fill was fixed and is now editable.
The environment fields are exposure (0.1..3), ambientIntensity (0..8), ambientSkyColor and ambientGroundColor (#RRGGBB), sunIntensity (0..8), and environmentIntensity (0..3, HDR environment only). Ambient fill lights shaded surfaces from the sky and ground hemispheres. Exposure multiplies the image before tone mapping; it does not change the sun position. A zero ambient intensity is valid. Existing projects retain their previous defaults when these fields are absent.
{"name":"aether_configure_environment","arguments":{"project_id":"YOUR_PROJECT","environment":{"exposure":1.6,"ambientIntensity":2.8,"ambientSkyColor":"#d7e4d7","ambientGroundColor":"#62704b","sunIntensity":3.2}}}
These saved settings drive editor Play and WebGL2/WebGPU browser players. HDR environment intensity has an effect only when an HDR environment is active. No HDR download is needed for ambient fill.
Terrain seed and compatibility
The existing seed was not unused: fractal/landscape noise and vegetation already used it. In the classic generator it mostly shifted fine surface noise, while the major hills and river retained a fixed layout. That made some seed changes hard to distinguish.
seedMode="full" now also varies the classic terrain's major layout through a deterministic coordinate transform. The existing eroded and landscape generators keep their seeded noise. The same parameters and seed produce the same terrain in the editor, exported game and headless height queries.
Existing projects with no seedMode keep their original classic terrain. Changing Variation seed or clicking New variation opts into full variation. aether_configure_terrain likewise selects full when seed is supplied, unless seedMode is explicitly supplied. Direct project import preserves the saved seedMode, including its absence. Set seedMode="legacy" when intentionally matching an older classic scene. Changing the seed does not delete saved sculpt stamps.
{"name":"aether_configure_terrain","arguments":{"project_id":"YOUR_PROJECT","terrain":{"generator":"legacy","seed":54321,"seedMode":"full"}}}
Sculpt brushes
The Terrain inspector now offers Raise, Lower, Smooth and Flatten. A stamp has x, z, radius (0.5..20) and strength (up to 10). Raise/lower apply a signed height displacement with radial falloff. A legacy stamp without mode retains the original signed-strength behavior.
Smooth blends toward the neighboring height samples; Flatten blends toward its required targetHeight, in terrain height units. For these two modes, absolute strength divided by 10 is the blend amount: 10 reaches the target at the center, lower values blend partially. The brush uses radial falloff. Stamps are applied in saved order, so smoothing includes earlier sculpt changes. Raise/lower-only projects retain the original analytic evaluator. Smooth/flatten use a cached 257-by-257 heightfield with bilinear sampling shared by rendering, navigation and height queries. This is heightfield sculpting, not volumetric caves or mesh retopology.
{"name":"aether_terrain_sculpt","arguments":{"project_id":"YOUR_PROJECT","stamps":[{"x":0,"z":0,"radius":8,"strength":10,"mode":"flatten","targetHeight":2},{"x":0,"z":0,"radius":10,"strength":4,"mode":"smooth"}]}}
The 500-stamp budget remains. Flatten rejects a missing targetHeight. Clearing sculpting removes stamps; undo restores the prior project state.
Composed part colors
Each shape in a modelRecipe accepts an optional color. This applies to box, polyhedron and lathe shapes. A shape without color inherits the actor color. The model inspector's Composed part colors section lets you edit each part or choose Inherit. Large recipes are paginated.
{"shapes":[{"kind":"box","min":[-2,0,-1],"max":[0,2,1],"color":"#ff4422"},{"kind":"box","min":[0,0,-1],"max":[2,2,1],"color":"#2288ff"}]}
Pass that recipe to aether_model_compose. The saved recipe rebuilds geometry material groups in editor Play and game exports. Repeated colors share materials and consecutive matching groups are merged. Roughness and metallic remain actor properties. This is not a texture-painting system. Geometry-only OBJ consumers may not carry materials; the guarantee here covers project and game exports.
Schemas, examples and validation
Use aether_document_schema for the complete saved schema. aether_model_compose also exposes shape colors in its recipe schema. The reference links a readable scene demonstrating lighting, sculpting and three differently colored composed parts.
Automated checks cover field validation, zero ambient intensity, deterministic seeds, old classic terrain compatibility, smooth/flatten results, ordered stamps, color inheritance, material groups in both player sources, matching height samples across editor and worker, exported HTML and desktop MCP parity. Existing 2D lifecycle, equality, random, sound-authoring and widget-event tests remain passing.
These checks inspect real runtime geometry/materials and generated code. They are not physical-GPU visual certification. A live graphical Windows/Linux installation and customer-scene appearance have not been certified here. The customer's original dark scene was not supplied.