Programming 3D curves with discretely constrained cylindrical inflatables