user: Give a detailed overview of GreasePencilSimplifyModifier(Modifier): syntax, arguments, return values, common patterns.

assistant: # GreasePencilSimplifyModifier(Modifier)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Modifier`](bpy.types.Modifier.html#bpy.types.Modifier "bpy.types.Modifier")

*class* bpy.types.GreasePencilSimplifyModifier(*Modifier*)
:   Simplify Stroke modifier

    distance
    :   Distance between points

        Type:
        :   float in [0, inf], default 0.1

    factor
    :   Factor of Simplify

        Type:
        :   float in [0, 100], default 0.0

    invert_layer_filter
    :   Invert layer filter

        Type:
        :   boolean, default False

    invert_layer_pass_filter
    :   Invert layer pass filter

        Type:
        :   boolean, default False

    invert_material_filter
    :   Invert material filter

        Type:
        :   boolean, default False

    invert_material_pass_filter
    :   Invert material pass filter

        Type:
        :   boolean, default False

    invert_vertex_group
    :   Invert vertex group weights

        Type:
        :   boolean, default False

    layer_pass_filter
    :   Layer pass filter

        Type:
        :   int in [0, 100], default 0

    length
    :   Length of each segment

        Type:
        :   float in [0, inf], default 0.1

    material_filter
    :   Material used for filtering

        Type:
        :   [`Material`](bpy.types.Material.html#bpy.types.Material "bpy.types.Material")

    material_pass_filter
    :   Material pass

        Type:
        :   int in [0, 100], default 0

    mode
    :   How to simplify the stroke

        - `FIXED`
          Fixed – Delete alternating vertices in the stroke, except extremes.
        - `ADAPTIVE`
          Adaptive – Use a Ramer-Douglas-Peucker algorithm to simplify the stroke preserving main shape.
        - `SAMPLE`
          Sample – Re-sample the stroke with segments of the specified length.
        - `MERGE`
          Merge – Simplify the stroke by merging vertices closer than a given distance.

        Type:
        :   enum in [`'FIXED'`, `'ADAPTIVE'`, `'SAMPLE'`, `'MERGE'`], default `'FIXED'`

    open_influence_panel
    :   Type:
        :   boolean, default False

    sharp_threshold
    :   Preserve corners that have sharper angle than this threshold

        Type:
        :   float in [0, 3.14159], default 0.0

    step
    :   Number of times to apply simplify

        Type:
        :   int in [1, 50], default 1

    tree_node_filter
    :   Layer name

        Type:
        :   string, default “”, (never None)

    use_layer_group_filter
    :   Filter by layer group name

        Type:
        :   boolean, default False

    use_layer_pass_filter
    :   Use layer pass filter

        Type:
        :   boolean, default False

    use_material_pass_filter
    :   Use material pass filter

        Type:
        :   boolean, default False

    vertex_group_name
    :   Vertex group name for modulating the deform

        Type:
        :   string, default “”, (never None)

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type