user: Describe Mesh Operators from the Blender manual or Python API, including usage steps and snippets.

assistant: ms in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object
        - **matrix** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf], (optional)) – Matrix

bpy.ops.mesh.primitive_cylinder_add(*\**, *vertices=32*, *radius=1.0*, *depth=2.0*, *end_fill_type='NGON'*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a cylinder mesh

    Parameters:
    :   - **vertices** (*int in* *[**3**,* *10000000**]**,* *(**optional**)*) – Vertices
        - **radius** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius
        - **depth** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Depth
        - **end_fill_type** (enum in [`'NOTHING'`, `'NGON'`, `'TRIFAN'`], (optional)) –

          Cap Fill Type

          - `NOTHING`
            Nothing – Don’t fill at all.
          - `NGON`
            N-Gon – Use n-gons.
          - `TRIFAN`
            Triangle Fan – Use triangle fans.
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_grid_add(*\**, *x_subdivisions=10*, *y_subdivisions=10*, *size=2.0*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a subdivided plane mesh

    Parameters:
    :   - **x_subdivisions** (*int in* *[**1**,* *10000000**]**,* *(**optional**)*) – X Subdivisions
        - **y_subdivisions** (*int in* *[**1**,* *10000000**]**,* *(**optional**)*) – Y Subdivisions
        - **size** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Size
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_ico_sphere_add(*\**, *subdivisions=2*, *radius=1.0*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a spherical mesh that consists of equally sized triangles

    Parameters:
    :   - **subdivisions** (*int in* *[**1**,* *10**]**,* *(**optional**)*) – Subdivisions
        - **radius** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_monkey_add(*\**, *size=2.0*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a Suzanne mesh

    Parameters:
    :   - **size** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Size
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_plane_add(*\**, *size=2.0*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a filled planar mesh with 4 vertices

    Parameters:
    :   - **size** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Size
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_torus_add(*\**, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *major_segments=48*, *minor_segments=12*, *mode='MAJOR_MINOR'*, *major_radius=1.0*, *minor_radius=0.25*, *abso_major_rad=1.25*, *abso_minor_rad=0.75*, *generate_uvs=True*)
:   Construct a torus mesh

    Parameters:
    :   - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation
        - **major_segments** (*int in* *[**3**,* *256**]**,* *(**optional**)*) – Major Segments, Number of segments for the main ring of the torus
        - **minor_segments** (*int in* *[**3**,* *256**]**,* *(**optional**)*) – Minor Segments, Number of segments for the minor ring of the torus
        - **mode** (enum in [`'MAJOR_MINOR'`, `'EXT_INT'`], (optional)) –

          Dimensions Mode

          - `MAJOR_MINOR`
            Major/Minor – Use the major/minor radii for torus dimensions.
          - `EXT_INT`
            Exterior/Interior – Use the exterior/interior radii for torus dimensions.
        - **major_radius** (*float in* *[**0**,* *10000**]**,* *(**optional**)*) – Major Radius, Radius from the origin to the center of the cross sections
        - **minor_radius** (*float in* *[**0**,* *10000**]**,* *(**optional**)*) – Minor Radius, Radius of the torus’ cross section
        - **abso_major_rad** (*float in* *[**0**,* *10000**]**,* *(**optional**)*) – Exterior Radius, Total Exterior Radius of the torus
        - **abso_minor_rad** (*float in* *[**0**,* *10000**]**,* *(**optional**)*) – Interior Radius, Total Interior Radius of the torus
        - **generate_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map

    File:
    :   [startup/bl_operators/add_mesh_torus.py:222](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/add_mesh_torus.py#L222)

bpy.ops.mesh.primitive_uv_sphere_add(*\**, *segments=32*, *ring_count=16*, *radius=1.0*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a spherical mesh with quad faces, except for triangle faces at the top and bottom

    Parameters:
    :   - **segments** (*int in* *[**3**,* *100000**]**,* *(**optional**)*) – Segments
        - **ring_count** (*int in* *[**3**,* *100000**]**,* *(**optional**)*) – Rings
        - **radius** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.quads_convert_to_tris(*\**, *quad_method='BEAUTY'*, *ngon_method='BEAUTY'*)
:   Triangulate selected faces

    Parameters:
    :   - **quad_method** (enum in [Modifier Triangulate Quad Method Items](bpy_types_enum_items/modifier_triangulate_quad_method_items.html#rna-enum-modifier-triangulate-quad-method-items), (optional)) – Quad Method, Method for splitting the quads into triangles
        - **ngon_method** (enum in [Modifier Triangulate Ngon Method Items](bpy_types_enum_items/modifier_triangulate_ngon_method_items.html#rna-enum-modifier-triangulate-ngon-method-items), (optional)) – N-gon Method, Method for splitting the n-gons into triangles

bpy.ops.mesh.region_to_loop()
:   Select boundary edges around the selected faces

bpy.ops.mesh.remove_doubles(*\**, *threshold=0.0001*, *use_centroid=True*, *use_unselected=False*, *use_sharp_edge_from_normals=False*)
:   Merge vertices based on their proximity

    Parameters:
    :   - **threshold** (*float in* *[**1e-06**,* *50**]**,* *(**optional**)*) – Merge Distance, Maximum distance between elements to merge
        - **use_centroid** (*boolean**,* *(**optional**)*) – Centroid Merge, Move vertices to the centroid of the duplicate cluster, otherwise the vertex closest to the centroid is used.
        - **use_unselected** (*boolean**,* *(**optional**)*) – Unselected, Merge selected to other unselected vertices
        - **use_sharp_edge_from_normals** (*boolean**,* *(**optional**)*) – Sharp Edges, Calculate sharp edges using custom normal data (when available)

bpy.ops.mesh.reorder_vertices_spatial()
:   Reorder mesh faces and vertices based on their spatial position for better BVH building and sculpting performance.

bpy.ops.mesh.reveal(*\**, *select=True*)
:   Reveal all hidden vertices, edges and faces

    Parameters:
    :   **select** (*boolean**,* *(**optional**)*) – Select

bpy.ops.mesh.rip(*\**, *mirror=False*, *use_proportional_edit=False*, *proportional_edit_falloff='SMOOTH'*, *proportional_size=1.0*, *use_proportional_connected=False*, *use_proportional_projected=False*, *release_confirm=False*, *use_accurate=False*, *use_fill=False*)
:   Disconnect vertex or edges from connected geometry

    Parameters:
    :   - **mirror** (*boolean**,* *(**optional**)*) – Mirror Editing
        - **use_proportional_edit** (*boolean**,* *(**optional**)*) – Proportional Editing
        - **proportional_edit_falloff** (enum in [Proportional Falloff Items](bpy_types_enum_items/proportional_falloff_items.html#rna-enum-proportional-falloff-items), (optional)) – Proportional Falloff, Falloff type for proportional editing mode
        - **proportional_size** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Proportional Size
        - **use_proportional_connected** (*boolean**,* *(**optional**)*) – Connected
        - **use_proportional_projected** (*boolean**,* *(**optional**)*) – Projected (2D)
        - **release_confirm** (*boolean**,* *(**optional**)*) – Confirm on Release, Always confirm operation when releasing button
        - **use_accurate** (*boolean**,* *(**optional**)*) – Accurate, Use accurate transformation
        - **use_fill** (*boolean**,* *(**optional**)*) – Fill, Fill the ripped region

bpy.ops.mesh.rip_edge(*\**, *mirror=False*, *use_proportional_edit=False*, *proportional_edit_falloff='SMOOTH'*, *proportional_size=1.0*, *use_proportional_connected=False*, *use_proportional_projected=False*, *release_confirm=False*, *use_accurate=False*)
:   Extend vertices along the edge closest to the cursor

    Parameters:
    :   - **mirror** (*boolean**,* *(**optional**)*) – Mirror Editing
        - **use_proportional_edit** (*boolean**,* *(**optional**)*) – Proportional Editing
        - **proportional_edit_falloff** (enum in [Proportional Falloff Items](bpy_types_enum_items/proportional_falloff_items.html#rna-enum-proportional-falloff-items), (optional)) – Proportional Falloff, Falloff type for proportional editing mode
        - **proportional_size** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Proportional Size
        - **use_proportional_connected** (*boolean**,* *(**optional**)*) – Connected
        - **use_proportional_projected** (*boolean**,* *(**optional**)*) – Projected (2D)
        - **release_confirm** (*boolean**,* *(**optional**)*) – Confirm on Release, Always confirm operation when releasing button
        - **use_accurate** (*boolean**,* *(**optional**)*) – Accurate, Use accurate transformation

bpy.ops.mesh.rip_edge_move(*\**, *MESH_OT_rip_edge=None*, *TRANSFORM_OT_translate=None*)
:   Extend vertices and move the result

    Parameters:
    :   - **MESH_OT_rip_edge** (`MESH_OT_rip_edge`, (optional)) – Extend Vertices, Extend vertices along the edge closest to the cursor
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.mesh.rip_move(*\**, *MESH_OT_rip=None*, *TRANSFORM_OT_translate=None*)
:   Rip polygons and move the result

    Parameters:
    :   - **MESH_OT_rip** (`MESH_OT_