Node: Cluster Tracker

From Waltz
Revision as of 17:17, 24 July 2019 by Patrick Angle (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

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