What about using vtkRuledSurfaceFilter
, here is a possible recipe, where nr of points do not need match:
import numpy as np
from vtkplotter import *
cs = []
for i in range(-10,10):
r = 10/(i*i+10)
c = Circle(r=r).wireframe().rotateY(10).z(i/10)
cs.append(c)
rbs =[]
for i in range(len(cs)-1):
rb = Ribbon(cs[i], cs[i+1], res=(200,5))
rbs.append(rb)
mesh = merge(rbs)
show([cs, mesh], N=2, axes=1)