﻿ Pufferfish - Addon for Grasshopper | Grasshopper Docs Community documentation for Grasshopper add-ons & plugins

# Pufferfish

##### Components for Tweens, Blends, Morphs, Averages, Interpolations, & Transformations - essentially Shape Changing.
 Color
 Curve
 Domain
 List
 Mesh
 Number
 Plane
 Point
 SubD
 Surface
 Transform
 Twisted Box
 Vector

### Curve

 Align Curve Seams (AliCrvSeams)Iteratively or non-iteratively align the seams for a set of closed curves starting from the first curve in the set (or optionally from a guide start point) with the option of snapping to corners, if curve is not closed it will output with no change Arc/Circle/Ellipse (ACE)Get the arc, circle, or ellipse representation of a curve. Average Curve (AvrCrv)Solve the arithmetic average for a set of curves. Close Curve (ClsCrv)Close an open curve in a variety of ways, if curve is already closed or linear it will output with no change. Compatibilize Polylines (ComPLines)Make a set of polylines compatible(equal) in control point count without changing their shapes. Curve Align Curve Seams (CrvAliCrvSeams)Align the seams for a set of closed curves along a guide curve with the option of snapping to corners, if curve is not closed it will output with no change. Curve Degree (CrvDeg)Get the degree value of a curve. Curve Length At (CrvLenAt)Get the length along a curve from its start to a point on the curve (or optionally to a parameter on the curve), if point is not on the curve it will be pulled to it. Curve Length Between (CrvLenBtwn)Get the lengths along a curve between points on the curve (or optionally parameters on the curve), if points are not on the curve they will be pulled to it. Curve Spans (CrvSpans)Gets the curve sub-domain for each span in a curve and gets information about the spans such as, amount of spans, length of each span, degree of each span, and curve parameters at the span ends. Discrete Polyline (DPLine)Create a polyline made of target vector oriented segments by finding the closest target vector by angle to each vector between the reference vertices. Is Arc/Circle/Ellipse (IsACE)Test if a curve is an arc, circle, or ellipse as defined by Rhino. Curves can be multiple types. Is Curve Kinky (CrvKinky)Test if a curve has kinks, and gets information about the kinks such as, amount of kinks and the length along curve where each kink exists. Is Curve Linear (CrvLinr)Test a curve for linearity. Is Curve Segmented (CrvSegs)Test if a curve has segments, and gets information about the segments such as, amount of segments, length of each segment, and degree of each segment. Mesh Edge Loops (MshEdgLoops)Extract the egde loop polylines of a quad mesh at a specified mesh vertice index.-base methods by Mateusz Zwierzycki Mirror Cut Curve (MirCutCrv)Cut a curve with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side. Net On Surface (NetSrf)Create a net of interpolated curves on a surface. Offset Curve From Surface (OffCrvSrf)Offset a curve away from a surface by the surface normal directions with the option of offsetting both sides and capping the ends. Parameter Curve Divide Surface (ParamCrvDivSrf)Generate a grid of curves on a surface from domain dividing {u} and {v} parameters, or generate a surface isocurve. Parameter Surface Grid (ParamSrfGrid)Generate a grid of rectangular cells on a surface from domain dividing {u} and {v} parameters. Parameter Surface Isocurve (ParamSrfIso)Generate an isocurve on a surface from a domain dividing {u} or {v} parameter. Plane Trim Curve (PlnTrimCrv)Trim (remove) the parts of a curve on one side of a plane. Point Fit Rectangle (PtFitRec)Fit a rectangle through a set of points. Points Trim Curve (PtsTrimCrv)Trim a curve with a set of points (or optionally a set of parameters) like a dash pattern, if points are not on the curve they will be pulled to it. Rebuild Curve (RebCrv)Rebuild a curve to a given point count, degree, and domain. Rebuild Curve Segments (RebCrvSegs)Search a curve for segments at specified degrees and rebuild them to a specified degree and control point count. Relocate Curve Ends (ReCrvEnds)Relocate a curves ends to new start and end point locations without having to rebuild the curve. Remap Curve Domain (ReCrvDom)Remap a curves {t} domain range to an input domain range with the option of matching the {t} domain range of a guide curve. Reparameterize Curve (ReparamCrv)Reparameterize a curve to have a (t) domain range from 0 to 1. Seam To Curve Corner (Seam2CrvCorn)Adjust the seam of a closed curve with corners so that the seam is on the closest corner from the initial seam location (or optionally from a guide point), if curve is not closed or has no corners it will output with no change Slide Curve Along Curve (SlideCrvCrv)Slide a curve along a guide curve (or optionally along two guide curves). Smooth Curve (SmoCrv)Smooth a curve recursively by fairing, without changing its control point count. Superimpose Curve (SuperCrv)Superimpose the control point count, degree, and domain properties of a reference curve onto a target curve. Tween Consecutive Curves (TwnConCrvs)Tween consecutively between a set of curves. Tween Consecutive Curves Along Curve (TwnConCrvsCrv)Tween consecutively between a set of curves along a guide curve (or optionally along two guide curves). Tween Consecutive Curves On Surface (TwnConCrvsSrf)Tween consecutively between a set of curves on a surface, if curves are not on the surface they will be pulled to it. Tween Through Curves (TwnThruCrvs)Tween through a set of curves. Tween Through Curves Along Curve (TwnThruCrvsCrv)Tween through a set of curves along a guide curve (or optionally along two guide curves). Tween Through Curves On Surface (TwnThruCrvsSrf)Tween through a set of curves on a surface, if curves are not on the surface they will be pulled to it. Tween Two Curves (Twn2Crvs)Tween between two curves. Tween Two Curves Along Curve (Twn2CrvsCrv)Tween between two curves along a guide curve (or optionally along two guide curves). Tween Two Curves On Surface (Twn2CrvsSrf)Tween between two curves on a surface, if curves are not on the surface they will be pulled to it. Weighted Average Curve (WavCrv)Solve the arithmetic weighted average for a set of curves. Bounding Rectangle (BRec)Create a plane oriented union bounding rectangle or separate bounding rectangles for geometry. Constrained Area Ellipse (ConsAreaEli)Create an ellipse or circle the size of a specified area with {x} and {y} proportion factors, centered on a plane. Constrained Area Polygon (ConsAreaPly)Create an irregular or regular polygon the size of a specified area with {x} and {y} proportion factors, centered on a plane. Constrained Area Rectangle (ConsAreaRec)Create a rectangle or square the size of a specified area with {x} and {y} proportion factors, centered on a plane. Fit Curve Segments (FitCrvSegs)Search a curve for segments at specified degrees and fit new curve segments through them to a specified degree, without changing the general shape. Fit Curve Smooth (FitCrvSmo)Fit a new curve through an existing curve with kink angle smoothing, without changing the general shape. Offset Curve (OffCrv)Offset a curve with the option of offsetting both sides and capping the ends. Open Curve (OpnCrv)Open a closed curve from its seam, or shorten an open curve from its ends. Parameter Rectangle Grid (ParamRecGrid)Generate a grid of rectangular cells in a rectangle from domain dividing {x} and {y} parameters. Prude Curve (PrudeCrv)Removes the kinky parts of a curve (discontinuities) by blending the curve segments togther, if curve already has no kinks it will output with no change.

