Skip to main content
Glama

turntable

DestructiveIdempotent

Render a full 360° camera rotation as a numbered PNG sequence, with one frame per equal step, ready to assemble into a GIF or MP4.

Instructions

Renders a full 360° rotation as a numbered PNG sequence.

Spins the camera around the vertical axis in equal steps and writes one frame per step, ready to assemble into a GIF or MP4 (e.g. ffmpeg -i turntable_0000.png out.mp4).

Every frame is ray-traced, which is slow — 36 frames of a large assembly can take an hour, so start with few frames and a small width/height. The unshaded OpenGL renderer would be far faster but does not work over this bridge (it needs PyMOL's GUI thread), and silently produced blank frames until this was found.

Input Schema

NameRequiredDescriptionDefault
widthNoFrame width in pixels.
framesNoNumber of frames over the full 360°. 36 gives 10° steps.
heightNoFrame height in pixels.
prefixNoFilename prefix; frames are ``<prefix>_0000.png`` and up.turntable
out_dirNoDirectory to write the PNG sequence into..
obj_nameNoObject to centre the rotation on (default: the whole scene).all
ray_traceNoKept for compatibility and ignored — every frame is ray-traced, because PyMOL's unshaded OpenGL capture does not work over this bridge.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.1

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the annotations, it discloses that ray tracing is mandatory, quantifies the potential cost with a concrete one-hour example, and explains that faster OpenGL capture is unavailable over this bridge. The blank-frame history usefully warns against treating the broken renderer as a viable optimization.

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?

Purpose and output format are front-loaded, followed by a useful assembly example and then the important performance warning. The final GUI-thread and blank-frame explanation is somewhat lengthy and partly repeats the `ray_trace` schema, so the description is not maximally lean.

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?

Together with the fully described input schema and output schema, this provides enough information to invoke the tool and plan an expensive render. Its main omission is the practical meaning of `destructiveHint: true`: it does not explain whether existing sequence files are overwritten or stale higher-numbered frames are removed.

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?

Although schema description coverage is 100%, the description adds actionable selection guidance for `frames`, `width`, and `height`: start with small values because rendering is expensive. The ffmpeg example also makes the default prefix and numbered output concrete, while most other parameter semantics remain schema-supplied.

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 precisely identifies the operation and artifact: a full 360° camera rotation rendered as a numbered PNG sequence. The equal-step, vertical-axis detail distinguishes it from ordinary still rendering, but the description does not explicitly differentiate it from closer siblings such as `mpng` or `rock`.

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 GIF/MP4 assembly example establishes the intended downstream use, while advising a small initial render provides a practical low-cost trial strategy. There is no explicit when-not guidance or routing to `png`/`ray` for still images or to other siblings for different animation needs.

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