Metaball(t) custom

In this video tutorial, I will explain how you can produce a metaball by a set of point and charges.

First of all, you can search for the tool by double-clicking on the canvas and searching “meta”. There will be three metaball tools and the easiest way to produce a metaball is “Metaball(t) custom”.

The metaball tool needs a set of points to start. You can use the “point” tool (params>point) and right click on it and choose multiple points or define the points in rhino and import them into Grasshopper 3d.


The Charge of the metaball should have the same number as the points. Remember that the value should be positive. (In the future I will start a video tutorial on great plugin in Grasshopper, which you can use negative charges also)

You can also use the Gene Pool tool (Params>Util) to easily produce several values for the Charge input. Just double-click it and adjust the settings.


If you change the point’s location you will notice that the metaball will change.

By default, metaball will slice the volume with an XY-plane. To see the rest of the form you can take an XY-plane (Vector>plane) and then linear array it in the Z direction.

By changing the “Factor” input of the Z vector you can define the height of the curves.

If you right-click on the XY-plane Origin and extract it you can also change the beginning elevation of the contour.


The Threshold input is a value between 0 and 1. If you increase the value, the metaballs will isolate and if you decrease it the spheres or the balls will fuse quicker.


If you give a number to the “Accuracy” input, the metaballs will be shown by an approximate polyline.


If you connect a surface (Params>geometry) to the output of the “metaball” tool you will notice that it will take time to show the surfaces. That is because the curves are polyline (to see the red panel underneath the tools go to the Display>Canvas widgets>Profiler)


To increase the metaball formation you can use 2 tools. First, you can smooth the polylines by the “smooth polyline” tool (Curve>util). Next, you need a “rebuild curve” to convert the polylines to NURBS curve.


If you connect the surface to the rebuild curve output you will see that the surface will actually be shown 200 times faster!!


You can extrude the surfaces with the same hight as the linear array’s distance. The resulting form has shown below.

PH Newsletter

Free Weekly Scripts

Join our exclusive email newsletter and be the first to receive our free, useful Grasshopper scripts every week!