--- generated_by: gdlink-build generated_at: 2026-06-23T12:34:28Z do_not_edit: true title: SpringArm3D brick_type: executor tier: Plus generated: true --- # SpringArm3D **Category:** Executor **Tier:** Plus ## Purpose The SpringArm3D Executor provides a native interface to control a SpringArm3D node's collision behavior and length. ## Visual Reference ```{raw} html
As added to your scene
SpringArm3D brick as it appears in the GDLink editor
``` ## Runtime Behavior **Inputs** - **Activate** (Boolean): When true, the executor updates properties and handles movement smoothing. - **Target Length** (Float): A dynamic input to drive `spring_length` via variable binding. **Outputs** None **Properties** **Core Configuration** - **Spring Length** (Float, 2.0): The maximum distance the arm extends if no collision is hit. - **Margin** (Float, 0.01): The offset from the collision point to prevent the camera from clipping inside geometry. - **Collision Mask** (Integer Bitmask): Defines which physics layers the arm should collide with. **Smoothing And Catch-Up Logic** - **Enable Smoothing** (Boolean, false): When true, the arm follows its tree parent using the authored local transform as the target. - **Smoothing Mode** (Option: `Location`, `Rotation`, `Both`; default `Location`): Chooses which channels interpolate while detached. Channels not selected by the mode snap directly to the authored follow target each tick. - **Rotation Follow Mode** (Option: `Absolute`, `Additive`; default `Absolute`): When rotation smoothing is active, `Absolute` lets the executor fully own the arm's rotation, while `Additive` preserves extra local camera-look rotation applied to the same `SpringArm3D` and composes it on top of the parent-follow pose. - **Smoothing Speed** (Float, 5.0): How quickly the arm catches up to the parent. - **Auto Top-Level** (Boolean, true): If enabled, the executor automatically enables **Top Level** at runtime so the arm can move independently. **Debug And UX (v0.8.98.1-dev11)** ... ```{raw} html
Generated UI Mockup — showing expanded properties
SpringArm3D
-
x
Name:
Label this brick...
Mask:
1
v
Length
2.0
v
Margin
0.01
v
Smoothing
Smooth Mode
Location
Rot Follow
Absolute
Smooth Spd
5.0
v
Auto TopLvl
Verbose
``` ## Properties | Property | Type | Default | Notes | |---|---|---|---| | Length | float | 2.0 | Maximum arm length when unobstructed | | Margin | float | 0.01 | Offset from collision point to avoid clipping | | Mask | int | 1 | Raw physics layer bitmask used by SpringArm3D collision checks | | Smoothing | bool | False | Enable detached positional catch-up smoothing | | Smooth Mode | option | Location | Which follow channels interpolate while detached. Unselected channels snap to the authored follow transform. | | Rot Follow | option | Absolute | When smoothing rotation, choose whether the spring arm owns rotation outright or preserves extra local look input on top of the follow pose. | | Smooth Spd | float | 5.0 | Catch-up speed when smoothing is enabled | | Auto TopLvl | bool | True | Temporarily enable Top Level at runtime so the arm can lag behind its parent | | Verbose | bool | False | Log SpringArm3D target, hit length, compression, and smoothing state (controlled by ladybug button) |