Skip to main content
Glama

look_at

Bake a lagged eye-head-spine gaze chain into an animation from fixations or a target bone, with per-level lag, damping, and counter control.

Instructions

Bake a lagged look chain into an animation: eyes -> head -> spine (or any bones: works for bodies).

gaze [[t, gx, gy], ...]: fixations in normalised gaze units (-1..1, +x = viewer's right, +y = up); saccades are instant. Or target = a bone whose translate keys in that animation are the gaze path (divided by target_range, default the length of the target's parent bone: face_look_base on a face rig). levels [{bone, channel: translate|rotate, range: [x, y] (px, or degrees per unit gaze), weight (share of the gaze it takes), lag (dead time s), hz + zeta (damped-spring response), limit (normalised radius for translate, degrees for rotate), role: "eyes"}]. Default on a face rig: face_look (eyes, instant), turn_ctrl (0.4 of the gaze, 100 ms later, slight overshoot), and spine= (0.15, two frames after the head, via an inserted carrier bone so the artist's keys stay). counter=True: the eyes take gaze minus the other levels, so they jump first and roll back as the head arrives (vestibulo-ocular reflex). loop=True solves the response periodically.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fpsNo
gazeNo
loopNo
spineNo
levelsNo
targetNo
counterNo
projectYes
durationNo
animationYes
target_rangeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.7/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 rises to it: saccades are instant, counter=True produces a vestibulo-ocular jump-and-roll-back, loop=True solves periodically, and a carrier bone is inserted 'so the artist's keys stay.' This discloses real side effects and default dynamics. It stops short of stating permissions, whether existing keys can be overwritten, or undo behavior.

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

Conciseness3/5

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

The purpose is front-loaded and nearly every clause carries real information, so there is little pure padding. But the prose is a dense run-on of nested parentheticals that is hard to parse in one pass, hurting structure even though the information density is warranted for a tool this complex.

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?

For an 11-parameter tool with no annotations and no output schema, the description covers the operation, the default rig chain, the interaction between gaze/target and levels, and key side effects. Gaps remain on fps and duration (default 0, which is meaningful and unexplained), so it is close to but not fully complete.

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?

Schema coverage is 0%, so the description must compensate, and it does substantially: it documents the gaze tuple format with unit conventions, target and target_range semantics, the full levels object fields (bone, channel, range, weight, lag, hz, zeta, limit, role), plus spine, counter, and loop. It leaves fps, duration, project, and 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 opening sentence gives a specific verb and resource: 'Bake a lagged look chain into an animation: eyes -> head -> spine.' An agent can tell this is a gaze/look-rig baking tool. However, it never names or distinguishes itself from likely siblings like rig_face, face_clip, or secondary, so the differentiation is left implicit.

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?

The description hints at context ('works for bodies', 'Default on a face rig') and explains two input modes (gaze array vs target bone), which implies when each is used. But there is no explicit statement of when to choose this over rig_face, face_clip, or secondary, and no prerequisites or exclusions are given.

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