Metaball SOP

From TouchDesigner 088 Wiki


The Metaball SOP creates metaballs and meta-superquadric surfaces. Metaballs can be thought of as spherical force fields whose surface is an implicit function defined at any point where the density of the force field equals a certain threshold. Because the density of the force field can be increased by the proximity of other metaball force fields, metaballs have the unique property that they change their shape to adapt and fuse with surrounding metaballs. This makes them very effective for modeling organic surfaces. For example, below we have a metaball. The surface of the metaball exists whenever the density of the metaball's field reaches a certain threshold:


When two or more metaball force fields are combined, as in the illustration below, the resulting density of the force fields is added, and the surface extends to include that area where the force fields intersect and create density values with a value of one. For more information on metaballs, see Metaballs.


PythonIcon.png metaballSOP_Class

Level of Detail for Metaball Display

You can change the level of detail of the metaball and NURBS display by adjusting the Level of Detail parameter in the Display Option Dialog > Viewport page > Level of Detail option. To open the Display Options Dialog, press "p" in a SOP viewport.

Better Metaball Shading Tip

Accurate metaball normals will be computed if the normal attribute exists when conversion to polygons is done. Thus, to get improved shading on polygonized metaballs, it's a good idea to add the normal attribute (i.e. use a Facet SOP) before converting the metaballs.


Radius /radx /rady /radz - Controls the radius of the metaball field.

Center /tx /ty /tz - Metaball center in X, Y and Z.

Weight /metaweight - Defines the weight of the Metaball iso-surface within metaball field. An increase in weight makes the density of the metaball greater, and thus the defined implicit surface of it and surrounding metaballs will be enlarged.

Kernel Function /kernal - There are four different metaball interpretations: Wyvill, Elendt, Blinn and Links. See the Geometry articles for illustrations of the differences between these.

XY / Z Exponent /expxy /expz - The XY Exponent determines inflation / contraction in the X and Y axes. The Z Exponent determines inflation / contraction in the Z axis.

What is an Exponent?

In the instance of metaballs, the exponent determines the inflation towards "squarishness" or contraction towards "starishness" as described below:

  • Value > 1 - Results in metaballs that appear more like a "star".
  • Value < 1 - Results in metaballs that appear more "squarish".
  • Value = 1 - Results in metaballs that appear spherical.

Uses / Works in Relation With

Modelling Organic Effects

This SOP is ideal for creating organic models, liquid effects and other metaball surfaces. If you wish to model directly with metaballs, you may want to enter the Model Editor and use the Metaball state there to create models.

Force Fields and Pruning Volumes

This SOP is also used to define a force field area for the Force SOP which is used in conjunction with the Particle SOP and Spring SOPs.

Also, as a MetaTest input for pruning L-systems. This is typically done by copying metaballs to every point of the deforming a polygonal/mesh input source with a Copy SOP. When doing this, it is a good idea to pass any deforming geometry through a Facet SOP and Consolidate Points to minimize the number of points you need to copy to. If converting from spline surfaces, you may want to refine your surfaces first to get a smooth distribution of metaballs.

Tip: If you are using metaballs to create a deforming attractor for the Particle SOP, you may want to use a Group SOP to define a bounding area, and copy the metaballs only to the points included in that group. This makes it much easier to control and animate the attractor area.

See Also