Skip to main content
Glama

Create Planet

create_planet

Generate deterministic procedural rocky planets with terrain, craters, optional canyons, and baked PBR maps for reproducible web hero images and GLB assets.

Instructions

Generate a procedural rocky planet: terrain, craters, optional canyon, baked PBR maps.

Deterministic — the same seed always produces the same planet, so a website hero image is reproducible. Writes albedo, normal and metallic-roughness textures with correct spherical UVs and embeds them in the GLB.

Use this instead of writing noise code inside create_model: the crater profile, seamless 3D noise sampling and UV layout are already correct here, and a hand-rolled version usually gets at least one of them wrong.

radius is in world units. subdivisions: 4 = ~5k faces, 5 = ~20k, 6 = ~82k. texture_resolution 0 disables baking (vertex colours only, much smaller file).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "create_planet"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoplanet
seedNo
canyonNo
radiusNo
paletteNomars
purposeNoweb
roughnessNo
make_viewerNo
poly_budgetNo
canyon_depthNo
subdivisionsNo
crater_densityNo
render_previewsNo
texture_resolutionNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.7

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the key traits: determinism from the seed, that it writes albedo/normal/metallic-roughness maps and embeds them in the GLB, and that texture_resolution=0 yields a much smaller vertex-colour-only file. It stops short of stating side effects an agent would want — whether a job is queued (cf. `get_job`/`list_jobs`), where files land, or what make_viewer/render_previews trigger.

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

Conciseness5/5

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

Front-loaded with the verb and output, then determinism, then the sibling comparison, then per-parameter facts. Every sentence adds information an agent needs; nothing is filler, and the line breaks map cleanly to distinct concerns.

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

Completeness3/5

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

Output schema exists, so return values needn't be explained, and the core generation contract is clear. But for a 14-parameter, zero-annotation tool, nearly two-thirds of the parameters are undocumented anywhere, and execution side effects (job creation, file paths, viewer rendering) are unstated — an agent can call it, but not confidently tune it.

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

Parameters3/5

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

Schema description coverage is 0% across 14 parameters, so the description must compensate, and it only partly does: radius units, the subdivisions face-count table (4≈5k, 5≈20k, 6≈82k), seed determinism, texture_resolution=0, and the existence of a canyon are all real additions. Nine parameters — palette, purpose, roughness, poly_budget, canyon_depth, crater_density, make_viewer, render_previews, name — get no explanation of valid values or effects, leaving an agent to guess at their semantics.

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?

States a specific verb and resource ('Generate a procedural rocky planet') and enumerates the concrete outputs: terrain, craters, optional canyon, baked PBR maps. It also names the sibling it replaces ('instead of writing noise code inside create_model'), so an agent can distinguish it from create_model without opening either schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use this rather than hand-rolling noise inside `create_model`, with the reason given (crater profile, seamless 3D noise, UV layout already correct). It also gives a conditional rule for a parameter ('texture_resolution 0 disables baking'), which is genuine when-to-use guidance.

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