@hyunseoki, what run time were you getting using Blender?
For me the boolean operation was taking upto 8s for my specific meshes.
I also have a time critical task at hand and need a low run time.
objMapper = vtkmodules.vtkRenderingCore.vtkPolyDataMapper()
objMapper.SetInputData(mesh1)
objMapper.Update()
converter = PolyDataMapperToBlender(objMapper)
firstBpy = converter.convert_data()
objMapper = vtkmodules.vtkRenderingCore.vtkPolyDataMapper()
objMapper.SetInputData(mesh2)
objMapper.Update()
converter = PolyDataMapperToBlender(objMapper)
secondBpy = converter.convert_data()
me1 = bpy.data.meshes.new("test1")
me1 = firstBpy.copy()
ob1 = bpy.data.objects.new("object1", me1)
bpy.context.collection.objects.link(ob1)
me2 = bpy.data.meshes.new("test2")
me2 = secondBpy.copy()
ob2 = bpy.data.objects.new("object2", me2)
bpy.context.collection.objects.link(ob2)
bool_one = ob2.modifiers.new(type="BOOLEAN", name="bool1")
bool_one.object = ob1
bool_one.operation = 'INTERSECT'
bpy.context.view_layer.objects.active = ob2
bpy.ops.object.modifier_apply(modifier='bool1')
intersection = ob2.data
convertedBack = pv.wrap(BlenderToPolyData.convert(intersection))
Here I am using 2 pyVista meshes - mesh1 and mesh2(Same as a vtk PolyData mesh), importing them into Blender for the boolean operation. Once it’s done I convert it back to pyVista for further use.
I use the Blender python package bpy though.
bpy - Blender python API
In between I use PolyDataMapperToBlender() which is part of an external package, that helps in converting VTK meshes into Blender meshes. The package increase the number of cells in the mesh by 2.5 times always(not sure why).
VTKtoBlender