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: 382
Latest Activity: Jan 30

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 Krisztina K.-Pednekar on January 30, 2024 at 7:11am

1. Solution exception:Could not load file or assembly 'Plankton, Version=, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

after installing plankton I get this message. What to do? Thanks 

Comment by David Bachman on May 2, 2021 at 10:50am

Perfect. Thank you!

Comment by David Stasiuk on April 30, 2021 at 6:54pm

First off, just confirm that you've added both Plankton.dll and PlanktonGh.dll in "Manage Assemblies", and then added using Plankton; using PlanktonGh; in the usings.

Then, if you want to input a PlanktonMesh, you have to cast it from the default object type. If your input is called pmesh, then it would be something like this: PlanktonMesh myPMesh = pmesh as PlanktonMesh.

Comment by David Bachman on April 29, 2021 at 3:48pm

First time trying to write a C# script using a plankton mesh. I've connected the output of a PMesh component to the input of a C# component, and named that input "pmesh". Inside the script I'd like to call a method such as:

int count=pmesh.Vertices.Count;

However, I get an error that `object` does not contain a definition for `Vertices`.

Any advice?



Comment by David Bachman on May 11, 2020 at 11:52pm

@Will Pearson

Thank you!!!

Comment by Will Pearson on May 11, 2020 at 11:03pm
The docs have moved to
Comment by David Bachman on May 9, 2020 at 3:12pm


There used to be a documentation page with a description of each half edge operator, in addition to the GitHub page. I believe the location was here:

I can get the info from the source files, but its not as easy.

Comment by Ortler Mark on May 9, 2020 at 11:45am


The source may help u...

Comment by David Bachman on May 9, 2020 at 10:12am

Can someone help me find the documentation for Plankton's Halfedge data structure? I seem to have lost the link to it, and Google isn't helping. 

Comment by thomas_do on May 23, 2018 at 10:22am

Meshmachine works for me now with Kangaroo0099 on a different PC where I do not need admin rights to install software. Looks like that was the problem.


Members (382)






  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service