def reflectional_asymmetry_score(
    scene, a: Union[str, list[str]], b: str, use_long_plane=True
):
    """
    Computes the reflectional asymmetry score between a and b
    """
    if isinstance(a, str):
        a = [a]
    if b is None or len(b) == 0:
        return 0

    iu.meshes_from_names(scene, a)
    b_trimesh = iu.meshes_from_names(scene, b)[0]

    a_objs = iu.blender_objs_from_names(a)
    iu.blender_objs_from_names(b)[0]

    bbox = b_trimesh.bounding_box_oriented
    vertices = bbox.vertices

    mid_planes = get_cardinal_planes_bbox(vertices)
    if use_long_plane:
        plane_pt, plane_normal = mid_planes[0]
    else:
        plane_pt, plane_normal = mid_planes[1]

    return symmetry.calculate_reflectional_asymmetry(a_objs, plane_pt, plane_normal)

    Computes the reflectional asymmetry score between a and b
    
infinigen/core/constraints/evaluator/node_impl/trimesh_geometry.py