### Twisted Box

 2Pt Twisted Box (2PtTBox)Create a twisted box defined by 2 points. Average Twisted Box (AvrTBox)Solve the arithmetic average for a set of twisted boxes. Center Twisted Box (CenTBox)Create a twisted box centered on a plane. Construct Twisted Box (CoTBox)Construct a twisted box from a set of 8 corner points. Deconstruct Twisted Box (DeTBox)Deconstruct a twisted box into sets of its 8 corner points, 12 edge lines, or 6 face polylines. Deform Twisted Box (DeformTBox)Deform a twisted box by moving corner points with motion vectors. Domain Twisted Box (DomTBox)Create a twisted box defined by a base plane and size domains. Evaluate Twisted Box (EvalTBox)Locate a point inside or on a twisted box, evaluated in normalized {uvw} space. Mesh Boolean Twisted Boxes (MshBoolTBoxs)Trim (remove) a set of twisted boxes by a boolean intersection or difference with one or multiple closed meshes Mesh Trim Twisted Boxes (MshTrimTBoxs)Trim (remove) the parts of a twisted box set on one side of a mesh. [Multi-Threaded] Plane Trim Twisted Boxes (PlnTrimTBoxs)Trim (remove) the parts of a twisted box set on one side of a plane. [Multi-Threaded] Polysurface Boolean Twisted Boxes (PsrfBoolTBoxs)Trim (remove) a set of twisted boxes by a boolean intersection or difference with one or multiple closed polysurfaces(Breps) Reference Twisted Box (RefTBox)Create a twisted box from a Rhino referenced box like Polysurface (Brep) that has 6 faces and 8 corners Subdivide Twisted Box (SubDivTBox)Recursively subdivide a twisted box into smaller twisted boxes. Surface Trim Twisted Boxes (SrfTrimTBoxs)Trim (remove) the parts of a twisted box set on one side of a surface. [Multi-Threaded] Thicken Twisted Box (ThickTBox)Thicken a twisted box with layers of twisted boxes from thickness domain dividing parameters. Tween Consecutive Twisted Boxes (TwnConTBoxs)Tween consecutively between a set of twisted boxes. Tween Through Twisted Boxes (TwnThruTBoxs)Tween through a set of twisted boxes. Tween Two Twisted Boxes (Twn2TBoxs)Tween between two twisted boxes. Twisted Box Array (TBoxArray)Create a layered array of connected twisted boxes in a box from domain dividing parameters. Twisted Box Centers (TBoxCents)Find the center point (average) of a twisted boxes corner points, edge lines, or face polylines. Twisted Box Consecutive Curves (TBoxConCrvs)Create a layered array of connected twisted boxes consecutively between curves from a thickness and domain dividing parameters. Twisted Box Consecutive Meshes (TBoxConMshs)Create a layered array of connected twisted boxes consecutively between a set of meshes from the faces, works on quad and triangle faces. Meshes must have the same topology. Twisted Box Consecutive Surfaces (TBoxConSrfs)Create a layered array of connected twisted boxes consecutively between a set of surfaces from domain dividing parameters. Twisted Box Corners (TBox Corners)Get all 8 corners of a twisted box. Twisted Box Curve (TBoxCrv)Create connected twisted boxes along a curve from domain dividing parameters. Twisted Box Curve Variable (TBoxCrvVar)Create connected twisted boxes along a curve from domain dividing parameters, with variable sizes and rotations. Twisted Box Extrude (TBoxExtr)Create connected twisted boxes from a profile curve or surface along a vector, curve, or to a point from domain dividing parameters. Twisted Box Loft (TBoxLoft)Create twisted boxes between section curves or surfaces Twisted Box Mesh (TBoxMsh)Create a layered array of connected twisted boxes on a mesh from the faces and a parameter domain divided thickness, works on quad and triangle faces. Twisted Box Pipe (TBoxPipe)Create connected twisted boxes along the inside of a pipe-like surface from domain dividing parameters. Twisted Box Pipe Variable (TBoxPipeVar)Create connected twisted boxes along the inside of a pipe-like surface from a separate set of {u} domain dividing parameters for each {v} parameter. Twisted Box Strip (TBoxStrip)Create connected twisted boxes along two rail curves from domain dividing parameters. Twisted Box Strips (TBoxStrips)Create connected twisted boxes along a set of rail curves from domain dividing parameters. Twisted Box Strip Variable (TTBoxStripVar)Create connected twisted boxes along two rail curves from a separate set of domain dividing parameters for each rail curve. Twisted Box Surface (TBoxSrf)Create a layered array of connected twisted boxes on a surface from a thickness and domain dividing parameters. Twisted Box Sweep (TBoxSweep)Create connected twisted boxes along four rail curves from domain dividing parameters. Twisted Box Sweep Variable (TBoxSweepVar)Create connected twisted boxes along four rail curves from a separate set of domain dividing parameters for each rail curve. Twisted Box Through Curves (TBoxThruCrvs)Create a layered array of connected twisted boxes through a set of curves from a thickness and domain dividing parameters. Twisted Box Through Meshes (TBoxThruMshs)Create a layered array of connected twisted boxes through a set of meshes from the faces, works on quad and triangle faces. Meshes must have the same topology. Twisted Box Through Surfaces (TBoxThruSrfs)Create a layered array of connected twisted boxes through a set of surfaces from domain dividing parameters. Twisted Box Tube (TBoxTube)Create a layered tube array of connected twisted boxes along a curve from domain dividing parameters. Twisted Box Tube Variable (TBoxTubeVar)Create a layered tube array of connected twisted boxes along a curve from domain dividing parameters, with variable diameters, thicknesses, and rotations. Twisted Box Two Curves (TBox2Crvs)Create a layered array of connected twisted boxes between curves from a thickness and domain dividing parameters. Twisted Box Two Meshes (TBox2Mshs)Create a layered array of connected twisted boxes between meshes from the faces, works on quad and triangle faces. Meshes must have the same topology. Twisted Box Two Surfaces (TBox2Srfs)Create a layered array of connected twisted boxes between surfaces from domain dividing parameters. Twisted Box Volume (TBoxVol)Solve volume properties for a twisted box. Weighted Average Twisted Box (WavTBox)Solve the arithmetic weighted average for a set of twisted boxes.

