Discrete Vectors
(by ekimroyrp)
Components for making discrete vectors out of continuous or random vectors. Good for turning swarms & curves into discrete straight line segments.
Support Email

These Components are now a part of Pufferfish and will be updated there from now on.

Download and install Pufferfish to get them: http://www.food4rhino.com/app/pufferfish



Components for making discrete vectors out of continuous or random vector sets. Good for matching vectors to other closest predefined vectors to give curves, swarms, and flowlines that straight line aesthetic. Works really well with plug-ins like Anemone and Boids Library, by inputting the result vectors into the rV input of the "Closest Vector" component, and the "Vector Star" into the tV input. "Closest Vector" and "Vector Star" will appear in the Vector > Vector tab. "Discrete PolyLine" makes any set of points into a polyline composed of discrete segments which align to the closest tV(targetVectors) and maintains the original lengths. "Discrete PolyLine" will appear in the Curve > Spline tab.

-Michael Pryor


Closest Vector(CV): Find the closest targetVector(tV) to referenceVector(rV) by angle.

Input rV: Reference - referenceVector 

Input tV: Target - targetVector 

Output V: Vector - Closest targetVector(tV) to referenceVector(rV)

Output A: Angle - Angle between referenceVector(rV) and closest targetVector(tV) in radians 


Discrete PolyLine (DPLine): Create a polyline by finding the closest targetVector(tV) to each vector between the vertices in referenceVertices(rV) by angle

Input rV: Reference - referenceVertices

Input tV: Target - targetVectors

Output Pl: Polyline - Discrete polyline


Vector Star(VecStar): Create a spatial subdivision of vectors from the origin out.

Input R: Resolution - Number of subdividing iterations for vector directions

Output V: Vector - Vector directions of the vector star from the origin out

Output L: Line - Line representation of the vector star 

*The Vector Star is useful as the targetVector(tV) for "Closest Vector" & "Discrete PolyLine", but any custom vectors can be used as well.



Optionally, you can see a similar workflow but done without these components from Noumena's website here.