feather-engine.vercel.app
Feather Engine
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 2 · Act 14 · Transact 0 · Score: Not yet scored
Tool inspector
create_object
Create a new scene object. Returns its id. Spawn dynamic physics objects slightly above the ground (y > 0). Pass parentId to nest it under another object (e.g. building a composite character).
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
kind |
string | yes | — |
name |
string | no | — |
position |
array | no | [x, y, z] |
color |
string | no | Hex color, e.g. #FF6B6B |
parentId |
string | no | Nest the new object under this existing object. |
terrain |
object | no | Only for kind:"terrain": procedural terrain/chunk/foliage settings. |
physics |
object | no | — |
Raw JSON schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"empty",
"cube",
"sphere",
"capsule",
"plane",
"terrain",
"light",
"camera"
]
},
"name": {
"type": "string"
},
"position": {
"minItems": 3,
"maxItems": 3,
"type": "array",
"items": {
"type": "number"
},
"description": "[x, y, z]"
},
"color": {
"description": "Hex color, e.g. #FF6B6B",
"type": "string"
},
"parentId": {
"description": "Nest the new object under this existing object.",
"type": "string"
},
"terrain": {
"description": "Only for kind:\"terrain\": procedural terrain/chunk/foliage settings.",
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"size": {
"description": "Total terrain width/depth in world units.",
"type": "number",
"minimum": 32,
"maximum": 8192
},
"chunkSize": {
"description": "Streamed chunk width/depth in world units.",
"type": "number",
"minimum": 8,
"maximum": 512
},
"resolution": {
"description": "Segments per chunk edge. Higher = more detail/cost.",
"type": "integer",
"minimum": 4,
"maximum": 64
},
"streamRadius": {
"description": "Render chunk rings around the camera/player.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"physicsRadius": {
"description": "Physics chunk rings around characters/dynamic bodies.",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"seed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"heightScale": {
"type": "number",
"minimum": 0,
"maximum": 256
},
"frequency": {
"type": "number",
"minimum": 0.001,
"maximum": 0.25
},
"octaves": {
"type": "integer",
"minimum": 1,
"maximum": 8
},
"persistence": {
"type": "number",
"minimum": 0.05,
"maximum": 0.95
},
"lacunarity": {
"type": "number",
"minimum": 1.1,
"maximum": 4
},
"editSpacing": {
"description": "World units between persistent sculpt/paint samples.",
"type": "number",
"minimum": 0.5,
"maximum": 16
},
"lowColor": {
"type": "string"
},
"midColor": {
"type": "string"
},
"highColor": {
"type": "string"
},
"materialLayers": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
},
"textureAssetId": {
"description": "Optional image asset id for the layer base texture, or \"\" to clear.",
"type": "string"
},
"normalMapAssetId": {
"description": "Optional image asset id for the layer normal map, or \"\" to clear.",
"type": "string"
}
}
}
},
"foliage": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"mode": {
"type": "string",
"enum": [
"grass",
"trees",
"mixed"
]
},
"density": {
"description": "Grass/shrub density 0..1.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"treeDensity": {
"description": "Tree density 0..1.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"minScale": {
"type": "number",
"minimum": 0.1,
"maximum": 12
},
"maxScale": {
"type": "number",
"minimum": 0.1,
"maximum": 16
},
"slopeLimit": {
"description": "Minimum normal Y for placement; higher avoids steep slopes.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"grassMesh": {
"description": "'clump' (default) is the stylized painted-card grass with gradient/variation/interaction; the rest are simple legacy shapes.",
"type": "string",
"enum": [
"clump",
"blade",
"cross",
"tuft"
]
},
"stylizedGrass": {
"description": "Look/motion of the 'clump' grass. Prefer set_grass_look for a whole look; use this to tweak single settings.",
"type": "object",
"properties": {
"gradientTop": {
"description": "Tip hex color — multiplies grassColor.",
"type": "string"
},
"gradientBottom": {
"description": "Root hex color — dark values plant the grass in the ground.",
"type": "string"
},
"gradientOffset": {
"description": "Where the dark root ends, 0..1 up the blade.",
"type": "number",
"minimum": 0,
"maximum": 0.95
},
"gradientContrast": {
"description": "0 soft blend, 1 hard two-tone band.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"colorNoiseScale": {
"description": "Patch frequency; smaller = broader patches.",
"type": "number",
"minimum": 0.001,
"maximum": 2
},
"colorNoiseStrength": {
"description": "Patch-to-patch color variation, 0 disables.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"colorNoiseLow": {
"type": "string"
},
"colorNoiseHigh": {
"type": "string"
},
"windSpeed": {
"description": "How fast gusts scroll across the field.",
"type": "number",
"minimum": 0,
"maximum": 8
},
"windNoiseScale": {
"description": "Gust size; smaller = longer rolling waves.",
"type": "number",
"minimum": 0.001,
"maximum": 2
},
"bendPivot": {
"description": "Height where bending starts; below it the clump stays rooted.",
"type": "number",
"minimum": 0,
"maximum": 0.95
},
"perspectiveCorrection": {
"description": "Leans tips toward the camera when looking down so top-down views stay full.",
"type": "number",
"minimum": 0,
"maximum": 2
},
"perspectiveHeightStart": {
"type": "number",
"minimum": 0,
"maximum": 0.95
},
"interactionStrength": {
"description": "How far characters/vehicles shove grass aside during Play.",
"type": "number",
"minimum": 0,
"maximum": 4
},
"pushDownAmount": {
"description": "How far actors mash grass down.",
"type": "number",
"minimum": 0,
"maximum": 2
},
"trailTint": {
"description": "Hex color multiplier on grass currently bent by an actor.",
"type": "string"
},
"normalLift": {
"description": "Leans shading toward straight up; high = soft turf lighting.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"fadeMode": {
"type": "string",
"enum": [
"off",
"smooth",
"dither"
]
},
"fadeStart": {
"description": "Distance where grass starts fading out.",
"type": "number",
"minimum": 1,
"maximum": 4000
},
"fadeEnd": {
"description": "Distance where grass is fully gone.",
"type": "number",
"minimum": 2,
"maximum": 5000
}
}
},
"treeSpecId": {
"description": "Scatter a parametric tree ASSET from the project tree library (see list_tree_specs) instead of the simple crowns. \"\" clears it.",
"type": "string"
},
"treeMesh": {
"description": "Built-in tree shape: 'fir' = stylized layered conifer (stacked tiers — the BOTW/stylized-nature look, best default), 'cone' = single cone, 'round' = single sphere crown.",
"type": "string",
"enum": [
"cone",
"round",
"fir"
]
},
"grassSource": {
"description": "Grass mesh source: 'builtin' high-quality wind-animated blades (default), 'image' a 2D billboard from grassImageAssetId, or 'model' from grassModelAssetId.",
"type": "string",
"enum": [
"builtin",
"image",
"model"
]
},
"treeSource": {
"description": "Tree mesh source: 'builtin', 'image' billboard (treeImageAssetId), or 'model' (treeModelAssetId).",
"type": "string",
"enum": [
"builtin",
"image",
"model"
]
},
"grassModelAssetId": {
"description": "Model asset id for 3D grass (sets grassSource to model), or \"\" to clear.",
"type": "string"
},
"treeModelAssetId": {
"description": "Model asset id for 3D trees (sets treeSource to model), or \"\" to clear.",
"type": "string"
},
"grassImageAssetId": {
"description": "Image asset id for 2D billboard grass (use with grassSource:\"image\"), or \"\" to clear.",
"type": "string"
},
"treeImageAssetId": {
"description": "Image asset id for 2D billboard trees (use with treeSource:\"image\"), or \"\" to clear.",
"type": "string"
},
"windStrength": {
"description": "Foliage sway multiplier on the global scene wind (0 = stiff, no sway). Set the wind via set_scene_environment.",
"type": "number",
"minimum": 0,
"maximum": 4
},
"interactStrength": {
"description": "BOTW-style player interaction: how strongly grass/flowers part & flatten around a passing player/vehicle during Play. 1 = natural (default), 0 = ignores actors, >1 = exaggerated.",
"type": "number",
"minimum": 0,
"maximum": 4
},
"flowerDensity": {
"description": "Wildflower density 0..1 — small brightly-colored blooms (red/yellow/white/purple/pink/orange) scattered through the grass; they sway and part like the blades. 0 = none. Only appears in grass/mixed mode.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"grassColor": {
"type": "string"
},
"trunkColor": {
"type": "string"
},
"treeColor": {
"type": "string"
}
}
}
}
},
"physics": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"bodyType": {
"type": "string",
"enum": [
"dynamic",
"fixed",
"kinematic"
]
},
"collider": {
"type": "string",
"enum": [
"box",
"sphere",
"capsule",
"mesh",
"convex"
]
},
"isTrigger": {
"type": "boolean"
}
}
}
},
"required": [
"kind"
]
}
Similar websites
morphus.myles4miles.chatgpt.site
Morphus is an AI-native workspace for designing worlds and generating playable game experiences.
damnpdfs.com
Install the DamnPDFs Codex plugin, pair a browser workspace and use PDF, image and file tools from your coding agent. Includes setup and privacy limits.
insignifi4nt.github.io
broCAD/M: local-first CAD and CAM for parametric design, wire EDM planning, simulation and controller export.
cabinet.varera.studio
The Cartographer's Cabinet