### Surface

 Append Polysurfaces (AppPsrfs)Append a set of polysurfaces (Breps) which are disjoint to become a single polysurface (Brep) even though they are not touching or joined. Can also append surfaces. Automatic Edge Surface (AutoEdgSrf)Create a surface between 2, 3, or 4 auto sorted edge curves. Automatic Network Surface (AutoNetSrf)Create a surface from an auto sorted curve network. Average Surface (AvrSrf)Solve the arithmetic average for a set of surfaces, trimmed surfaces will be treated as untrimmed. Extrude Tapered Polysurface (ExtrTaper)Extrude a profile with a taper from draft angle. Flip Polysurface (FlipPsrf)Flip the normals of a polysurface (Brep), closed polysurfaces (Breps) cannot be flipped and will output with no change. Is Polysurface Closed (PsrfClsd)Test if a polysurface (Brep) is closed. Is Surface Closed (SrfClsd)Test if a surface is closed and if its edges are closed in the {u} or {v} directions. Is Surface Collapsed (SrfCollapsed)Test if a surface has edges collapsed to a point (singularities). Is Surface Trimmed (SrfTrimd)Test if a surface is trimmed, can also test a polysurface (Brep) for trimmed faces. Mesh To Polysurface (Msh2Psrf)Convert a mesh into a nurbs polysurface (Brep). Mirror Cut Polysurface (MirCutPsrf)Cut a polysurface(Brep) with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side. Can also mirror cut surfaces. Mirror Cut Surface (MirCutSrf)Cut a surface with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side (for trimmed surfaces use Mirror Cut Polysurface). Offset Surface (OffSrf)Offset a surface with the option of offsetting both sides and creating a solid, also works with trimmed surfaces and polysurface (Brep) faces as separated offsets. Parameter Subdivide Surface (ParamSubDivSrf)Generate a grid of subdivision surfaces on a surface from domain dividing {u} and {v} parameters. Plane Trim Surface (PlnTrimSrf)Trim (remove) the parts of a surface on one side of a plane, also works with trimmed surfaces and polysurfaces (Breps). Rebuild Surface (RebSrf)Rebuild a surface to a given point count, degree, and domain in the {u} and {v} directions, also works with trimmed surfaces. Remap Surface Domain² (ReSrfDom²)Remap a surfaces {uv} domain² range to an input domain² range with the option of matching the {uv} domain² range of a guide surface, also works with trimmed surfaces. Reparameterize Surface (ReparamSrf)Reparameterize a surface to have a (uv) domain² range from 0 to 1, also works with trimmed surfaces. Shell Polysurface (ShellPsrf)Creates a hallowed out thickened shell from a closed polysurface (Brep). Shrink Trimmed Surface (ShrinkTrimSrf)Shrinks the underlying untrimmed surface of a trimmed surface to be as close as possible to the trimmed surface edges, can also shrink trimmed polysurface (Brep) faces. Split Kinky Surface (SplitKinkySrf)Split the output surface from an unsplit surface component into a polysurface(Brep) if it has kinks, if surface has no kinks it will output with no change. Superimpose Surface (SuperSrf)Superimpose the {uv} control point count, {uv} degree, {uv} domain, and trims of a reference surface onto a target surface, also works with trimmed surfaces. Surface Degree (SrfDeg)Get the degree value of a surface for its {u} and {v} directions. Surface Spans (Srfpans)Gets the surface sub-domain²s for each span in a surface and gets information about the spans such as, sub-domains of each span, amount of spans in each direction, lengths of each span, degrees of each span, isocurve span parameters, and surface parameter coordinates at the span ends Swap Surface Directions (SwapSrfDir)Swap or reverse the {u} and {v} directions of a surface, also works with trimmed surfaces but trims will swap as well. Tween Consecutive Surfaces (TwnConSrfs)Tween consecutively between a set of surfaces, trimmed surfaces will be treated as untrimmed. Tween Through Surfaces (TwnThruSrfs)Tween through a set of surfaces, trimmed surfaces will be treated as untrimmed. Tween Two Surfaces (Twn2Srfs)Tween between two surfaces, trimmed surfaces will be treated as untrimmed. Tween Two Surfaces Along Curve (Twn2SrfsCrv)Tween between two surfaces along a guide curve (or optionally along two guide curves), trimmed surfaces will be treated as untrimmed. Unroll Polysurface (UnrollPsrf)Unroll a polysurface (Brep) so its faces lay flat on a plane, with the options to unroll points and curves along with the polysurface (Brep) faces. Can also unroll surfaces. Unsplit Edge Surface (UnsplitEdge)Create an untrimmed edge surface between 2, 3, or 4 edge curves which doesn't split into a polysurface(Brep) at kinks. Unsplit Extrude Surface (UnsplitExtr)Create an untrimmed extruded surface from a profile curve or surface along a vector, curve, or to a point, which doesn't split into a polysurface(Brep) at kinks. Unsplit Loft Surface (UnsplitLoft)Create an untrimmed lofted surface through a set of section curves or surfaces which doesn't split into a polysurface(Brep) at kinks. Unsplit Rail Revolve Surface (UnsplitRailRev)Create an untrimmed revolved surface from a profile curve or surface guided by a rail curve around an axis line which doesn't split into a polysurface(Brep) at kinks. Unsplit Sum Surface (UnsplitSum)Create an untrimmed sum surface from two edge curves which doesn't split into a polysurface(Brep) at kinks. Unsplit Sweep Surface (UnsplitSwp)Create an untrimmed swept surface through a set of section curves or surfaces along a rail curve (or optionally along two rail curves) which doesn't split into a polysurface(Brep) at kinks. Weighted Average Surface (WavSrf)Solve the arithmetic weighted average for a set of surfaces, trimmed surfaces will be treated as untrimmed. Constrained Volume Box (ConsVolBox)Create a rectangular or regular box the size of a specified volume with {x}, {y}, and {z} proportion factors, centered on a plane. Constrained Volume Ellipsoid (ConsVolEli)Create an ellipsoid or sphere the size of a specified volume with {x}, {y}, and {z} proportion factors, centered on a plane. Fit Surface (FitSrf)Fit a new surface through an existing surface when possible without changing the general shape, also works with trimmed surfaces. Unsplit Revolve Surface (UnsplitRev)Create an untrimmed revolved surface from a profile curve or surface around an axis line which doesn't split into a polysurface(Brep) at kinks.

