algorithmic modeling for Rhino



Leopard is an open source mesh processing solution for grasshopper that allows users to interact with rhino geometry and create customised mesh shapes. By selecting Mesh vertices, edges and faces, users have more freedom to edit meshes intuitively and use different subdivision schemes to selectively choose multiple areas to fix.

Mesh data using Plankton for internal processing.

Leopard is still in the very early development stage, so please use it for your own risk and we welcome any feedback, discussion or insight you may provide.


First tutorial:

Leopard © 2016 Gene Ting-Chun Kao and Alan Song-Ching Tai

Members: 58
Latest Activity: Sep 20, 2023

Discussion Forum

Leopard Workshop in Tamkang University 2 Replies

Thank Gene Kao hold a wonderful workshop taught some nice examples for our school.Introducing Leopard…Continue

Started by You-Wen Ji. Last reply by Kenneth Navarrete Nov 20, 2022.

Comment Wall

Add a Comment

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

Comment by Mehrad Mahnia on December 3, 2018 at 7:51

Hi Gene;

I'm trying to use Leopard in ghpython. I've imported the leopard.gha library into the script but the problem is I can't manage how to set inputs for the Leopard library methods such as GHC_Edges(). Can you help me on how the Mesh, index etc could be set as inputs for your library? 

Comment by Gene Kao on April 20, 2017 at 15:53

Hi Christian, thanks for the suggestion. I think it is a good idea for all (Faces, Vertices, Edges)Neighbours components to have indices outputs as well. I can add this output to components in the next version. :) 

Comment by Christian Schmidts on April 19, 2017 at 8:14

Hi Gene, a small suggestion it would be nice if the FaceNeigbours component would also output indices of the neighboring faces not only polylines. Thanks!

Comment by Gene Kao on January 30, 2017 at 7:32

Yeah, I think GitHub or Plankton forum is a right place to discuss this topic. :) 

Comment by John on January 30, 2017 at 7:18

Yes but if I want to input polylines.

Then I cull them. Probably faces indices also are not working as they are indexed by vertices. I ll try to ask on github if there is an option to weld plankton mesh.

Comment by Gene Kao on January 30, 2017 at 7:02

Hi Tom, 

Instead of using polylines, Plankton mesh can be directly created from mesh. In C#, Plankton library has PlanktonMesh.ToRhinoMesh() method that you can use. 

About how to identify duplicated edges and vertices, you can refer to this discussion:Duplicate Point Identification

While using Leopard, you don't have to worry about if the input is Plankton mesh or not. All the input can be a single mesh, a list of mesh or DataTree mesh. 



Comment by John on January 30, 2017 at 5:14

I have general question about plankton.

If you create plankton from discrete polylines.

Is it possible to weld it? So that all coincident vertices and edges would be removed.

Comment by Gene Kao on January 9, 2017 at 17:09

Comment by Gene Kao on January 7, 2017 at 9:56

Daniel, thank you for your valuable advice. Regarding gha question, we are still waiting for food4Rhino's approval, so people will be able to download gha and example files soon.

About compiling path, I thought it wouldn't be a problem for developers to change their own path in compile events, but if people prefer me to delete it, I can also do it later. 

This is in the very early development stage, but our plugin already has some functionalities to subdivide but fix some vertices, edges or faces. We will definitely add more advanced features in the future version. (something like t-spline functions is one of our plans too.)

Comment by Daniel González Abalde on January 7, 2017 at 9:24

Thanks for the plugin :)
Your vs project has configured post-compilation events, which stores the .gha in a unique path of your computer. Then, for others, to compile the project, Project> Properties> Compile Events, and adjust the path by changing the username. Or removing the lines, I suppose. But for the general public, you should share the gha directly.

It would be nice to have tools like tsplines, for example, from a edge index and a normalized value, subdivide only that edge (and faces around). Or for the case of quadrangular meshes, an option to subdivide the entire row or column of the selected edge.


Members (58)






  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service