Grasshopper Pufferfish
This plugin is a set of 330 components which focuses on Tweens, Blends, Morphs, Averages, Transformations, & Interpolations – essentially Shape Changing.
Related Lessons & Examples
2D Pixelator
3d Pattern Facade
3D Printing Connection
3d Wave Pattern
3D Weave Pattern
Al Janoub Stadium
Anemone Loop Form
Anemone Scissor Structure
Anemone Smooth Branching
Antalya Observation Tower
Aquatic Tower
Attractor Ribs
Attractor Wall
Bamboo Parametric Pavilion
Beijing Tower
Bench Concept
Bookworm Pavilion
Box Morph Pattern
Box Morphing pattern
Box Pavilion
Brep Explosion
Brick Facade
Brick Wall Window
Bridge Facade
Bunjil Place
Calatrava Peace Bridge
Capita Spring Tower
Cathedral of Brasilia
Circle in Curves
Circle Packing Attractor
Circle Packing Dome
Circle Packing Dome
Circle Packing Pavilion
Circuit Board Pattern
Closest Vector loops
Cloth Simulation
Coil Along Curve
Coiled Curves
Colorful Ziggurat
Concrete Planter
Concrete Planter
Continuous Staircase
Contorted Necklace
Contour Chair
Contour Facade
Contour Roof
Cross Section Ribs
Crystallon Mesh
Culebra Particle Structure
Culebra+Dendro Lamp
Curly Spiral
Customizable Face Mask
Data visualization
Deform Mesh
Deforming Parametric Tower
Dendro Facade
Denver Union Station
Deployable Membrane Structure
Diamond Facade
Diamond Paneling Pattern
Diamond Ring
Differential Growth Mug
Discrete Lines
Dispatch & Patch
Elastic Curves
Enneper Morph
Fast Visualization
Ferrum 1 Office Building
Fibonacci Division
Fibonacci Stairs
Field Dome
Fillet Panels
Finger Joint Box
Foldable Skyscraper
Folding roof structure
Force Field Lines
Fractal Circles
Game of life tower
Gear Simulation 03
Genome Facade
Genotype Pattern
Glazed Spaceframe
Grab Surface
GridShell Pavilion
Growing Particles
Growing Ring
Gyroid From Surface
Gyroid Pattern
Hearst Tower
Hexa Tower
Hexagonal Attractor
Hexagonal Staircase
Hexagonal Tower
Intertwined Stairs
Isotrim Sphere
Kangaroo Elastic Tower
Kangaroo Mechanism
Kangaroo Mesh Structure
Kangaroo Polygonal Pavilion
Kangaroo Radial Tensile
Kangaroo Roof Structure
Kangaroo Shell Structure
Kangaroo Tensile Installation
Kangaroo Waffle Table
Kinetic Facade
Kinetic Sleeve
Knot Building
Kolon One & Only Tower
Leg Mechanism
Lines to 3D Truss
Linkage Mechanism
Loft Chair
Loft Point Attractor
London Shooting Venue
Loop Frames
Louis Vuitton Store
Lunchbox Diamonds
Lunchbox Hexagonal Wall
Lunchbox Joint
Lunchbox Parakeet Facade
LunchBox Parametric Facade
Lunchbox Parametric Roof
Lunchbox Wall Shelf
Lunchbox Weave Pavilion
Map on Surface
Mesh Connection
Mesh Filling Pattern
Mesh Fusion
Mesh groove
Meta Ball Pavilion
Minimal Surface Alternatives
Mirror Cut Curve
Mirror Cut Mesh
Mirror Mesh
Modular Waffle
Morph to Twisted Box
Mountain Mesh
Net On Surface
Net On Surface
Net on Surface
Noise on Tween Meshes
Nove Divadlo Theatre
Nuclei Particles
Nurbs Strips
Nursery Polar Fields
Optimized Suspension Bridge
Organic Mesh Pavilion
Origami Building
Pachyderm Simulation
Parakeet Maze
Parakeet Parametric Facade
Parametric Arcs
Parametric Bench
Parametric Brick Wall
Parametric Building
Parametric Building
Parametric Cantilever
Parametric Ceiling Design
Parametric Chair
Parametric Chair
Parametric Cup
Parametric curved facade
Parametric Displacement
Parametric Dovetail Joint
Parametric Element
Parametric Facade
Parametric Facade
Parametric Facade Pattern
Parametric Flower Box
Parametric Folding Facade
Parametric Jewelry
Parametric Lamp
Parametric Lamp Shade
Parametric Lamp Shade
Parametric Louver
Parametric Maze
Parametric Pavilion
Parametric Plan
Parametric Plate Connection
Parametric Ramp Railing
Parametric Rebar
Parametric Roof Panels
Parametric Shade Facade
Parametric Stair
Parametric Stool
Parametric Structure
Parametric Surface Pipes
Parametric Table
Parametric Tower
Parametric Tween Wall
Parametric Vase Pattern
Parametric Vault
Parametric wall
Particle Pavilion
Particle Swarm
Particles Facade
Particles on Surface
Patametric Tower(Greenland)
Pavilion NR.40
Penda’s Residential Tower
Pinch & Spread Box
Pinch & Spread Torus
Pinch ‘n’ Spread
pinch and spread panel
Pixelate Pattern
Pixelate Towers
Pixelized Sphere
Plan Drafting
Planarize Ngons Edges
Planter Box
Planthopper Gears
Platonic 3D Nodes
Platonic Lamp Shade
Pneumatic Tyre
Point Attractor
Polar Arc Roof
Polar Shell
Polygon Stair
Polygon Star
Polygonal Ramp
Polyhedra Fabrication
Polyline Attractor
Polyline Structure
Polyline to Diagrid
Pufferfish Attractor
Pufferfish Displace Mesh
PufferFish Facade
Pufferfish Grasshopper Tutorial
Pufferfish Net On Surface
Pufferfish Surface Grid
Pufferfish Tween
PufferFish Tween Curves
Pufferfish twist
Pufferfish Twisted Box
Pufferfish Voxelized Catenary
Rabbit Fractal Shade
Rabbit L-System Columns
Radial Parametric Bench
Radial Pattern
Radial Waffle
Radial Waffle
Random Dendro Facade
Random Panel Pavilion
random shelf
Random Walker
Reciprocal Frame
Recursive Circular Transform
Recursive Morph
Revolving Building
Ribs facade
Rolling Bridge
Rotating Circular Panels
Rotating Louvers
Rotating Polygon Pattern
Rotating Spikes
Rotating Stair Slabs
Rotating Windows
Scattered Points Voxelization
Slime Tower
Sphere Collide
Spherical Helix
Spiral Ramp Pattern
Spiral Stair
Stripper Structure
Sunac Theater in Guangzhou
Surface Differential Growth
Tavaru Restaurant & Bar
Tensile Facade
Tensile pavilion
Thicken Floor
Timber Pavilion
Timber Plate Pavilion
tOpos Footbridge
tOpos Headphone Stand
tOpos Parametric Column
tOpos Table Stand
Tower By Sections
Triangular Facade
Triangular Panels Pavilion
Truss From Rectangle
Truss From Surface
Turning Torso
Tween Curve on Surface
Twisted Box Mesh Boolean
Twisted Curves Pavilion
Twisted Mesh
Twisted Surface Pattern
Twisted Torus
Twisting Bridge
Twisting Strip
Twisting Structure
Unroll Polysurface
Urbanx Tools
Voronoi Cells with noise
Voronoi Deformation
Voronoi Facade
Voronoi Facade
Voronoi Facade
Voronoi On Surface
Voronoi Relaxation
Voronoi Ring
Voronoi Shoe
Voronoi Surface
Voronoi Table
Voronoi Tower
Voronoi Tower
Voronoi3d Roof
Waffle Pavilion
Waffle Sphere
Waffle Table
Wall from Curves
Wave Facade
Wave on Vase
Wavy Facade
Weave Facade
Weaverbird Radial Shade
Window Frame
Xiangcheng Exhibition Hall
Download Pufferfish Plugin
Pufferfish Plugin
The Pufferfish is one of few animals which is capable of changing its shape.
This plugin is a set of 330 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 tween / blend / morph / lattice operations such as making curves compatible, a custom curve graph mapper, and a multi-threaded morph to twisted box. 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. Works with Grasshopper for Rhino 5, Rhino 6, Rhino 7, and Rhino Mac. Make sure to read the credits below. Instagram: @ekimroyrp & @designmorphine
Join the Pufferfish Grasshopper forum group here: www.grasshopper3d.com/group/pufferfish
Credits:
I would like to make a special thanks to David Stasiuk and Mateusz Zwierzycki for their continual support and input on the Pufferfish code and letting me constantly bother them. Check out their plugins: Conduit, Cocoon, Tree Sloth, Owl, Anemone, Starling, & Squid.
- David Rutten for aide in implementing his Twisted Box Library.
- Daniel Piker for his reference definition on Quaternion rotation.
- Daniel Abalde for his reference on optimized corner finding.
- Petras Vestartas for his reference on RTree mesh welding.
- Mahdiyar Esmailbeigi for his reference on mass transformations.
- Andrew Heumann for his reference definition on rectangles by area.
- Aldo Sollazzo for his reference definition on discrete variables.
I would also like to thank Pavlina Vardoulaki for introducing me to shape blending techniques in Autodesk Maya which inspired many of Pufferfish’s components.
-Michael Pryor
General notes
- 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.
- 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.
- 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.”
- Multi-Threaded components don’t always mean it is faster, multi-threading speed will depend directly on how many cores your computer has and how good those cores are.
- 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 or that I required them to have different options and I cannot ensure the user has other plugins installed. For example, Pufferfish has a type of “Rebuild Surface” which varies from but exists also in Lunchbox and Peacock.
Pufferfish Changelog
June 15, 2021 – Pufferfish V3.0
- Re-uploaded Pufferfish V3.0 and Pufferfish V3.0 example files to fix weighted option bug with Twisted Box Tube and Twisted Box Tube Variable components.
April 01, 2021 – Pufferfish V3.0
- Update to add 12 new components. Most notably Blend Two, Consecutive, and Through Meshes as well as Displace Mesh. Tween and Twisted Box components for Consecutive and Through have a new Loopback option for continuing from the end back to the start. Various other updates and optimizations. This will be the last release supporting Rhino 5 & 6.
June 05, 2020 – Pufferfish V2.9
- Re-uploaded Pufferfish V2.9 and Pufferfish V2.9 example files to fix occasional Invalid Mesh result from the Rebuild Mesh components welding in Rhino 6.
June 01, 2020 – Pufferfish V2.9
- Re-uploaded Pufferfish V2.9 and Pufferfish V2.9 example files to add new polyline conditions to Average Curve and Weighted Average Curve components.
May 10, 2020 – Pufferfish V2.9
- Update to add 13 new components. Most notably components for Averaging / Tweening Transforms. New Rhino 7 WIP Mirror Cut SubD component. New falloff options for Pinch’n’Spread. Average / Tween Mesh components can now use colored meshes. Various other updates.
January 16, 2020 – Pufferfish V2.8
- Update to add 24 new components. New Parameter Mesh Tools for extrusions, lofts, pipes, voxels, etc. with base methods provided by Mateusz Zwierzycki. New Twisted Box components for Curves. New Rhino 7 WIP SubD components for Averaging SubDs, Tweening SubDs, and creating Twisted Boxes from SubDs. Various other component additions, updates, bug fixes, and code optimizations. Please read the installation text file first that comes with this download before installing Pufferfish.
October 05, 2019 – Pufferfish V2.7
- Re-uploaded Pufferfish V2.7 and Pufferfish V2.7 example files to fix some inconsistancies in some twisted box components orientations and added new examples. Please read the installation text file first that comes with this download before installing Pufferfish.
September 27, 2019 – Pufferfish V2.7
- Update to add a Recursive Morph Mesh component and much improved a mesh welding algorithm which is used in components like Mirror Cut Mesh and Rebuild Mesh. Various other component updates, bug fixes, and code optimizations. Please read the installation text file first that comes with this download before installing Pufferfish.
July 27, 2019 – Pufferfish V2.6
- Update for Tween Through Curves, Tween Through Curves On Surface, Tween Through Curves Along Curve now have an Equalized option like the other tween and twisted box components to easily get uniform spacing. Various other component updates, bug fixes, and code optimizations. Please read the installation text file first that comes with this download before installing Pufferfish.
July 04, 2019 – Pufferfish V2.5
- Update to add 12 new components, such as Linearize Numbers to use sine graphs for tween factors to have wave like spacing, Tween Two Surfaces Along Curve, new Constrained Area / Volume components, and new Mirror / Combine components. Updates to the multi-threaded Mesh / Polysurface Boolean Twisted Boxes components to now be able to use multiple Meshes / Polysurfaces. Various other component updates, bug fixes, and code optimizations. Please read the installation text file first that comes with this download before installing Pufferfish.
May 17, 2019 – Pufferfish V2.4
- Re-uploaded Pufferfish V2.4 and Pufferfish V2.4 example files to fix the Multi-Threaded “Polysurface Boolean Twisted Boxes” component which was occasionally causing Rhino 5 to crash, inadvertently it is now faster as well.
May 14, 2019 – Pufferfish V2.4
- Update to add 55 new components. 3 new tabs (Transform, Domain, List). New options for Equalized, Weighted, and Degree on Tween and Twisted Box components. Multi-threaded Twisted Box components for morphing and geometry filling / subtracting. Some components renamed and organized in different tab locations. Many component updates, bug fixes, code optimizations, and option additions. Please read the installation text file first that comes with this download before installing Pufferfish.
Oct 24, 2018 – Pufferfish V2.3
- Update to add Normalized(N) input to the 17 Tween Through and Twisted Box Through components which enables the use of normalized factor values from 0 to 1. Also added a Flip Polysurface component. After installing the pufferfish2-3.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.3 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.
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
- 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 Tab List
- Color
- Curve
- Domain
- List
- Mesh
- Number
- Plane
- Point
- SubD
- Surface
- Transform
- Twisted Box
- Vector