📖 Glossary#
One-line definitions for the terms that appear across the rest of the documentation, grouped by subject and alphabetized within each group.
Scene and Constraints#
- Center mode
How the pivot for a Spin or Scale operation is resolved. One of Centroid (vertex centroid at runtime), Fixed (a user-entered coordinate), Max Towards (centroid of vertices furthest along a direction), or Vertex (a single vertex picked in Edit Mode).
- Contact gap
Separation distance the solver enforces between surfaces, specified per group or per collider as an absolute Blender-unit value or as a ratio of the group’s bounding-box diagonal. See Material Parameters.
- Cross-stitch anchor
Per-vertex barycentric data recorded during a Snap, tying each source-object vertex to a target triangle so the stitch survives small mesh edits.
- Embedded Move
A marker the add-on puts on a pin by itself when Make Keyframe writes per-vertex keyframes on it; it is not offered in the pin’s Add dropdown. It tells the encoder where to splice the per-vertex track in, so the pinned vertices follow the hand-animated or scripted pose sequence during the solve. Deleting the keyframes removes it again.
- Intersection allowance
An opt-in that accepts already-overlapping geometry instead of refusing to simulate it. Two are set on a group and apply to every object assigned to it (Allow Self-Intersections, Allow Inter-Object Intersections), and one is set on a pin (Allow Intersections Here). “Self” means one object’s overlap with itself, so two objects in one group make an inter-object pair. Each suppresses the report only; contact still acts on the overlap. See Allow Intersections.
- Invisible collider
A parametric wall or sphere that acts as a collision boundary for the simulation without being rendered in Blender. Walls are infinite planes; spheres support invert (inside-surface collision) and hemisphere (bowl shape) flags. See Invisible Colliders.
- Merge pair
Two snapped objects registered as a solver stitch constraint, optionally with explicit stitch anchors. Created by the snap operator and stored on the scene. See Snap and Merge.
- Object group
One of up to 32 slots on a scene that holds a type (Solid / Shell / Rod / PDRD / Sand / Static), material parameters, assigned meshes, and pins. See Object Groups; Static groups are covered separately in Static Objects.
- Operation
A keyframed action stacked on a pin: Move By, Spin, Scale, or Torque. Torque is exclusive with the other three, and a pin that carries keyframed per-vertex animation (its Embedded Move marker) accepts none of the four at all. See Pins and Operations.
- Overlay color
Per-group viewport tint that shows which objects belong to which group. Defaults by group type and can be overridden per group.
- PDRD
Group type for exactly-rigid bodies. The surface mesh moves as a single best-fit rigid transform, so no tetrahedralization is needed. Short for Painless Differentiable Rotation Dynamics.
- Pin
A named set of vertices on an object, registered as a simulation constraint target. On meshes this is a regular Blender vertex group; on curve objects (which have no vertex groups) the add-on stores the control-point indices in an internal
_pin_<name>custom property on the curve. Stacks operations on top, optionally with pull strength or a pin duration.- Pin duration
A frame limit that releases a pin at a specified frame, handing the affected vertices back to free dynamics mid-simulation.
- Pull strength
Soft-force magnitude that replaces a hard pin constraint, pulling vertices toward their target positions rather than holding them rigidly.
- Rod
Group type for 1D structures (ropes, wires, threads). Accepts mesh and curve objects.
- Sand
Group type for granular bodies, simulated as a particle cloud rather than a connected mesh.
- Shell
Group type for thin deformable surfaces (cloth, fabric). Accepts mesh objects.
- Snap
One-shot alignment that translates object A so its closest vertex lands on the nearest point of object B’s surface – the nearest triangle for a mesh or solid target, the nearest segment for a rod. Typically followed by a merge pair registration.
- Solid
Group type for volumetric deformable bodies.
- Static
Group type for non-deforming collision objects (ground planes, props, mannequins). Exposes friction and contact settings; motion is driven by Blender transform keyframes rather than by the solver.
- Stitch stiffness
Strength of the soft force that holds a stitch together, set per-merge-pair (or per-group for loose edges), default 1.0. The stitch is always a soft force, never an exact weld, and is exposed for every supported pair: Shell-Shell, Shell-Solid, Rod-Shell, Rod-Solid, Rod-Rod, Solid-Solid, and any dynamic group stitched to a Static collider.
- Torque
A pin Operation that applies rotational force around an axis derived from the pinned vertices. Exclusive with Move By, Spin, and Scale, and refused outright on a pin that carries keyframed per-vertex animation (Embedded Move).
- UUID registry
Per-object UUID assignment maintained by the add-on. Keeps group references stable across rename operations so merge pairs, assigned objects, and pin vertex groups survive object renames.
Parameters and Simulation#
- Bake
Converts the live PC2-plus-modifier preview into standard Blender animation: shape keys and fcurves on meshes, or per-control-point keyframes on curves. The baked result renders without the add-on installed. See Baking Animation.
- Bend stiffness
Per-group resistance to bending, carried by Shell and Rod groups as a single
bendvalue that each type scales on its own terms. On a rod it is measured against a one-centimeter reference segment, so a strand bends the same way however many segments it is drawn with. See Bend Stiffness on a Rod.- Checkpoint
A saved, resumable solver state captured at a chosen frame. Add frames to the Save Checkpoints list to have the solver write a checkpoint at each, or let Auto Save record them at a fixed interval. Saved checkpoints are what the Resume picker lists, so the simulation can be continued from any of them later.
- Constitutive model
The mathematical model that governs how a group deforms (for example Baraff-Witkin, Stable NeoHookean, or ARAP). Available choices depend on group type: Shell offers Baraff-Witkin and ARAP, Solid offers Stable NeoHookean and ARAP, Rod is locked to ARAP.
- Dynamic parameter
A scene-level parameter whose value is keyframed over time. Seven can be: gravity, wind, air density, air friction, vertex air damp, step size, and inactive momentum frames. They are keyframed on their own Scene Configuration sliders as ordinary Blender F-curves — there is no dynamic-parameter sub-panel — then sampled per frame, uploaded with the rest of the parameters at transfer time, and replayed by the solver during the run. See Dynamic Parameters.
- Fetch
Downloads per-frame vertex data from the solver and wires it up to each simulated object so the timeline plays back the result.
- JupyterLab integration
A first-class path for driving the solver from a notebook on the solver host, including headless runs and parameter sweeps without Blender open. See JupyterLab.
- Material parameter
A per-group property that controls deformation, density, stiffness, friction, and contact. The applicable fields depend on the group’s type. See Material Parameters.
- Mesh hash
A topology fingerprint (vertex, polygon, edge, and object counts, the vertex count of every pin group, and a digest of each captured Static deformation; no UV data enters it) recorded at transfer time and compared again before Run, Resume, and Fetch. A mismatch means the Blender mesh no longer matches what the solver has.
- PC2
Point Cache 2. The per-object vertex cache the add-on writes locally on Fetch (
data/<blend name>/<object uuid>.pc2, built from the solver’s ownvert_N.binframes on the remote), replayed as the timeline plays — through aMESH_CACHEmodifier on meshes, and through a frame handler on curve rods, which carry no such modifier. Blender frames1..Nmap to remote frames0..N-1.- Profile
A named preset saved to a TOML file: either a scene profile (scene parameters, dynamic parameters, and invisible colliders) or a material profile (one group’s material parameters). Loaded and saved from the profile dropdown next to the relevant panel.
- Rayleigh damping
Velocity-dependent energy loss proportional to a group’s material stiffness, set per group by Deformation Damping and Bending Damping (both default 0.0, which disables it). It calms high-frequency jitter without slowing down the bulk motion of the body. Deformation Damping applies to Solid, Shell, and Rod groups; Bending Damping applies to Shell and Rod groups only. This is distinct from air damping, which acts on the whole scene.
- Resume
Continues a paused or partially completed simulation from a saved state, preserving earlier results. The panel’s single Resume button opens a picker listing every saved checkpoint, so you choose which one to continue from; frames before it are kept and the rest are overwritten. It stays available after a failed run as long as the solver still holds at least one saved checkpoint.
- Run
Starts the simulation on the remote solver. Warns on a stale mesh hash and clears prior simulation output before beginning.
- Scene parameter
A whole-scene setting (frame range, step size, gravity, wind, air properties, solver tolerances) applied globally rather than per group. See Scene Parameters.
- Shrink
Rest-shape scale carried in a group’s material parameters: anisotropic Shrink X / Shrink Y on Shell, a single uniform Shrink on Solid, and a per-segment rest-length scale on Rod. Below 1.0 the rest shape is smaller than the drawn geometry, so the body pulls itself taut; above 1.0 it is larger, so the body slackens. See Material Parameters.
- Solver state
The status the Backend Communicator panel shows on its “Status: …” line, one of twenty-three values: Disconnected, Waiting for Server Start…, Ready to Run, Simulation Running…, Resumable, Fetching Animation…, Simulation Failed, Protocol Version Mismatch, and the transient ones in between.
- Transfer
Uploads geometry, pins, colliders, and every parameter to the solver and rebuilds its scene. Required whenever topology or group membership changes.
- Update Params on Remote
Re-encodes and uploads parameters without resending geometry, for fast iteration on dynamics and materials.
Connections and Integrations#
- Communicator
The add-on’s single connection manager. It owns all remote operations from a background thread so the UI never blocks on the network.
- Connection profile
A saved TOML entry capturing every connection field of the Backend Communicator panel for one host, used to switch between hosts and share presets across a team. See Connection Profiles.
- Docker connection
A connection type where the solver runs inside a Docker container on a local Docker daemon. See Docker (Local).
- Docker over SSH
A connection type where the solver runs in a container on a Docker daemon reached through SSH, for environments where the administrator hands you a container rather than shell access. See Docker over SSH.
execute_shell_commandMCP tool that runs arbitrary shell commands on the connected solver host, through the active connection backend - a different machine entirely for the SSH-based types, and inside the container for the Docker ones - and only while a connection is live. Paired with
run_python_script, which runs inside Blender, as an escape hatch for provisioning and maintenance tasks not yet covered by dedicated tools.- Local connection
A connection type where the solver runs on the same host as Blender, reached over a loopback socket. See Local.
- MCP resource
A read-only asset exposed by the MCP server via
resources/read, covering live scene snapshots (blender://scene/current) and the bundledllm://<topic>markdown docs.- MCP server
The bundled Model Context Protocol server on
localhost:9633that exposes add-on operations as JSON-RPC tools for external agents. See MCP Server.- MCP tool
A JSON-RPC method exposed by the MCP server and dispatched with
tools/call. Goes through the same validation layer as the sidebar buttons.- Protocol version
The wire protocol version between the add-on and the
ppf-cts-serverbinary. Both halves take it from the same shipped file, so the pair that ships together always agrees and there is no number for you to set. TCMD requests carry a 4-byte big-endian length prefix between theb"TCMD"header and the payload, and the server supports heartbeat recovery on long-running operations. CBOR envelope payloads on this connection use the schema from theppf-cts-formatscrate. The server advertises its version on connect; a mismatch means one of the two binaries is stale, surfaces as a protocol-version-mismatch status, and refuses to proceed. See Protocol version mismatch.- Python API (add-on)
The add-on’s Python API, exposed under
bl_ext.user_default.ppf_contact_solver.ops.apiand imported from Blender’s text editor or a notebook. Covers the same validation layer as the sidebar and the MCP server. See Blender Python API.run_python_scriptMCP tool that evaluates arbitrary Python inside Blender. Exists for operations the add-on does not yet expose as first-class tools; see the security note in MCP Server.
ppf-cts-serverThe Rust solver binary (
ppf-cts-serveron Linux,ppf-cts-server.exeon Windows) launched on the remote side (or as a local subprocess for Windows Native) that listens for work over TCP on the configured port (default 9090). Built from theppf-cts-servercrate, which wraps the algorithmic core inppf-cts-core.- Session ID
Per-connection identifier the add-on mints at connect (12 hex characters) and stamps on the artifacts that run produces. Persisted with the
.blendon save so a reopened file can detect whether the remote has been reset since the file was saved.- SSH Command mode
A connection backend that parses host, port, username, and key path out of a plain
ssh …string. Convenient when the command is pasted from a deployment script but brittle if your real config depends on~/.ssh/configwildcards.- SSH connection
A connection type where the solver runs on a remote Linux host reached by SSH, with credentials entered as explicit fields. See SSH.
- Streamable HTTP
The MCP transport profile (protocol version
2025-06-18) used by the bundled MCP server. All traffic goes through a single/mcpendpoint with a server-assignedMcp-Session-Id.- Windows Native connection
A connection type where the solver runs directly as a Windows subprocess, using a bundled Python interpreter and no SSH or Docker. See Windows Native.