Skip to main content
Glama

Create GPU particle field

create_gpu_particle_field

Create a high-count GPU particle field with noise, gravity, or curl forces, and optional audio or motion reactivity. The simulation runs entirely on the GPU for up to 262k particles, returning a ready-to-render network.

Instructions

Build a high-count GPU particle / point field: position and velocity are simulated entirely on the GPU in two RGBA32float feedback-TOP loops (velocity integrates forces — noise/curl/gravity; position integrates velocity), then a Geometry COMP instances a tiny dot once per texel, reading XYZ from the position texture. Creates a new baseCOMP under parent_path holding the velocity/position feedback loops, the instanced Geometry COMP, Camera, Light, and Render TOP ending in a Null output. Reaches counts (side², up to 512²≈262k) well beyond the CPU create_particle_system (use that for a simpler, lower-count CPU emitter). This is the general-purpose GPU drift field (noise/curl/gravity); pick a sibling instead for other motion: create_particle_flock for boids separation/alignment/cohesion, image_to_particles when particles should spring to the pixels of an image/video, create_pop_particle_system for TouchDesigner's native POP particle network. Exposes PointSize and Zoom knobs. Optional reactivity energises the field live: 'audio' drives it from mic/line RMS, 'motion' from camera frame-difference energy (both bound to the velocity shader's uReact uniform). Returns a summary plus a JSON block with the container path, created node paths, the particle count, the output path, exposed controls, any node errors, warnings, and an inline preview image.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideNoEdge of the square particle buffer; the field is side×side particles (count = side², e.g. 256 → 65 536). Each particle is one texel of the RGBA32float position/velocity buffers.
forcesNoIn-shader forces added to velocity each frame: 'noise' (per-particle random drift), 'gravity' (constant -Y pull), 'curl' (divergence-free swirling).
point_sizeNoRadius of each instanced dot (the sphere/circle SOP scale).
reactivityNoOptional external push that energises the field live, bound to the velocity shader's uReact uniform. 'none' (default) is fully self-contained. 'audio' drives it from mic/line RMS (Audio Device In → Analyze), 'motion' from camera frame-difference energy (Video Device In → mono → cache/difference → average). Either may pop a one-time macOS device-permission dialog — click Allow.none
parent_pathNoParent network where the particle-field container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live PointSize and Zoom (camera distance) knobs on the system container.
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds valuable behavioral context: the created baseCOMP structure, the optional device-permission dialog for audio/motion reactivity, the scaling limits (512²≈262k), and the return JSON with created paths, errors, warnings, and preview. No contradiction with annotations, though it could mention side effects on existing nodes under parent_path or cooking behavior.

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 well-structured: it front-loads the core purpose, then covers architecture, scalability, sibling alternatives, reactivity, and return format. Each sentence adds distinct value, though the length is above average. It earns its place given 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?

For a complex creation tool with no output schema, the description is comprehensive. It details what is created (baseCOMP with specific components), where (under parent_path), performance envelope (side², up to 512²), optional device-permission side effects, and the exact return payload (container path, created nodes, count, output, knobs, errors, warnings, preview). This fully equips the agent to select and invoke the tool correctly.

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?

The input schema has 100% parameter coverage with detailed descriptions, defaults, ranges, and enums, so the baseline is 3. The description supplements with context about how parameters map to runtime behavior (e.g., reactivity bound to uReact uniform, PointSize/Zoom knobs) but does not need to compensate for missing schema info. It adds marginal value beyond the schema.

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 a specific verb and resource: 'Build a high-count GPU particle / point field' and details the architecture (GPU feedback-TOP loops, instanced Geometry COMP). It explicitly distinguishes itself from siblings like create_particle_system (CPU, simpler), create_particle_flock (boids), image_to_particles (image spring), and create_pop_particle_system (native POP). This is a model of purpose clarity.

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?

It provides explicit when-to-use guidance: for high-count GPU drift fields beyond CPU capabilities, with a direct recommendation to use create_particle_system for simpler low-count emitters. It also names sibling tools for alternative motion behaviors and explains the audio/motion reactivity options. This is explicit guidance with exclusions.

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