### Point

 Are Points Collinear (PtsCoLinr)Test a set of points for collinearity. Are Points Coplanar (PtsCoPlnr)Test a set of points for coplanarity. Curve Edit Points (CrvEditPts)Extract the edit points on a curve at knot averages, the points an interpolated curve interpolated through. Curve Middle Point (CrvMidPt)Get the point at the middle of a curves length or domain. Map Point To Surface (MapPt2Srf)Map point to a target surface space from its location relative to a source surface space. Mirror Cut Points (MirCutPts)Cut a set of points with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side. Parameter Point Divide Surface (ParamPtDivSrf)Generate a grid of points on a surface from domain dividing {u} and {v} parameters. Parameter Point In Rectangle (ParamPtInRec)Locate a point in a rectangle from a domain dividing {x} and {y} parameter. Parameter Point On Surface (ParamPtOnSrf)Locate a point on a surface from a domain dividing {u} and {v} parameter. Pinch'n'Spread Points (P'n'S)Pinch & Spread a set of points by radius, strength, and falloff values at each location point.Positive strengths Pinch, Negative strengths Spread. Plane Trim Points (PlnTrimPts)Trim (remove) the parts of a point set on one side of a plane. Point Divide Curve Segments (PtDivCrvSegs)Divide each segment of a curve into equal lengths. Point Divide Curve Target Length (PtDivCrvTarg)Divide a curve into equal lengths that are as close as possible to a target length. Point Mesh Side (PtMshSide)Find on which side of a mesh a point exists. Point Plane Side (PtPlnSide)Find on which side of a plane a point exists. Point Surface Edge (PtSrfEdge)Find the surface edge which is closest to a point. Point Surface Side (PtSrfSide)Find on which side of a surface a point exists. Reparameterize Points (ReparamPts)Reparameterize a set of points to have {x}, {y}, {z} coordinates which range from 0 to 1, or an inverted coordinate range from 1 to 0. Surface Edit Points (SrfEditPts)Extract the edit points on a surface at knot averages, the points an interpolated surface interpolated through. Tween Consecutive Points (TwnConPts)Tween consecutively between a set of points. Tween Consecutive Points On Curve (TwnConPtsCrv)Tween consecutively between a set of points on a curve, if points are not on the curve they will be pulled to it. Tween Consecutive Points On Surface (TwnConPtsSrf)Tween consecutively between a set of points on a surface, if points are not on the surface they will be pulled to it. Tween Through Points (TwnThruPts)Tween through a set of points. Tween Through Points On Curve (TwnThruPtsCrv)Tween through a set of points on a curve, if points are not on the curve they will be pulled to it. Tween Through Points On Surface (TwnThruPtsSrf)Tween through a set of points on a surface, if points are not on the surface they will be pulled to it. Tween Two Points (Twn2Pts)Tween between two points. Tween Two Points On Curve (Twn2PtsCrv)Tween between two points on a curve, if points are not on the curve they will be pulled to it. Tween Two Points On Surface (Twn2PtsSrf)Tween between two points on a surface, if points are not on the surface they will be pulled to it. Curve Coil Points (CrvCoilPts)Create a series of points which coil along a curve. Curve Wave Points (CrvWavePts)Create a series of points which wave along a curve.

