Skip to main content
Glama

Create depth silhouette

create_depth_silhouette

Extracts a person's silhouette from depth or video into a white-on-black mask for compositing or reactive installations. Adjustable smoothing and threshold clean up the outline; optional invert and color fill expand creative control.

Instructions

Extract a silhouette / body mask from a depth or video source — a person's white outline on black you can composite, fill with colour, or use as a mask for reactive visuals (interactive installations / camera-reactive sets). The signal is smoothed (Blur TOP), keyed to a mask (Threshold TOP), optionally inverted (Level TOP) and optionally filled with a colour keyed through the mask (Constant + multiply Composite). Creates a new baseCOMP under parent_path holding the source, Blur, Threshold, Level, optional Constant + Composite fill, and a Null output. Source defaults to a self-contained synthetic noise field so it builds and previews with ZERO device permissions; pick 'file' for a clip, or a 'kinect_azure'/'kinect'/'realsense' sensor for the live installation (may prompt for macOS permission). Exposes Threshold (bind to proximity/audio), Smooth, Invert (+ FillColor) and outputs a Null TOP. Use create_depth_displacement instead for true 3D relief geometry rather than a flat 2D mask. Returns a summary plus a JSON block with the container path, created node paths, the mask/output paths, exposed controls, any node errors, warnings, and an inline preview image.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
invertNoInvert the mask (swap silhouette and background). Off = white body on black; on = black body on white. Drives a Level TOP's invert.
smoothNoEdge smoothing — a Blur TOP filter size applied to the raw mask to round off jagged sensor edges before the silhouette is keyed. 0 = hard, aliased edges; higher = softer outline.
sourceNoWhere the depth/luma signal comes from. 'synthetic' (the default) = a self-contained animated noise/ramp field that needs ZERO device permissions, so the network builds and previews immediately — use it to dial in the look. 'file' = a movie/image file (source_file_path). 'kinect_azure' | 'kinect' | 'realsense' = a live depth/IR sensor (the real installation source); creating it may pop a one-time macOS camera/depth-permission dialog — click Allow. (The depth-device op names are confirmed to exist; their per-device params still need live confirmation.)synthetic
thresholdNoDepth/luma cutoff (0..1) that separates the body from the background: pixels brighter than this become the white silhouette, the rest go black. The headline 'Threshold' knob and the parameter to bind to audio/beat/proximity later.
fill_colorNoOptional hex colour ('#rrggbb') to fill the silhouette with instead of plain white — keyed through the mask via a Constant TOP composited (multiply) against it. Omit for a white-on-black mask.
parent_pathNoParent network where the silhouette container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Threshold / Smooth / Invert (+ FillColor) controls on the system container.
source_file_pathNoMovie/image file path for source='file' (e.g. a pre-recorded depth or IR clip). Ignored for other sources.
Behavior5/5

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

Annotations already indicate no destructive behavior, but the description adds valuable context: it creates a baseCOMP under parent_path, may prompt for macOS permissions when using sensors, defaults to a synthetic source requiring zero permissions, and returns a summary plus a JSON block with node paths and errors. This enriches the behavioral profile beyond the annotations.

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?

The description is dense but every sentence contributes meaningful information—purpose, pipeline, defaults, permissions, return value. It could benefit from line breaks to improve scannability, but it avoids redundancy and keeps each clause purposeful. Slightly verbose but appropriate for the tool's complexity.

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

Completeness5/5

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

The description covers functionality, node chain, source options, permission side effects, exposed controls, return format, and distinguishes from a related sibling. With no output schema, it fully explains what is returned, including the JSON block and preview image. For a tool with 8 parameters and network creation, this is complete.

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 100%, and descriptions for params like threshold, smooth, and source are already detailed. The tool description adds marginal value by filling in the intended use context (e.g., binding threshold to audio) but does not substantially extend beyond what the schema already provides. Baseline of 3 is appropriate.

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?

The description clearly states the tool extracts a silhouette/body mask from depth or video, names the specific action (creates a new baseCOMP), and explicitly distinguishes it from the sibling create_depth_displacement tool. The verb+resource combination and the explicit alternative make the purpose unmistakable.

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?

The description provides clear usage context (reactive visuals, interactive installations), explains when to choose synthetic vs file vs sensor sources, and explicitly directs to create_depth_displacement when 3D relief is needed. This goes beyond simple context to provide actionable when-to-use and when-not-to-use guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasmaher-hash/touch-designer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server