Package Exports
- @genart-dev/plugin-terrain
Readme
@genart-dev/plugin-terrain
Natural landscape element layers for genart.dev — sky gradients, terrain profiles, cloud formations, and water surfaces. 21 presets across 4 categories, with 8 MCP tools for AI-agent control.
Part of genart.dev — a generative art platform with an MCP server, desktop app, and IDE extensions.
Install
npm install @genart-dev/plugin-terrainUsage
import terrainPlugin from "@genart-dev/plugin-terrain";
import { createDefaultRegistry } from "@genart-dev/core";
const registry = createDefaultRegistry();
registry.registerPlugin(terrainPlugin);
// Or access individual exports
import {
ALL_PRESETS,
getPreset,
filterPresets,
searchPresets,
skyLayerType,
profileLayerType,
cloudsLayerType,
waterLayerType,
} from "@genart-dev/plugin-terrain";Layer Types (4)
| Layer Type | Category | Default Preset | Description |
|---|---|---|---|
terrain:sky |
Sky (5) | noon |
Time-of-day sky gradients with zenith, horizon, and haze colors |
terrain:profile |
Profile (6) | rolling-hills |
Layered ridgeline silhouettes with depth-aware coloring |
terrain:clouds |
Clouds (5) | fair-weather |
Noise-driven cloud formations (cumulus, stratus, cirrus) |
terrain:water |
Water (5) | still-lake |
Water surfaces with wave lines and shimmer highlights |
Presets (21)
Sky (5)
Profile (6)
Clouds (5)
Water (5)
Landscape Composites (6)
Multi-layer scenes combining sky, terrain, clouds, and water:
Examples
The examples/ directory contains 27 .genart sketch files organized by category, with .png thumbnails and .genart-workspace files:
examples/
├── sky/ 5 sky gradient presets + workspace
├── profile/ 6 terrain ridgeline presets + workspace
├── clouds/ 5 cloud formation presets + workspace
├── water/ 5 water surface presets + workspace
├── landscape/ 6 composite scenes + workspace
└── terrain-gallery.genart-workspace (all 27 sketches)Regenerating examples:
node generate-genart-files.cjs # Create .genart files from presets
node generate-workspace-files.cjs # Create .genart-workspace files
node render-examples.cjs # Render .png thumbnails (requires genart CLI)
bash generate-galleries.sh # Create category gallery montagesMCP Tools (8)
Exposed to AI agents through the MCP server when this plugin is registered:
| Tool | Description |
|---|---|
add_sky |
Add a sky gradient layer with time-of-day preset or custom colors |
add_terrain_profile |
Add terrain ridgeline silhouettes from 6 profile presets |
add_clouds |
Add noise-driven cloud formations (cumulus, stratus, cirrus) |
add_water_surface |
Add water surface with waves and shimmer highlights |
create_landscape |
Compose a complete scene: sky + terrain + optional clouds + water |
set_time_of_day |
Update a sky layer to a different time-of-day preset |
list_terrain_presets |
List all 21 presets, optionally filtered by category |
set_terrain_depth |
Adjust depth properties on a terrain profile layer |
Rendering
Each layer type renders via canvas2d:
- Sky — Three-stop vertical gradient (zenith → haze → horizon) with configurable haze band
- Profile — Back-to-front ridgeline silhouettes with fractal noise elevation and depth-aware color interpolation
- Clouds — Fractal noise sampled per-pixel into an ImageData buffer with cloud/shadow color blending
- Water — Vertical gradient fill with sine or noise-driven wave lines and shimmer highlight streaks
Utilities
Shared utilities exported for advanced use:
import {
mulberry32, // Deterministic PRNG
createValueNoise, createFractalNoise, // Procedural noise generators
parseHex, toHex, lerpColor, // Color interpolation
darken, lighten, // Color adjustment
applyDepthEasing, // Depth curve functions
} from "@genart-dev/plugin-terrain";Preset Discovery
import { ALL_PRESETS, filterPresets, searchPresets, getPreset } from "@genart-dev/plugin-terrain";
// All 21 presets
console.log(ALL_PRESETS.length); // 21
// Filter by category
const skyPresets = filterPresets({ category: "sky" }); // 5 presets
const profiles = filterPresets({ category: "profile" }); // 6 presets
// Filter by tags
const dramatic = filterPresets({ tags: ["dramatic"] }); // alpine-range, coastal-cliffs, storm-clouds, choppy-sea
// Full-text search
const results = searchPresets("mountain"); // mountain-stream
// Look up by ID
const preset = getPreset("alpine-range");Related Packages
| Package | Purpose |
|---|---|
@genart-dev/core |
Plugin host, layer system (dependency) |
@genart-dev/mcp-server |
MCP server that surfaces plugin tools to AI agents |
@genart-dev/plugin-plants |
Algorithmic plant generation (110 presets) |
@genart-dev/plugin-patterns |
Geometric and organic pattern fills (153 presets) |
Support
Questions, bugs, or feedback — support@genart.dev or open an issue.
License
MIT































