Skip to main content
Glama

anim_foot_contact

Detects foot-floor issues in animation: feet going through the floor, floating, or sliding, and can lift or lower the hip per frame so the lowest foot touches the floor.

Instructions

Checks the feet over an animation: frames where a foot goes through the floor, frames where the figure floats, and how far planted feet slide. With fix it moves the hip up or down per frame so the lowest foot touches the floor.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "figure": "<figure>"
    },
    "name": "anim_foot_contact"
  }
}

Input Schema

NameRequiredDescriptionDefault
fixNolift: raise the body where a foot goes through the floor; plant: also lower it where both feet float (not for jumps).none
floorNoFloor height in cm.
figureYesFigure label.
end_frameNo
toleranceNocm that still count as touching.
start_frameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false but destructiveHint=false, so the agent knows this can alter scene data without being flagged as destructive. The description goes beyond that by disclosing exactly what the mutation is (hip raised/lowered per frame to plant the lowest foot) and that mutation only occurs when 'fix' is set, which is meaningful context for a non-read-only tool. Gaps remain: it does not say whether existing hip keyframes are overwritten or offset, whether the change is reversible, or what the report contains beyond the three diagnostics.

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?

Two sentences, zero filler, and the front-loaded clause establishes the reporting purpose before introducing the optional mutation. Every phrase earns its place, including the framing of 'fix' as conditional behavior.

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

Completeness4/5

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

With no output schema, the description carries the burden of telling the agent what comes back, and it does so by enumerating the three reported conditions, which is adequate for deciding whether to call it. It stops short of describing the return shape (per-frame lists? summary counts?) or default frame-range behavior, which would matter for a six-parameter tool.

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 coverage is 67%, so roughly a third of parameters rely on other sources. The description clarifies the semantics of 'fix' in behavioral terms (hip adjustment to lowest-foot contact) in a way the enum shorthand does not fully capture, but floor height, tolerance, and especially start_frame/end_frame receive no mention in the description at all, leaving frame-range behavior (does null mean the whole animation?) unexplained.

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

Purpose4/5

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

The description names a specific verb and resource: it checks foot contact across an animation and reports three concrete diagnoses (floor penetration, floating, foot slide), then states that the 'fix' option moves the hip per frame so the lowest foot touches the floor. That is much more specific than a generic 'validate animation', but it never contrasts itself with adjacent tools such as fit_check or anim_sample, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the agent can tell this is the tool for foot-contact problems over a frame range, and the 'with fix' clause indicates the corrective branch. There is no explicit when-not guidance (e.g. don't use while authoring jump animations, prefer fit_check for mesh interpenetration), and the 'not for jumps' caveat lives only in the schema enum, not the description.

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