Skip to content

Vegetation Presets

Ready-to-use vegetation configurations for different environment types.

import { createVegetationPreset, VegetationPresets } from '@strata-game-library/presets/vegetation';
// Use a preset
<VegetationSystem {...VegetationPresets.DENSE_FOREST} />
PresetDescriptionContents
DENSE_FORESTThick woodlandMany trees, undergrowth
SPARSE_FORESTOpen woodlandScattered trees, grass
TROPICAL_FORESTJunglePalms, ferns, vines
PINE_FORESTConiferousPine trees, needles
GRASSLANDOpen plainsTall grass, wildflowers
MEADOWFlower meadowGrass, colorful flowers
GARDENLandscapedTrimmed hedges, flowers
DESERTAridCacti, rocks, sparse
TUNDRAArcticLow shrubs, moss
SWAMPWetlandReeds, mangroves
VegetationPresets.DENSE_FOREST = {
grass: {
count: 15000,
spread: 100,
height: [0.3, 0.6],
color: '#2d5a27',
colorVariation: 0.15,
},
trees: {
count: 800,
spread: 120,
types: ['oak', 'birch', 'maple'],
typeWeights: [0.5, 0.3, 0.2],
height: [8, 15],
density: 'high',
},
undergrowth: {
enabled: true,
bushes: 200,
ferns: 500,
mushrooms: 100,
},
rocks: {
count: 150,
spread: 100,
moss: true,
mossAmount: 0.4,
},
wind: {
speed: 0.8,
strength: 0.2,
},
};
VegetationPresets.TROPICAL_FOREST = {
grass: {
count: 8000,
spread: 80,
height: [0.4, 0.8],
color: '#228b22',
},
trees: {
count: 600,
spread: 100,
types: ['palm', 'banana', 'tropical'],
height: [10, 20],
},
undergrowth: {
ferns: 1000,
flowers: 300,
vines: true,
},
humidity: 0.9,
particleEffects: ['fireflies', 'pollen'],
};
VegetationPresets.GRASSLAND = {
grass: {
count: 25000,
spread: 150,
height: [0.5, 1.2],
color: '#90a955',
colorVariation: 0.2,
waviness: 0.4,
},
trees: {
count: 50,
spread: 150,
types: ['oak'],
scattered: true,
},
flowers: {
count: 2000,
types: ['wildflower', 'daisy', 'poppy'],
colors: ['#ffdd00', '#ff6b6b', '#ffffff'],
},
wind: {
speed: 1.5,
strength: 0.4,
},
};
interface VegetationPresetOptions {
// Grass
grass?: {
count: number;
spread: number;
height: [number, number];
color: string;
colorVariation?: number;
};
// Trees
trees?: {
count: number;
spread: number;
types: string[];
typeWeights?: number[];
height: [number, number];
};
// Additional
undergrowth?: {
bushes?: number;
ferns?: number;
mushrooms?: number;
};
flowers?: {
count: number;
types: string[];
colors: string[];
};
rocks?: {
count: number;
spread: number;
moss?: boolean;
};
// Animation
wind?: {
speed: number;
strength: number;
direction?: [number, number, number];
};
}
import { GrassInstances, TreeInstances, RockInstances } from '@strata-game-library/core';
import { VegetationPresets } from '@strata-game-library/presets/vegetation';
function Forest() {
const preset = VegetationPresets.DENSE_FOREST;
return (
<>
<GrassInstances {...preset.grass} />
<TreeInstances {...preset.trees} />
<RockInstances {...preset.rocks} />
</>
);
}