Grasshopper

algorithmic modeling for Rhino

Information

Pufferfish

The Pufferfish is one of few animals which is capable of changing its shape.

This plugin is a set of 212 components which focuses on Tweens, Blends, Morphs, Averages, Transformations, & Interpolations - essentially Shape Changing. Pufferfish mainly uses parameters and factors for inputs for more custom control over operations like tweens and grids as opposed to grasshoppers usual division count inputs. These components are accompanied by support components which are useful methods for the preparation of tween/blend operations such as making curves compatible and a custom curve graph mapper. In addition, there are extra components which simplify some common grasshopper operations such as testing for equality within a tolerance and rounding to nearest numbers. Please email me if you find any bugs to help make this toolset better. Works with Grasshopper for Rhino 5, Rhino 6, and Rhino Mac. Pufferfish is written in C# as a .gha file. Somethings may not work as expected in Rhino 6 as McNeel continuously changes things, I am trying to catch them as the come. If you find anything working strange in Rhino 6 / Grasshopper 1 please let me know.

Download:www.food4rhino.com/app/pufferfish

Website: http://www.food4rhino.com/app/pufferfish
Location: Grasshopper3d
Members: 258
Latest Activity: 1 hour ago

Pufferfish Info

General notes

  1. Grasshoppers native "Interpolate Data" component can "Tween" simple data types such as numbers, colors, vectors and points already. Pufferfish's Tweens of these types differ in 2 ways. The first being that Pufferfish has 3 types of tweens for each: Tween Two, Tween Consecutive, and Tween Through which perform the tweens in different ways with the input lists. The second difference is that Pufferfish uses interpolation types which match nurbs interpolation for simple data types. Those types are Linear, Chord, Square Root, and Uniform. Grasshopper's "Interpolate Data" component uses  Block, Linear, Cubic, and Catmull. Pufferfish also adds the ability to tween Planes, Surfaces, Meshes, and Twisted Boxes as well as average them.
  2. Grasshopper already has a native "Tween Curve" component however, it gets odd results sometimes, specifically when tweening polylines. Pufferfish corrects this with automatic internal polyline and curve compatibilization so that the results are similar to Rhino's tweens. Pufferfish tween curve components also have different interpolation types as well as optional refit and sample point methods.
  3. Meshes must have the same topology to tween. Unlike surfaces, meshes which come from two different sources with different topologies are almost always impossible to rebuild (automatically) to have the same topology and point order for a meaningful looking tween. Please do not ask for this feature unless you can provide some information / documentation about how to do so. As recommended by Autodesk Maya for blending meshes "A common blend shape technique is to create duplicates of a base, deform the duplicates, then use them as targets. For example, you might make several copies of a face, and then alter the copies to create a smiling face, frowning face, a crying face, and so on."
  4. A few minor components may exist in some form elseware in other plugins (it's impossible to check them all). If they are in Pufferfish it is because I felt they are necessary to the workflow and I cannot ensure the user has other plugins installed. For example, Pufferfish has a type of "Rebuild Surface" which varies slightly from but exists also in Lunchbox and Peacock.

 

Pufferfish Changelog

Oct 10, 2018 - Pufferfish V2.2

  • Re-uploaded Pufferfish V2.2 to fix Offset Mesh component causing Rhino to crash when a null was input, re-uploaded Pufferfish V2.2 Examples as well.   

Sep 27, 2018 - Pufferfish V2.2

  • Re-uploaded Pufferfish V2.2 to update 5 components and add 1 more, re-uploaded Pufferfish V2.2 Examples as well.   

Sep 19, 2018 - Pufferfish V2.2

  • Update to add 10 new components for Numbers, Curves, and Surfaces. 40+ components updated, most Tween components rewritten for optimization, accuracy, and bug fixes. After installing the pufferfish2-2.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components. Make sure to first remove any other versions of Pufferfish you may have installed. Pufferfish V2.2 works with Rhino 5, Rhino 6, and Rhino Mac. Some components require at least Rhino 5 SR14. Some versions of Rhino 6 Grasshopper have a mesh display issue not related to Pufferfish, if you see a weird mesh, try Recomputing Grasshopper until it goes away.   

Aug 05, 2018 - Pufferfish V2.1

  • Update to add 13 new components. Mostly utility and helper components. Additional inputs/outputs added to some components. General optimizations and fixes all around.Some components require at least Rhino 5 SR14. After installing the pufferfish2-1.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components. Make sure to first remove any other versions of Pufferfish you may have installed.

May 16, 2018 - Pufferfish V2.0

  • Update to add 16 new components. Most notably components for Tweening Curves Along Curves, A custom Curve Graph Mapper which accepts any and multiple curves as inputs to graph with, Unsplit Surface components for making polysurface like surfaces which read as one untrimmed surface, Twisted Box components like Sweep, Deform, Thicken, and Subdivide. Additional features and options added to previous components. General optimizations and fixes all around. Some component rearrangements in the tabs. Some components require at least Rhino 5 SR14. After installing the pufferfish2-0.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components.

Apr 27, 2018 - Pufferfish V1.9

  • Re-uploaded Pufferfish V1.9 examples to add new examples.

Apr 15, 2018 - Pufferfish V1.9

  • Re-uploaded Pufferfish V1.9 to add a K (Keep) input on the Mirror Cut components dealing with geometry which gives the option of keeping the input geometry and mirroring them regularly if it is mirror cut into non-existence, or to output them as null/empty in that case. Re-uploaded the V1.9 example files as well. 

Apr 13, 2018 - Pufferfish V1.9

  • Update to add 26 new components. Most notably Mirror Cut components for all geometry types, Scale To Length, Twisted Box Curve Variable, and Twisted Box Pipe Variable, Parameter Mesh Surface, Trim components and others. Additional features, options, and outputs added to previous components. General optimizations and fixes all around. Some component rearrangements in the tabs and renamed. Some components require at least Rhino 5 SR14. After installing the pufferfish1-9.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components.

Mar 02, 2018 - Pufferfish V1.8

  • Re-uploaded Pufferfish V1.8 to add edges and faces outputs to the Deconstruct Twisted Box. Also added an Evaluate Twisted Box component and a Twisted Box Centers component. Re-uploaded the V1.8 example files as well. 

Feb 16, 2018 - Pufferfish V1.8

  • Update to add 13 new components. All Tween Curve and Tween Curve on Surface components have been completely re-written and include interpolation options. New components added, most notably Scale to Area and Scale to Volume components. Many other additions, options, and outputs added to previous components. General optimizations and fixes all around. Some component rearrangements in the tabs. Some components require at least Rhino 5 SR12. After installing the pufferfish1-8.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components.

Jan 03, 2018 - Pufferfish V1.7

  • Update to add 7 new components. Components from the Discrete Vectors plug-in (http://www.food4rhino.com/app/discrete-vectors) have been updated and are now a part of Pufferfish. Other minor updates and fixes. Some components require at least Rhino 5 SR12. After installing the pufferfish1-7.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components.

Dec 29, 2017 - Pufferfish V1.6

  • Re-uploaded Pufferfish V1.6 to fix a bug in the corner orders of Twisted Box components that use surfaces.

Dec 22, 2017 - Pufferfish V1.6

  • Re-uploaded Pufferfish V1.6 to fix a bug with the Point Divide Curve Target component.

Dec 20, 2017 - Pufferfish V1.6

  • Update to add 6 new components like Twisted Box Through Surfaces and Twisted Box Through Meshes with interpolation options. Tween Mesh and Tween Surface components now have interpolation options. Some component name changes, icon changes, updates. Some components require at least Rhino 5 SR12. After installing the pufferfish1-6 gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components.

Dec 04, 2017 - Pufferfish V1.5

  • Re-uploaded Pufferfish V1.5 to fix a bug with the Move2Pt component not moving certain geometry types.

Nov 29, 2017 - Pufferfish V1.5

  • Re-uploaded Pufferfish V1.5 and its examples to include 3 forgotten Twisted Box components. Twisted Box Array, Construct Twisted Box, and Deconstruct Twisted Box.

Nov 28, 2017 - Pufferfish V1.5

  • Update to add 41 new components. The new components are primarily focused on a new tab for "Twisted Box" components. Additional various components added to the other tabs. Some updates to existing components. Some new components require at least Rhino 5 SR12. After installing the pufferfish1-5.gha, please close Rhino completely one time to avoid potential assembly reference errors with the new "Twisted Box" components.

Nov 08, 2017 - Pufferfish V1.4

  • Update to improve algorithm for all "On Curve" components and all components with an "Interpolation Type" input.

Nov 01, 2017 - Pufferfish V1.3

  • Update to fix a minor bug in all tween plane components with Quaternion rotation that would result in null planes when input planes X axis's aligned. Added many new examples.

Oct 28, 2017 - Pufferfish V1.2

  • Update to add 9 new components. 3 for tweening planes on curves with Quaternion rotation, 3 for tweening planes on surfaces with Quaternion rotation, 3 for tweening points on curves (like Grasshopper's evaluate curve component except you can interpolate between user defined points on the curve rather than interpolating the entire curve) . Added tolerance input to "Is Arc/Circle/Ellipse" component.

Oct 22, 2017 - Pufferfish V1.1

  • Minor update to add Quaternion rotation option to the Tween Planes components for smoother tween rotations and prevention of Gimbal lock. Suggested by Andrew Heumann, based on a grasshopper definition by Daniel Piker. 

Oct 17, 2017 - Pufferfish V1.0

  • First release

Pufferfish Component List - 212 components 

01_Number

  • Tween Consecutive Numbers
  • Tween Through Numbers
  • Tween Two Numbers
  • Curve Graph Mapper
  • Last Index Range
  • List Length Range
  • Reparameterized Range
  • Scale To Area
  • Scale To Length
  • Scale To Volume
  • Deconstruct Number
  • Equality Within Tolerance
  • Highest & Lowest Numbers
  • Item Index List
  • Last Index
  • Mass Division
  • Mass Subtraction
  • Mirror Combine Numbers
  • Mirror Cut Numbers
  • Reparameterize Numbers
  • Partition Number
  • Round To Decimal Place
  • Round To Factor
  • Round To Nearest
  • Two Way Domain
  • X Minus One
  • X Plus One
  • Default Angle Tolerance
  • Document Angle Tolerance
  • Document Distance Tolerance
  • Zero Distance Tolerance

02_Color

  • Tween Consecutive Colors
  • Tween Through Colors
  • Tween Two Colors
  • Invert Color
  • Mirror Combine Colors
  • Mirror Cut Colors

03_Vector

  • Tween Consecutive Vectors
  • Tween Through Vectors
  • Tween Two Vectors
  • Closest Vector
  • Mirror Combine Vectors
  • Mirror Cut Vectors
  • Vector Star
  • Vector World

04_Point

  • Tween Consecutive Points
  • Tween Through Points
  • Tween Two Points
  • Curve Edit Points
  • Point Divide Curve Segments
  • Point Divide Curve Target
  • Tween Consecutive Points On Curve
  • Tween Through Points On Curve
  • Tween Two Points On Curve
  • Map Point To Surface
  • Parameter Point Divide Surface
  • Tween Consecutive Points On Surface
  • Tween Through Points On Surface
  • Tween Two Points On Surface
  • Mirror Cut Points
  • Move 2Pt
  • Pinch'n'Spread
  • Reparameterize Points
  • Trim Points With Plane
  • Are Points Collinear
  • Are Points Coplanar
  • Point Plane Side
  • Point Surface Side

05_Plane

  • Average Plane
  • Weighted Average Plane
  • Tween Consecutive Planes
  • Tween Through Planes
  • Tween Two Planes
  • Tween Consecutive Planes On Curve
  • Tween Through Planes On Curve
  • Tween Two Planes On Curve
  • Parameter Plane Divide Surface
  • Tween Consecutive Planes On Surface
  • Tween Through Planes On Surface
  • Tween Two Planes On Surface
  • Closest Plane Orientation
  • Flip Plane
  • Mirror Cut Planes
  • Offset Plane
  • Rotate Plane Euler
  • Rotate Plane XYZ
  • Trim Planes With Plane

06_Curve

  • Average Curve
  • Weighted Average Curve
  • Tween Consecutive Curves
  • Tween Through Curves
  • Tween Two Curves
  • Slide Curve Along Curve
  • Tween Consecutive Curves Along Curve
  • Tween Through Curves Along Curve
  • Tween Two Curves Along Curve
  • Net On Surface
  • Parameter Curve Divide Surface
  • Parameter Grid On Surface
  • Tween Consecutive Curves On Surface
  • Tween Through Curves On Surface
  • Tween Two Curves On Surface
  • Arc/Circle/Ellipse
  • Bounding Rectangle
  • Constrained Area Rectangle
  • Discrete Polyline
  • Parameter Rectangular Grid
  • Rectangle Fit
  • Align Curve Seams
  • Close Curve
  • Compatibilize Polylines
  • Fit Curve Segments
  • Fit Curve Smooth
  • Mirror Cut Curves
  • Offset Curve
  • Open Curve
  • Prude Curve
  • Rebuild Curve
  • Rebuild Curve Segments
  • Reparameterize Curve
  • Seam To Curve Corner
  • Superimpose Curve
  • Trim Curve With Plane
  • Trim Curve With Points
  • Curve Degree
  • Curve Length At
  • Curve Length Between
  • Curve Spans
  • Is Arc/Circle/Ellipse
  • Is Curve Kinky
  • Is Curve Linear
  • Is Curve Segmented

07_Surface

  • Average Surface
  • Weighted Average Surface
  • Tween Consecutive Surfaces
  • Tween Through Surfaces
  • Tween Two Surfaces
  • Automatic Edge Surface
  • Automatic Network Surface
  • Edge Unsplit Surface
  • Extrude Unsplit Surface
  • Loft Unsplit Surface
  • Revolve Unsplit Surface
  • Split Kinky Surface
  • Sweep Unsplit Surface
  • Fit Surface
  • Mirror Cut Surface
  • Offset Surface
  • Parameter Subdivide Surface
  • Rebuild Surface
  • Reparameterize Surface
  • Shrink Trimmed Surface
  • Superimpose Surface
  • Swap Surface Directions
  • Trim Surface With Plane
  • Constrained Volume Box
  • Extrude Tapered Polysurface
  • Is Polysurface Closed
  • Mesh To Polysurface
  • Mirror Cut Polysurface
  • Shell Polysurface
  • Is Surface Closed
  • Is Surface Singular
  • Is Surface Trimmed
  • Surface Degree

08_Mesh

  • Average Mesh
  • Weighted Average Mesh
  • Tween Consecutive Meshes
  • Tween Through Meshes
  • Tween Two Meshes
  • Close Mesh
  • Mirror Cut Mesh
  • Offset Mesh
  • Parameter Surface Mesh
  • Polyline To Mesh
  • Rebuild Mesh
  • Reduce Mesh By Faces
  • Trim Mesh With Plane
  • Is Mesh Closed

09_Twisted Box

  • Average Twisted Box
  • Weighted Average Twisted Box
  • Tween Consecutive Twisted Boxes
  • Tween Through Twisted Boxes
  • Tween Two Twisted Boxes
  • Twisted Box Mesh
  • Twisted Box Surface
  • Twisted Box Two Meshes
  • Twisted Box Two Surfaces
  • Twisted Box Through Meshes
  • Twisted Box Through Surfaces
  • Twisted Box Array
  • Twisted Box Curve
  • Twisted Box Curve Variable
  • Twisted Box Extrude
  • Twisted Box Loft
  • Twisted Box Pipe
  • Twisted Box Pipe Variable
  • Twisted Box Sweep
  • 2Pt Twisted Box
  • Center Twisted Box
  • Domain Twisted Box
  • Reference Twisted Box
  • Construct Twisted Box
  • Deconstruct Twisted Box
  • Deform Twisted Box
  • Subdivide Twisted Box
  • Thicken Twisted Box
  • Transform Twisted Box
  • Evaluate Twisted Box
  • Twisted Box Centers
  • Twisted Box Corners
  • Twisted Box Volume

Discussion Forum

not able to get the pufferfish components in grasshopper 2 Replies

Hello, I 've just started learning rhino and grasshopper its pretty silly to ask but i'm having problem installing plugins to grasshopper. I moved the files to the library and restarted my rhino and…Continue

Started by Vaibhav Tomar. Last reply by Vaibhav Tomar Sep 27.

How can i morph a collection of curves (as 1 object/module/Unit) using Pufferfish ? 1 Reply

Hi Michael,I am running into a problem when i try to morph a collection of curves after dividing 2 surfaces using pufferfish component ''TwistedBox2Srf''.Here is the shape : (See image 1)…Continue

Tags: pufferfish

Started by Garikundesu. Last reply by Michael Pryor Jul 16.

Twisted Box Array 10 Replies

Hey there,I'm curious if there is a way to create a twisted box array inside of a defined design space,(Inside a brep or something)I tired using the curves of my design space to pinch an array to fit…Continue

Started by Cody Thurston. Last reply by Cody Thurston Jun 1.

How to use the PUFFERFISH (by ekimroyrp) tool 1 Reply

Continue

Tags: ekimroyrp), (by, PUFFERFISH, grasshopper

Started by ZENGFQ. Last reply by Michael Pryor Apr 28.

Comment Wall

Comment

You need to be a member of Pufferfish to add comments!

Comment by Michael Pryor on October 9, 2018 at 5:00pm

Pufferfish V2.2: Update - Re-uploaded Pufferfish V2.2 to fix Offset Mesh component causing Rhino to crash when a null was input, re-uploaded Pufferfish V2.2 Examples as well.   

Comment by Michael Pryor on September 26, 2018 at 9:54pm

Pufferfish V2.2: Update - Re-uploaded Pufferfish V2.2 to update 5 components and add 1 more, re-uploaded Pufferfish V2.2 Examples as well.  

Comment by Michael Pryor on September 18, 2018 at 9:16pm

Pufferfish V2.2: Update - adds 10 new components for Numbers, Curves, and Surfaces. 40+ components updated, most Tween components rewritten for optimization, accuracy, and bug fixes. After installing the pufferfish2-2.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components. Make sure to first remove any other versions of Pufferfish you may have installed. Pufferfish V2.2 works with Rhino 5, Rhino 6, and Rhino Mac. Some components require at least Rhino 5 SR14. Some versions of Rhino 6 Grasshopper have a mesh display issue not related to Pufferfish, if you see a weird mesh, try Recomputing Grasshopper until it goes away.

Comment by Michael Pryor on August 5, 2018 at 2:59pm

Pufferfish V2.1: Update - adds 13 new components. Mostly utility and helper components. Additional inputs/outputs added to some components. General optimizations and fixes all around. Some components require at least Rhino 5 SR14. After installing the pufferfish2-1.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components. Make sure to first remove any other versions of Pufferfish you may have installed.

Comment by Michael Pryor on July 3, 2018 at 3:58pm
Comment by Fatima on June 4, 2018 at 1:29pm
Comment by Michael Pryor on June 4, 2018 at 12:07pm

@Fatima not really possible to tell where you are going wrong without the file and geometry.

Comment by Fatima on June 4, 2018 at 10:46am

Hi!

First I want to thank you for such a great plug in, it is great and very fun to explore.

Im an architecture student, currently doing my graduation project (Vertical City), and I have been exploring closest vector guide curves to create a skin for my building.
Im so new to grasshopper, so I just have couple questions if you have the time:)!
(Im using your example files btw) with Rhino 6 + Puffer fish 2.0
-
This is rough sketchs of what I want it to look like.

​-
here Im trying to get the vectors to start from around the building by using populate geometry instead of plane but it still starts from underneath the building instead of around it. How may I fix this ?

​-
As for here, I have changed the resolution of vector star and it still looks rough and has unorganized lines around, can this be fixed ?

​-

Thank you :)

Comment by Michael Pryor on May 15, 2018 at 11:50pm

Pufferfish V2.0: Update - adds 16 new components. Most notably components for Tweening Curves Along Curves, A custom Curve Graph Mapper which accepts any and multiple curves as inputs to graph with, Unsplit Surface components for making polysurface like surfaces which read as one untrimmed surface, Twisted Box components like Sweep, Deform, Thicken, and Subdivide. Additional features and options added to previous components. General optimizations and fixes all around. Some component rearrangements in the tabs. Some components require at least Rhino 5 SR14. After installing the pufferfish2-0.gha, please close Rhino completely one time to avoid potential assembly reference errors with the "Twisted Box" components.

Comment by Michael Pryor on April 15, 2018 at 8:45pm

Pufferfish V1.9: Update - Re-uploaded Pufferfish V1.9 to add a K (Keep) input on the Mirror Cut components dealing with geometry which gives the option of keeping the input geometry and mirroring them regularly if it is mirror cut into non-existence, or to output them as null/empty in that case. Re-uploaded the V1.9 example files as well. 

 

Members (258)

 
 
 

About

Translate

Search

© 2018   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service