Skip to content

Terrain Presets

Ready-to-use terrain configurations for common landscape types.

import { createTerrainPreset, TerrainBiomes, TerrainPresets } from '@strata-game-library/presets/terrain';
// Use a preset directly
<Terrain {...TerrainPresets.MOUNTAIN_RANGE} />
// Or create with options
const terrain = createTerrainPreset({
biomes: [TerrainBiomes.GRASSLAND, TerrainBiomes.MOUNTAIN],
resolution: 128,
});
BiomeDescriptionKey Features
GRASSLANDRolling green hillsGrass coverage, gentle slopes
MOUNTAINRocky peaksHigh amplitude, snow caps
DESERTSandy dunesTan colors, wind-swept
SNOWFrozen tundraWhite, ice formations
FORESTWooded terrainTree-friendly slopes
SWAMPWetlandsLow elevation, murky
VOLCANICLava terrainBlack rock, red accents
BEACHCoastal sandFlat near water
CANYONDeep valleysSteep cliffs
PLATEAUFlat-toppedMesa formations
TerrainPresets.MOUNTAIN_RANGE = {
biomes: [TerrainBiomes.MOUNTAIN, TerrainBiomes.SNOW],
amplitude: 120,
frequency: 0.008,
octaves: 8,
snowHeight: 80,
rockHeight: 40,
steepness: 0.7,
};
TerrainPresets.TROPICAL_ISLAND = {
biomes: [TerrainBiomes.BEACH, TerrainBiomes.FOREST],
amplitude: 40,
frequency: 0.015,
shape: 'island',
waterLevel: 0,
beachWidth: 20,
palmTrees: true,
};
TerrainPresets.DESERT_DUNES = {
biomes: [TerrainBiomes.DESERT],
amplitude: 30,
frequency: 0.02,
duneDirection: [1, 0, 0.3],
duneSharpness: 0.8,
sandRipples: true,
};
TerrainPresets.VOLCANIC = {
biomes: [TerrainBiomes.VOLCANIC],
amplitude: 100,
craterCount: 3,
lavaFlows: true,
ashCoverage: 0.3,
smokeParticles: true,
};
interface TerrainPresetOptions {
// Biome selection
biomes: TerrainBiome[];
biomeScale?: number;
biomeBlend?: number;
// Terrain shape
amplitude?: number;
frequency?: number;
octaves?: number;
persistence?: number;
lacunarity?: number;
// Height zones
waterLevel?: number;
beachHeight?: number;
grassHeight?: number;
rockHeight?: number;
snowHeight?: number;
// Special features
caves?: boolean;
cavesDensity?: number;
cliffs?: boolean;
cliffsAngle?: number;
// Quality
resolution?: number;
chunkSize?: number;
lodLevels?: number;
}
import { Terrain } from '@strata-game-library/core';
import { TerrainPresets } from '@strata-game-library/presets/terrain';
function Scene() {
return (
<>
<Terrain
{...TerrainPresets.MOUNTAIN_RANGE}
size={1000}
position={[0, 0, 0]}
/>
</>
);
}
import { createTerrainPreset, TerrainPresets } from '@strata-game-library/presets/terrain';
// Extend a preset
const tallerMountains = {
...TerrainPresets.MOUNTAIN_RANGE,
amplitude: 200, // Override
snowHeight: 120,
};
// Or use the factory
const custom = createTerrainPreset({
base: 'MOUNTAIN_RANGE',
overrides: {
amplitude: 200,
},
});