algorithmic modeling for Rhino



Plankton is a free and open library implementing the half-edge data structure for polygon meshes.

This way of storing the mesh connectivity information allows easier adjacency queries and supports mesh faces with any number of sides (Ngons), not just quads and triangles.

The plankton library is intended primarily to be referenced and used from scripts, but  basic GH components for conversion and topology extraction are provided, and more may be added at a future date.

Plankton is still very much a work in progress. This is a first release, and methods/features will change in future versions.

Currently most of the methods relate to extracting topology information from existing meshes, and converting between Rhino meshes and Plankton meshes, but the intent is to over time add more ways of actually modifying and building meshes.

Please share your thoughts and ideas in the forum...

download the latest release here:

This library is distributed under the terms of the GNU Lesser General Public License (LGPL).

(The source is available on GitHub here)

Copyright 2013 Daniel Piker and Will Pearson

For more on half-edges, see:

Thanks to the people I have had many conversations about meshes with over the last few years that have really helped inspire and inform this work: including: Daniel Hambleton, John Harding, Kristoffer Josefsson, Harri Lewis, Giulio Piacentino, and especially Dave Stasiuk, who also shared code that helped get this working.

Members: 374
Latest Activity: Jan 6

Discussion Forum

Cytoskeleton 27 Replies

Following on from the images I posted recently (here),I am now making available the source script for Cytoskeleton.First,…Continue

Tags: mesh, Plankton, Weaverbird

Started by Daniel Piker. Last reply by Serge Jul 31, 2020.

Target valency remeshing

Hi,I’m using mesh machine to have a good triangulation of my mesh but I was wondering if I can set target valency for my edges in order to control triangulation. I want to have a triangulation where…Continue

Started by Contestables Jan 21, 2020.

Dynamic remeshing script with Plankton and Kangaroo 90 Replies

Here are some demo's of remeshing with Plankton combined with some relaxation functions from Kangaroo.(Similar to what I described here: …Continue

Tags: remeshing, mesh, Kangaroo, Plankton

Started by Daniel Piker. Last reply by Contestables Jan 20, 2020.

Internal data structure 5 Replies

Plankton 0.4.2. If I take any simple mesh object generated in grasshopper and convert it with the PMesh module, then try running the following python code, I get:for v in…Continue

Started by Cory. Last reply by Will Pearson Nov 27, 2018.

Comment Wall


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

Comment by Dekani Fisher on September 7, 2015 at 10:47am

The latest version from the link below is downloading the 0.3.0 instead...? i can't get the 0.3.4 version...


Comment by Brendan on May 5, 2015 at 10:58am

Thanks, I found the components.  What I'm trying to do is remesh the attached surface or other surfaces like it (it's a mesh) in hopes of flattening it using Rhino's Squish command.  If there are any other, better methods using other Grasshopper components or Rhino tools or (free) plugins, I'm open to that as well.


Comment by Will Pearson on May 4, 2015 at 10:03pm
Hi Brendan, Plankton comes with very few components and parameters so, rather than clutter up the UI with an extra tab, we put them under the Mesh tab. Primarily we use Plankton inside script components. What are you hoping to use Plankton for?
Comment by Brendan on May 4, 2015 at 2:07pm


I cannot get plankton installed. I downloaded the shown files and placed them in my AppData>Roaming>Grasshopper>Libraries folder.  I then restarted Rhino and opened Grasshopper and there is no Plankton tab.

Comment by Daniel Piker on April 7, 2015 at 12:50pm

Hi Spiral, could you post this as a question on the Kangaroo group? It's easier than having a conversation in these comments.

Comment by spiral on April 7, 2015 at 12:34pm

Thanks Daniel, it is possible to make the edges of equal length? changing only the angle between them.

Comment by Daniel Piker on April 7, 2015 at 12:22pm

Hi Spiral - generating Chebyshev nets can be done in Kangaroo by fixing or equalizing the edge lengths, and draping over or pulling to some target surface.

Comment by spiral on April 7, 2015 at 11:52am

how to use the Plankton in order to build net (mesh) Chebyshev on the surface?

Comment by Lionel on November 14, 2014 at 9:42am

Ok, I finally manage to make it work. Some thing was wrong with my python Install. Now it's working for both 2.7 and 3.4.


Comment by Will Pearson on November 7, 2014 at 6:12am

Try Python 2.7. If you have any more questions can we discuss them elsewhere? Perhaps would be appropriate, or open a github issue :)


Members (374)






  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service