Bending Constraint

This example demonstrates how to use COMPAS ShapeOp to apply bending constraints to meshes.

../_images/bending_constraint.png
from compas.datastructures import Mesh
from compas_viewer import Viewer

from compas_shapeop.meshsolver import MeshSolver

mesh = Mesh.from_meshgrid(10, 8, 10, 8)
mesh.translate([-5, -5, 0])
mesh.quads_to_triangles()

s = MeshSolver(mesh)
s.fix_vertices(vertices=mesh.vertices_where({"vertex_degree": 3}))
s.constrain_edge_lengths()
s.constrain_triface_bending(weight=0.5)
s.add_gravity(0.1)

viewer = Viewer()
mesh_obj = viewer.scene.add(s.mesh)


@viewer.on(interval=1)
def update(frame):
    s.solve(1)
    mesh_obj.update(update_data=True)


viewer.show()