Skip to main content
Glama

Create terrain

create_terrain

Create a procedural heightmap terrain with animated noise displacement, elevation color ramp, water plane, and fog. Outputs a 2.5D landscape with exposed controls.

Instructions

Build a procedural heightmap landscape: an animated Noise TOP height field displaces a subdivided Grid SOP along Z in a GLSL vertex-displacement MAT (real 2.5D geometry, elevation-shaded from a low→high colour ramp), lit by a key Light, framed by a raised angled Camera, and rendered. Optionally adds a flat translucent water plane at water_level and a camera-distance fog fade into the sky/background colour. Distinct from create_visual_system's 'terrain' keyword (which only maps to a noise_landscape recipe) — this is a dedicated, fully parameterized terrain pipeline with its own displacement material, water, and fog. Creates a new baseCOMP under parent_path. Exposes Height, Drift, WaterLevel, and Zoom controls. Returns a summary plus a JSON block with the container path, created node paths, output path, exposed controls, node errors, warnings, and an inline preview image.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fogNoFade the far terrain into `background` by camera distance (volumetric-ish haze).
driftNoScroll speed of the noise height field along Z per second so the landscape slowly evolves. 0 = static terrain. Reads 0 when the TD timeline is paused.
waterNoAdd a flat translucent water plane at `water_level` cutting through the terrain.
heightNoDisplacement amount along Z: how far bright pixels push the surface up. 0 = flat.
low_colorNoColour of the valleys / lowest elevation (RGB 0..1).
backgroundNoSky / background + fog colour (RGB 0..1).
high_colorNoColour of the peaks / highest elevation (RGB 0..1).
parent_pathNoParent network where the terrain container is created (default '/project1')./project1
water_colorNoWater plane colour (RGB 0..1). Rendered semi-transparent.
water_levelNoZ elevation of the water plane, in the same units as `height`.
noise_periodNoNoise TOP period — larger = broader, smoother hills; smaller = tighter, rockier.
subdivisionsNoGrid resolution (rows = cols). Higher = finer relief and smoother displacement, but more vertices to push. 160 gives a 160×160 plane.
expose_controlsNoWhen true (default), expose live Height / Drift / WaterLevel / Zoom controls.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: it explains that the terrain is animated, drift scrolls noise, returns a summary with JSON block, and includes optional water and fog. Annotations only state readonly/world/destructive hints, so the description enriches the agent's understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, front-loading the core purpose, then detailing components, optional features, differentiation, and summary. It is informative but slightly verbose; could be trimmed without losing key details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters with full schema coverage and no output schema, the description provides a complete picture: pipeline overview, parameter effects, return format (summary + JSON block), and inline preview. It covers all essential aspects for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 13 parameters have schema descriptions (100% coverage), but the tool description adds meaning by contextualizing parameters like drift ('so the landscape slowly evolves') and listing exposed controls. This goes beyond the schema, though some parameters (e.g., noise_period) are not elaborated in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds a procedural heightmap landscape with specific components (Noise TOP, Grid SOP, GLSL vertex displacement MAT, etc.). It distinguishes from create_visual_system's terrain keyword, making the purpose explicit and differentiating from a sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is distinct from create_visual_system's 'terrain' keyword, providing some differentiation. However, it lacks explicit guidance on when to use this tool versus other sibling tools or when not to use it, which is expected given the large sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pantani/tdmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server