### Number

 Curve Graph Mapper (CrvGraphMap)Remap values with a custom graph using input curves. Deconstruct Number (DeNum)Deconstruct a number into its whole integer and decimal remainder. Default Angle Tolerance (DefAt)Outputs the RhinoMath default angle tolerance value (1 deg | 0.017453 rad ). Document Angle Tolerance (DocAt)Outputs the Rhino documents angle tolerance value (Document Properties > Units > Model > Angle tolerance). Document Distance Tolerance (DocDt)Outputs the Rhino documents absolute distance tolerance value (Document Properties > Units > Model > Absolute tolerance). Highest & Lowest Numbers (HiLoNums)Get the highest and lowest values from a set of numbers. Invert Boolean (InvBool)Invert a boolean by making a true boolean false or a false boolean true. Last Index Range (LastRange)Create a range of numbers between 0 and the last index of a list (list length -1). List Length Range (LengRange)Create a range of numbers between 0 and the length of a list. Mass Division (MDiv)Perform mass division on a set of numbers. Mass Subtraction (MSub)Perform mass subtraction on a set of numbers. Mirror Combine Numbers (MirComNums)Mirror a set of numbers across its end or start and combine it with the original set. Mirror Cut Numbers (MirCutNums)Cut a set of numbers at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Odd & Even Numbers (OddEveNums)Split a set of numbers into odd and even number sets with the option of using null placeholders in the split number sets. Partition Number (PartNum)Partition a number as equally as possible by a specified amount of divisions. Percentage (Pcent)Calculate the percentage of a number. Reparameterized Range (RepaRange)Create a range of numbers between 0 and 1. Reparameterize Numbers (ReparamNums)Reparameterize a set of numbers to have a domain range from 0 to 1, or an inverted domain range from 1 to 0. Round To Decimal Place (RoundD)Round a number to a decimal place or truncate a number at a decimal place. Round To Factor (RoundF)Round a number to a multiplication factor. Round To Nearest (RoundN)Round numbers in x to the nearest numbers in y with the option of remapping number set x to the domain bounds of number set y. Tween Consecutive Numbers (TwnConNums)Tween consecutively between a set of numbers. Tween Through Numbers (TwnThruNums)Tween through a set of numbers. Tween Two Numbers (Twn2Nums)Tween between two numbers. X Minus One (x-1)Subtract one from x. X Plus One (x+1)Add one to x. Zero Distance Tolerance (ZerDt)Outputs the RhinoMath zero distance tolerance value (1.0e-12). Equality Within Tolerance (EqualsT)Test for equality of two numbers within a tolerance (|A - B| <= t). Linearize Numbers (LinearNums)Linearize a set of numbers so a repeating wave type number set is remapped to increasing increments between a domain bounds, while maintaining the interval proportions between numbers.

