user: Give a detailed overview of Operator Example: syntax, arguments, return values, common patterns.

assistant: ge.
        - **offset_type** (*enum in* *[**'OFFSET'**,* *'WIDTH'**,* *'DEPTH'**,* *'PERCENT'**,* *'ABSOLUTE'**]**,* *default 'OFFSET'*) – How to measure the offset.
        - **profile_type** (*enum in* *[**'SUPERELLIPSE'**,* *'CUSTOM'**]**,* *default 'SUPERELLIPSE'*) – The profile type to use for bevel.
        - **segments** (*int*) – Number of segments in bevel.
        - **profile** (*float*) – Profile shape, 0->1 (.5=>round).
        - **affect** (*enum in* *[**'VERTICES'**,* *'EDGES'**]**,* *default 'VERTICES'*) – Whether to bevel vertices or edges.
        - **clamp_overlap** (*bool*) – Do not allow beveled edges/vertices to overlap each other.
        - **material** (*int*) – Material for bevel faces, -1 means get from adjacent faces.
        - **loop_slide** (*bool*) – Prefer to slide along edges to having even widths.
        - **mark_seam** (*bool*) – Extend edge data to allow seams to run across bevels.
        - **mark_sharp** (*bool*) – Extend edge data to allow sharp edges to run across bevels.
        - **harden_normals** (*bool*) – Harden normals.
        - **face_strength_mode** (*enum in* *[**'NONE'**,* *'NEW'**,* *'AFFECTED'**,* *'ALL'**]**,* *default 'NONE'*) – Whether to set face strength, and which faces to set if so.
        - **miter_outer** (*enum in* *[**'SHARP'**,* *'PATCH'**,* *'ARC'**]**,* *default 'SHARP'*) – Outer miter kind.
        - **miter_inner** (*enum in* *[**'SHARP'**,* *'PATCH'**,* *'ARC'**]**,* *default 'SHARP'*) – Outer miter kind.
        - **spread** (*float*) – Amount to offset beveled edge.
        - **custom_profile** ([`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")) – CurveProfile, if None ignored
        - **vmesh_method** (*enum in* *[**'ADJ'**,* *'CUTOFF'**]**,* *default 'ADJ'*) – The method to use to create meshes at intersections.

    Returns:
    :   - `faces`:
          Output faces.

          **type** list of (`bmesh.types.BMFace`)
        - `edges`:
          Output edges.

          **type** list of (`bmesh.types.BMEdge`)
        - `verts`:
          Output verts.

          **type** list of (`bmesh.types.BMVert`)

    Return type:
    :   dict[str, Any]

bmesh.ops.beautify_fill(*bm*, *faces=[]*, *edges=[]*, *use_restrict_tag=False*, *method='AREA'*)
:   Beautify Fill.

    Rotate edges to create more evenly spaced triangles.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Edges that can be flipped.
        - **use_restrict_tag** (*bool*) – Restrict edge rotation to mixed tagged vertices.
        - **method** (*enum in* *[**'AREA'**,* *'ANGLE'**]**,* *default 'AREA'*) – Method to define what is beautiful.

    Returns:
    :   - `geom`:
          New flipped faces and edges.

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.triangle_fill(*bm*, *use_beauty=False*, *use_dissolve=False*, *edges=[]*, *normal=mathutils.Vector()*)
:   Triangle Fill.

    Fill edges with triangles

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **use_beauty** (*bool*) – Use best triangulation division.
        - **use_dissolve** (*bool*) – Dissolve resulting faces.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **normal** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") or any sequence of 3 floats) – Optionally pass the fill normal to use.

    Returns:
    :   - `geom`:
          New faces and edges.

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.solidify(*bm*, *geom=[]*, *thickness=0*)
:   Solidify.

    Turns a mesh into a shell with thickness

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **geom** (list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)) – Input geometry.
        - **thickness** (*float*) – Thickness.

    Returns:
    :   - `geom`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.inset_individual(*bm*, *faces=[]*, *thickness=0*, *depth=0*, *use_even_offset=False*, *use_interpolate=False*, *use_relative_offset=False*)
:   Face Inset (Individual).

    Insets individual faces.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **thickness** (*float*) – Thickness.
        - **depth** (*float*) – Depth.
        - **use_even_offset** (*bool*) – Scale the offset to give more even thickness.
        - **use_interpolate** (*bool*) – Blend face data across the inset.
        - **use_relative_offset** (*bool*) – Scale the offset by surrounding geometry.

    Returns:
    :   - `faces`:
          Output faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.inset_region(*bm*, *faces=[]*, *faces_exclude=[]*, *use_boundary=False*, *use_even_offset=False*, *use_interpolate=False*, *use_relative_offset=False*, *use_edge_rail=False*, *thickness=0*, *depth=0*, *use_outset=False*)
:   Face Inset (Regions).

    Inset or outset face regions.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **faces_exclude** (list of (`bmesh.types.BMFace`)) – Input faces to explicitly exclude from inset.
        - **use_boundary** (*bool*) – Inset face boundaries.
        - **use_even_offset** (*bool*) – Scale the offset to give more even thickness.
        - **use_interpolate** (*bool*) – Blend face data across the inset.
        - **use_relative_offset** (*bool*) – Scale the offset by surrounding geometry.
        - **use_edge_rail** (*bool*) – Inset the region along existing edges.
        - **thickness** (*float*) – Thickness.
        - **depth** (*float*) – Depth.
        - **use_outset** (*bool*) – Outset rather than inset.

    Returns:
    :   - `faces`:
          Output faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.offset_edgeloops(*bm*, *edges=[]*, *use_cap_endpoint=False*)
:   Edge-loop Offset.

    Creates edge loops based on simple edge-outset method.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **use_cap_endpoint** (*bool*) – Extend loop around end-points.

    Returns:
    :   - `edges`:
          Output edges.

          **type** list of (`bmesh.types.BMEdge`)

    Return type:
    :   dict[str, Any]

bmesh.ops.wireframe(*bm*, *faces=[]*, *thickness=0*, *offset=0*, *use_replace=False*, *use_boundary=False*, *use_even_offset=False*, *use_crease=False*, *crease_weight=0*, *use_relative_offset=False*, *material_offset=0*)
:   Wire Frame.

    Makes a wire-frame copy of faces.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **thickness** (*float*) – Thickness.
        - **offset** (*float*) – Offset the thickness from the center.
        - **use_replace** (*bool*) – Remove original geometry.
        - **use_boundary** (*bool*) – Inset face boundaries.
        - **use_even_offset** (*bool*) – Scale the offset to give more even thickness.
        - **use_crease** (*bool*) – Crease hub edges for improved subdivision surface.
        - **crease_weight** (*float*) – The mean crease weight for resulting edges.
        - **use_relative_offset** (*bool*) – Scale the offset by surrounding geometry.
        - **material_offset** (*int*) – Offset material index of generated faces.

    Returns:
    :   - `faces`:
          Output faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.poke(*bm*, *faces=[]*, *offset=0*, *center_mode='MEAN_WEIGHTED'*, *use_relative_offset=False*)
:   Pokes a face.

    Splits a face into a triangle fan.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **offset** (*float*) – Center vertex offset along normal.
        - **center_mode** (*enum in* *[**'MEAN_WEIGHTED'**,* *'MEAN'**,* *'BOUNDS'**]**,* *default 'MEAN_WEIGHTED'*) – Calculation mode for center vertex.
        - **use_relative_offset** (*bool*) – Apply offset.

    Returns:
    :   - `verts`:
          Output verts.

          **type** list of (`bmesh.types.BMVert`)
        - `faces`:
          Output faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.convex_hull(*bm*, *input=[]*, *use_existing_faces=False*)
:   Convex Hull

    Builds a convex hull from the vertices in ‘input’.

    If ‘use_existing_faces’ is true, the hull will not output triangles
    that are covered by a pre-existing face.

    All hull vertices, faces, and edges are added to ‘geom.out’. Any
    input elements that end up inside the hull (i.e. are not used by an
    output face) are added to the ‘interior_geom’ slot. The
    ‘unused_geom’ slot will contain all interior geometry that is
    completely unused. Lastly, ‘holes_geom’ contains edges and faces
    that were in the input and are part of the hull.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **input** (list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)) – Input geometry.
        - **use_existing_faces** (*bool*) – Skip hull triangles that are covered by a pre-existing face.

    Returns:
    :   - `geom`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
        - `geom_interior`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
        - `geom_unused`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
        - `geom_holes`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.symmetrize(*bm*, *input=[]*, *direction='-X'*, *dist=0*, *use_shapekey=False*)
:   Symmetrize.

    Makes the mesh elements in the “input” slot symmetrical. Unlike
    normal mirroring, it only copies in one direction, as specified by
    the “direction” slot. The edges and faces that cross the plane of
    symmetry are split as needed to enforce symmetry.

    All new vertices, edges, and faces are added to the “geom.out” slot.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **input** (list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)) – Input geometry.
        - **direction** (*enum in* *[**'-X'**,* *'-Y'**,* *'-Z'**,* *'X'**,* *'Y'**,* *'Z'**]**,* *default '-X'*) – Axis to use.
        - **dist** (*float*) – Minimum distance.
        - **use_shapekey** (*bool*) – Transform shape keys too.

    Returns:
    :   - `geom`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]