Compute acceleration and deceleration factors to a speed property in an array created by a sensor tracking a moving object.

This is useful to add an accumulation and a release of inertia to a moving object relative to tracked data and avoid abrupt starts & stops when the tracked object either starts or halts its movement or comes in and out of the tracking field.

The node is designed to function with a feedback of its own output and add to it. The easiest way to achieve this is by writing its output to a variable and reading that variable into its dedicated input. See example below.


Properties


This node has three tabs in the Editor panel : General, Flick and Limit

General


  • Value Field Name : The name of the property to compute friction from. This needs to be manually set to the correct property.
    Default : V
  • Max Speed : Set the speed cap for the target value. A value of 0 means no limit.
    Default : 0.0
  • Update Style : Choose between System Refresh Rate or Fixed Interval. Defines the rate at which the Friction node updates its data.
    Default : System Refresh Rate

Note : If Fixed Interval is chosen an additional option appears to set the interval in ms.

  • Acceleration : Sets a factor for acceleration. A value of 0 disables acceleration. The best values for these factors will depend on your data input.
    Default : 0.0
  • Deceleration : Sets a factor for deceleration. A value of 0 disables acceleration. The best values for these factors will depend on your data input.
    Default : 0.0
  • Override touch : If toggled ON this option will override any computation currently in effect with fresh computation from the input array as soon as it receives data. This is particularly useful in conjunction to the Flick option below.
    Default : OFF

Flick


Flick means the computation will continue even if the input array becomes empty, or if the tracked property stops moving. It will use the last known value for the target property in its computation.

  • Flickable : Toggle to activate/deactivate the Flick property.
    Default : OFF

Note : Keeping this value OFF will hide the following properties.

  • Flick maximum time : Window of time (in ms) under which flick will occur. If detection appears and disappears within this time frame, the flick will be activated. If detection does not disappear within this timeframe flick will not be activated.
    Default : 800
  • Flick minimum distance : Minimum distance for a flick to occur. If detection does not travel more than this distance (within the timeframe set above) then flick will not be activated. Set to 0 to deactivate the spatial window.
    Default : 0.0
  • Flick inertia time : Set the duration for which flick will continue to compute data before entering deceleration phase.
    Default : 1000
  • Flick speed behavior : Choose between Dynamic Accumulation where flicks can be stacked and added to each other if several flicks occur in a limited timeframe before the computation for each flick is over, or Constant where flick speed is calculated with a constant factor regardless of the number of occurrences.
    Default : Dynamic accumulation
  • Flick accumulation coefficient : (Only if Flick Speed Behavior is set to Dynamic Accumulation) Set the coefficient for each flick to compute its speed in addition to the current speed.
    Default : 0.5
  • Flick speed : (Only if Flick Speed Behavior is set to Constant) Set the speed to maintain for the duration of the inertia time.
    Default : 1.0

Limit


The limit property will constrain the value between a minimum (lower bound) and a maximum (upper bound).

  • Limit : Toggle to activate/deactivate the limit property.
    Default : OFF

Note : Keeping this value OFF will hide the following properties.

  • Upper bound : The upper limit the output value will not go over.
    Default : 1.0
  • Lower bound : The lower limit the output value will not go under.
    Default : 0.0
  • Edge bounce : Toggle to activate/deactivate a rebound if the value hits the upper or lower bounds. A rebound will force the value to go in the opposite direction with a certain strength calculated using the ratio below.
    Default : OFF
  • Damper Ratio : (Only if Edge Bounce is ON) Sets the factor to compute the strength of the rebound. A value of 0 is equivalent to no Edge bounce, while a value of 1 will set the maximum possible strength for the rebound. Values cannot be anything other than between 0 and 1.
    Default : 0.5

Inputs


Name Type Description
Array Array Array containing dynamic data with at least a speed property
Value Float Input for the feedback of the output value

Outputs


Name Type Description
Value Value Output value of the computation

Example





In this example :

  • Value Field Name : Vx
  • Max Speed : 1500
  • Update Style : System Refresh Rate
  • Acceleration : 3.0
  • Deceleration : 3.0
  • Override touch : OFF
  • Flick : ON
  • Flick Speed Behavior : Constant
  • Flick Speed : 1.0
  • Limit : ON
  • Upper bound : 4.0
  • Lower bound : 3.0
  • Edge bounce : ON
  • Damper Ratio : 1.0

Need more help with this?
Don’t hesitate to contact us here.

Thanks for your feedback.