### Mesh

 Angle Split Mesh (AngSplitMsh)Split a mesh into separate meshes by measuring an angle tolerance between adjacent mesh face normals, if angle tolerance does not split the mesh it will output with no change Average Mesh (AvrMsh)Solve the arithmetic average for a set of meshes, meshes must have the same topology. Can also average mesh vertex colors. Close Mesh (ClsMsh)Close an open mesh by filling its openings with new mesh faces, if mesh is already closed it will output with no change. Is Mesh Closed (MshClsd)Test if a mesh is closed. Is Mesh Disjoint (MshDisjn)Test if a mesh has disjoint pieces. Mirror Cut Mesh (MirCutMsh)Cut a mesh with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side. Offset Mesh (OffMsh)Offset a mesh with the option of offsetting both sides and creating a solid. Parameter Extrude Mesh (ParamExtrMsh)Create an extruded mesh from a profile curve along a vector, curve, or to a point from domain dividing {u} and {v} parameters, or by lengths between control points, or by angle accuracy, with the option of capping closed profile mesh extrusions Parameter Loft Mesh (ParamLoftMsh)Create a lofted mesh through a set of section curves from domain dividing {u} and {v} parameters, or by lengths between control points, or by angle accuracy, with optional start and end points to loft to Parameter Pipe Mesh (ParamPipeMsh)Create a piped mesh along a curve from domain dividing {u} and {v} parameters, or by lengths between control points, or by angle accuracy, with various end types Parameter Surface Mesh (ParamSrfMsh)Generate a mesh on a surface from domain dividing {u} and {v} parameters. Plane Trim Mesh (PlnTrimMsh)Trim (remove) the parts of a mesh on one side of a plane. Polyline To Mesh (PLine2Msh)Create a mesh from a closed or open polyline boundary. Rebuild Mesh (RebMsh)Rebuild a mesh with options for recomputing normals, removing unused faces and vertices, combining duplicate vertices, unifying normals, flipping normals, and welding vertices within proximity of eachother Recursive Morph Mesh (ReMorphMsh)Recursively morph mesh geometries onto mesh faces starting from morphing onto a base mesh, the resulting mesh of each recursive morphing step becomes the new base mesh for the next steps mesh geometry to morph onto its faces Reduce Mesh (ReduMsh)Reduce the face count of a mesh to a target amount (look at Rhino command line to see progress % of operation). Tween Consecutive Meshes (TwnConMshs)Tween consecutively between a set of meshes, meshes must have the same topology. Can also tween mesh vertex colors. Tween Through Meshes (TwnThruMshs)Tween through a set of meshes, meshes must have the same topology. Can also tween mesh vertex colors. Tween Two Meshes (Twn2Mshs)Tween between two meshes, meshes must have the same topology. Can also tween mesh vertex colors. Weighted Average Mesh (WavMsh)Solve the arithmetic weighted average for a set of meshes, meshes must have the same topology. Can also average mesh vertex colors. Parameter Plane Mesh (ParamPlnMsh)Generate a planar mesh in a rectangle from domain dividing {x} and {y} parameters. Voxel Mesh (VoxMsh)Create a plane oriented voxelization of a set of points as a mesh without interior faces, defined by an {x}, {y}, and {z} voxel size. -base methods by Mateusz Zwierzycki

