Skip to content

Metaballs

Metaball methods provide support for creating and rendering smooth organic shapes made from multiple interacting points.

A metaball system contains multiple metaballs that can be moved, colored, and simulated with optional physics.

Method
addMetaball(systemId : number, x : number, y : number, radius : number, strength : number) : number
clearMetaballs(systemId : number) : ()
createMetaballSystem(displayId : DisplayID) : number
getMetaballCount(systemId : number) : number
getMetaballInfo(systemId : number, ballId : number) : table
removeMetaballSystem(systemId : number) : ()
renderMetaballs(systemId : number, threshold : number, renderMode : number) : ()
setMetaballColor(systemId : number, ballId : number, r : number, g : number, b : number) : ()
setMetaballPhysics(systemId : number, enabled : boolean, gravity : number, drag : number) : ()
setMetaballVelocity(systemId : number, ballId : number, vx : number, vy : number) : ()
updateMetaballs(systemId : number, deltaTime : number) : ()

Creates a new metaball system attached to a display.

Returns: systemId : number

local systemId = gpu.createMetaballSystem(displayId)

Adds a metaball to an existing system.

Returns: ballId : number

local ballId = gpu.addMetaball(
systemId,
50,
50,
20,
1.0
)

Removes all metaballs from a system.

gpu.clearMetaballs(systemId)

Returns the number of metaballs currently in a system.

print(gpu.getMetaballCount(systemId))

Returns information about a specific metaball.

Requires: systemId : number, ballId : number

Returns: Metaball information table.

local info = gpu.getMetaballInfo(
systemId,
ballId
)
print(info)

Deletes an entire metaball system.

Use this when the system is no longer needed.

gpu.removeMetaballSystem(systemId)

Renders a metaball system.

threshold controls the surface cutoff value.

renderMode controls the rendering mode.

gpu.renderMetaballs(
systemId,
1.0,
0
)

Changes the color of a metaball.

gpu.setMetaballColor(
systemId,
ballId,
0,
255,
255
)

Enables or disables metaball physics.

Parameters:

  • enabled - whether physics simulation is active
  • gravity - gravity strength
  • drag - movement resistance
gpu.setMetaballPhysics(
systemId,
true,
0.1,
0.01
)

Sets the velocity of a metaball.

gpu.setMetaballVelocity(
systemId,
ballId,
2,
-1
)

Advances the metaball simulation.

Call this every frame when using physics.

gpu.updateMetaballs(
systemId,
0.05
)