Node: Cluster Tracker
The Cluster Tracker node takes a List<Touch> and performs a density-based spatial clustering of applications with noise (DBSCAN) operation to create touches representing each found cluster. This is useful for processing input from devices that present raw data where multiple touches may be the same physical touch, like the output touches
of an LED Processor Input Node.
The Cluster Tracker Node's most important function is its ability to maintain tracking across frames. Each frame of clusteredOutput
from the node will be based on the results of the previous frames, allowing for tracking movement amongst static Touches. Additionally, smoothing can be used to smooth out changes in cluster size and position between frames to create the illusion of smoother movement when the input data is of a low resolution.
Contents
Settings
Expected Type | Details | Default | |
---|---|---|---|
input
|
List<Touch> | The touches that should be compared for clustering. | |
clusteringEpsilon
|
Number | The maximum radius of the area to be considered a single cluster or touch. See DBSCAN: Algorithm for a more detailed look at how the epsilon is used in a clustering operation. | 32
|
clusteringMinimumPoints
|
Number | The minimum number of points required to form a cluster. Points that are not within the clusteringEpsilon of this number of points will be discarded. This number does not include the core point that is being compared to other points, therefor a cluster must always have this number of points plus one points in order to be a cluster and not noise.
|
1
|
clusterTravelRadius
|
Number | The maximum distance a cluster can move between two frames before it is considered a new cluster. | 96
|
clusterTimeout
|
Time | The maximum amount of time a cluster can exist without any input data affecting its position or size. | Time(750)
|
clusterPositionSmoothingFactor
|
Number | The factor by which a cluster's position will be smoothed. Smoothing is expressed as 1.0 / clusterPositionSmoothingFactor . The calculated result is used as a percentage of trust to be placed in the new position, so a higher clusterPositionSmoothingFactor will result in smoother movement, but will take longer to reach any given point. This value must be greater than or equal to 1.0 , otherwise 1.0 is substituted. A value of 1.0 indicates no smoothing should be applied.
|
8
|
clusterRadiusSmoothingFactor
|
Number | The factor by which a cluster's radius will be smoothed. Smoothing is expressed as 1.0 / clusterRadiusSmoothingFactor . The calculated result is used as a percentage of trust to be placed in the new radius, so a higher clusterRadiusSmoothingFactor will result in smoother movement, but will take longer to reach any given radius. This value must be greater than or equal to 1.0 , otherwise 1.0 is substituted. A value of 1.0 indicates no smoothing should be applied.
|
16
|
Parameters
Type | Details | |
---|---|---|
clusteredOutput
|
List<Touch> | Note: The parameter is read-only. The clustered output, represented as touches with smoothing applied. |
Functions
There are no functions exposed by this node.
Example Usage
No examples provided.
Nodes | |
---|---|
Devices | ArtNet Input · ArtNet Output · Interactive LED Processor · NDI™ Input · NDI™ Output · OSC Input · OSC Output · Projector · SensorLink · TCP · TUIO Output · UDP Input · UDP Output · Watchout Media Server |
Objects | LED Tile Layout · List · Map · Random Number · Simulated Touch · Timer · Value · Wave |
Operators | Blend · Change · Clip · Cluster Tracker · DMX Multiverse Merge · Ease · Filter · Hold · JSON Mapper · JSON Stringify · Logic · Math · Proximity · Range · Rotate · Scale · Shear · Smooth · Touch Mapper · Translate |
Scenes | External Scene · Material Scene |
Materials | Graph · Touch Material |
Scripting | Script Function · Script |
Comments | Comment |