### Domain

 Average Domain (AvrDom)Solve the arithmetic average for a set of domains. Average Domain² (AvrDom²)Solve the arithmetic average for a set of domain²s. Mirror Combine Domains (MirComDoms)Mirror a set of domains across its end or start and combine it with the original set. Mirror Combine Domains² (MirComDoms²)Mirror a set of domain²s across its end or start and combine it with the original set. Mirror Cut Domains (MirCutDoms)Cut a set of domains at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Mirror Cut Domains² (MirCutDoms²)Cut a set of domain²s at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Reparameterize Domains (ReparamDoms)Reparameterize a set of domains to have a start and end value range from 0 to 1, or an inverted start and end value range from 1 to 0. Reparameterize Domains² (ReparamDoms²)Reparameterize a set of domain²s to have a start and end value range from 0 to 1 for their {u} and {v} domains, or an inverted start and end value range from 1 to 0. Slide Within Domain (SlideInDom)Slide within the start and end of a domain to get a number from inside the domain. Slide Within Domain² (SlideInDom²)Slide within the start and end of a domain² to get a {u} and {v} domain number from inside the domain². Tween Consecutive Domains (TwnConDoms)Tween consecutively between a set of domains. Tween Consecutive Domains² (TwnConDoms²)Tween consecutively between a set of domain²s. Tween Through Domains (TwnThruDoms)Tween through a set of domains. Tween Through Domains² (TwnThruDoms²)Tween through a set of domain²s. Tween Two Domains (Twn2Doms)Tween between two domains. Tween Two Domains² (Twn2Doms²)Tween between two domain²s. Two Way Domain (2WayDom)Construct a domain from one number that becomes the negative and positive extents of the domain from zero. Two Way Domain² (2WayDom²)Construct a domain² from one {u} number and one {v} number that becomes the negative and positive extents for each direction of the domain² from zero. Weighted Average Domain (WavDom)Solve the weighted arithmetic average for a set of domains. Weighted Average Domain² (WavDom²)Solve the weighted arithmetic average for a set of domain²s.

### Plane

 Average Plane (AvrPln)Solve the arithmetic average for a set of planes. Closest Plane Orientation (CPlnOri)Find the closest target plane by axis or axes orientation to a reference plane. Flip Plane (FlipPln)Flip a plane by specified axes with the option of using a guide plane. Mirror Cut Planes (MirCutPlns)Cut a set of planes with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side. Offset Plane (OffPln)Offset a plane by specified axes with the option of offsetting both sides. Parameter Plane Divide Surface (ParamPlnDivSrf)Generate a grid of surface normal oriented planes on a surface from domain dividing {u} and {v} parameters. Parameter Plane In Rectangle (ParamPlnInRec)Locate a rectangle normal oriented plane in a rectangle from a domain dividing {x} and {y} parameter. Parameter Plane On Surface (ParamPlnOnSrf)Locate a surface normal oriented plane on a surface from a domain dividing {u} and {v} parameter. Plane Trim Planes (PlnTrimPlns)Trim (remove) the parts of a plane set on one side of a plane. Tween Consecutive Planes (TwnConPlns)Tween consecutively between a set of planes. Tween Consecutive Planes On Curve (TwnConPlnsCrv)Tween consecutively between a set of planes on a curve, if plane origins are not on the curve they will be pulled to it. Tween Consecutive Planes On Surface (TwnConPlnsSrf)Tween consecutively between a set of planes on a surface, if plane origins are not on the surface they will be pulled to it. Tween Through Planes (TwnThruPlns)Tween through a set of planes. Tween Through Planes On Curve (TwnThruPlnsCrv)Tween through a set of planes on a curve, if plane origins are not on the curve they will be pulled to it. Tween Through Planes On Surface (TwnThruPlnsSrf)Tween through a set of planes on a surface, if plane origins are not on the surface they will be pulled to it. Tween Two Planes (Twn2Plns)Tween between two planes. Tween Two Planes On Curve (Twn2PlnsCrv)Tween between two planes on a curve, if plane origins are not on the curve they will be pulled to it. Tween Two Planes On Surface (Twn2PlnsSrf)Tween between two planes on a surface, if plane origins are not on the surface they will be pulled to it. Weighted Average Plane (WavPln)Solve the arithmetic weighted average for a set of planes.

### Transform

 Average Transform (AvrTran)Solve the arithmetic average for a set of transforms. Mass Transform (MTran)Create a single mass transform by compounding a set of transforms, like Grasshopper's Compound component but with access to partial results (each step of the mass transformation). Mirror Combine Transforms (MirComTrans)Mirror a set of transforms across its end or start and combine it with the original set. Mirror Cut Transforms (MirCutTrans)Cut a set of transforms at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Move To Point (Move2Pt)Move (translate) an object from one point to another. Recursive Transform (ReTrans)Recursively transform geometry to get a self-referential step sequence of transformed geometry. Slide Within Transform (SlideInTran)Slide within the start and end of a transform to get a transformation state from inside the transform. Tween Consecutive Transforms (TwnConTrans)Tween consecutively between a set of transforms. Tween Through Transforms (TwnThruTrans)Tween through a set of transforms. Tween Two Transforms (Twn2Trans)Tween between two transforms. Weighted Average Transform (WavTran)Solve the arithmetic weighted average for a set of transforms. Morph To Twisted Box (Morph2Tbox)Morph geometries from reference boxes to target twisted boxes. (*Rhino 6 only, for Rhino 5 use Grasshopper's Box Morph component.) [Multi-Threaded] Rotate Euler (RotEuler)Rotate an object by three plane axes and three angles in degrees, each axis derived from the plane previous. Rotate Quaternion (RotQuat)Rotate an object from one plane to another by a rotation factor, derived from quaternion rotation. Rotate World (RotWorld)Rotate an object by three plane axes and three angles in degrees, each axis derived from the initial base planes world. Scale To Area (Scale2Area)Scale geometry to a specified area with {x}, {y}, and {z} proportion factors. Scale To Length (Scale2Len)Scale a curve to a specified length with {x}, {y}, and {z} proportion factors. Scale To Volume (Scale2Vol)Scale geometry to a specified volume with {x}, {y}, and {z} proportion factors. Transform Twisted Box (TranTBox)Transform a twisted box (because twisted boxes do not work with regular transform components like Move, Scale, Rotate, etc).

### SubD

 Average SubD (AvrSubD)Solve the arithmetic average for a set of SubDs, SubDs must have the same topology.(*Rhino 7 WIP only) Mirror Cut SubD (MirCutSubD)Cut a SubD with a plane, mirror the kept side of the cut across a mirror plane, and combine it with the kept side. Tween Consecutive SubDs (TwnConSubDs)Tween consecutively between a set of SubDs, SubDs must have the same topology.(*Rhino 7 WIP only) Tween Through SubDs (TwnThruSubDs)Tween through a set of SubDs, SubDs must have the same topology.(*Rhino 7 WIP only) Tween Two SubDs (Twn2SubDs)Tween between two SubDs, SubDs must have the same topology.(*Rhino 7 WIP only) Twisted Box Consecutive SubDs (TBoxConSubDs)Create a layered array of connected twisted boxes consecutively between a set of SubDs from the faces, SubDs must have the same topology.(*Rhino 7 WIP only) Twisted Box SubD (TBoxSubD)Create a layered array of connected twisted boxes on a SubD from the faces and a parameter domain divided thickness.(*Rhino 7 WIP only) Twisted Box Through SubDs (TBoxThruSubDs)Create a layered array of connected twisted boxes through a set of SubDs from the faces, SubDs must have the same topology.(*Rhino 7 WIP only) Twisted Box Two SubDs (TBox2SubDs)Create a layered array of connected twisted boxes between SubDs from the faces, SubDs must have the same topology.(*Rhino 7 WIP only) Weighted Average SubD (WavSubD)Solve the arithmetic weighted average for a set of SubDs, SubDs must have the same topology.(*Rhino 7 WIP only)

### Vector

 Closest Vector (CVec)Find the closest target vector by angle to a reference vector. Mirror Combine Vectors (MirComVecs)Mirror a set of vectors across its end or start and combine it with the original set. Mirror Cut Vectors (MirCutVecs)Cut a set of vectors at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Reparameterize Vectors (ReparamVecs)Reparameterize a set of vectors to have a length (amplitude) range from 0 to 1, or an inverted length range from 1 to 0. Tween Consecutive Vectors (TwnConVecs)Tween consecutively between a set of vectors. Tween Through Vectors (TwnThruVecs)Tween through a set of vectors. Tween Two Vectors (Twn2Vecs)Tween between two vectors. Vector Star (VecStar)Create a plane oriented recursive spatial subdivision of vectors outward from a base planes origin Vector World (VecWorld)Create plane axis aligned vectors outward from a base planes origin

### Color

 Color To Point (Col2Pt)Convert a color to a point by using the colors RGB values for the points XYZ values. Grayscale Color (GrayCol)Convert a color to grayscale by a variety of common luminosity weighting schemes. Invert Color (InvCol)Invert a color. Mirror Combine Colors (MirComCols)Mirror a set of colors across its end or start and combine it with the original set. Mirror Cut Colors (MirCutCols)Cut a set of colors at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Point To Color (Pt2Col)Convert a point to a color by using the points XYZ values for the colors RGB values. Tween Consecutive Colors (TwnConCols)Tween consecutively between a set of colors. Tween Through Colors (TwnThruCols)Tween through a set of colors. Tween Two Colors (Twn2Cols)Tween between two colors.

### List

 Dispatch Indices (DispDexs)Dispatch a list of items into two lists based on a set of indices, those that are at the indices and those which are not Last Index (LastDex)Get the last index of a list (list length -1). List Indices (ListDexs)Get a list of the indices from a list of items. Mirror Combine Items (MirComItems)Mirror a set of list items across its end or start and combine it with the original set. Mirror Cut Items (MirCutItems)Cut a set of list items at an index, mirror the kept side of the cut across the index, and combine it with the kept side. Point Sort Items (PtSortItems)Sort a set of list items synchronously by the iterative closest point sorting of a set of points sequentially from a start point. Sift Indices (SiftDexs)Sift a list of items into two lists based on a set of indices, those that are at the indices and those which are not

## Video Tutorials

Site design © Robin Rodricks.   Pufferfish and associated data © 2020 Michael Pryor.
Rhinoceros and Grasshopper are registered trademarks of Robert McNeel & Associates.  Hosted by GitHub