user: Explain Particle(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # Particle(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.Particle(*bpy_struct*)
:   Particle in a particle system

    alive_state
    :   Type:
        :   enum in [`'DEAD'`, `'UNBORN'`, `'ALIVE'`, `'DYING'`], default `'DEAD'`

    angular_velocity
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    birth_time
    :   Type:
        :   float in [-inf, inf], default 0.0

    die_time
    :   Type:
        :   float in [-inf, inf], default 0.0

    hair_keys
    :   Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ParticleHairKey`](bpy.types.ParticleHairKey.html#bpy.types.ParticleHairKey "bpy.types.ParticleHairKey"), (readonly)

    is_exist
    :   Type:
        :   boolean, default False, (readonly)

    is_visible
    :   Type:
        :   boolean, default False, (readonly)

    lifetime
    :   Type:
        :   float in [-inf, inf], default 0.0

    location
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    particle_keys
    :   Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ParticleKey`](bpy.types.ParticleKey.html#bpy.types.ParticleKey "bpy.types.ParticleKey"), (readonly)

    prev_angular_velocity
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    prev_location
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    prev_rotation
    :   Type:
        :   [`mathutils.Quaternion`](mathutils.html#mathutils.Quaternion "mathutils.Quaternion") rotation of 4 items in [-inf, inf], default (0.0, 0.0, 0.0, 0.0)

    prev_velocity
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    rotation
    :   Type:
        :   [`mathutils.Quaternion`](mathutils.html#mathutils.Quaternion "mathutils.Quaternion") rotation of 4 items in [-inf, inf], default (0.0, 0.0, 0.0, 0.0)

    size
    :   Type:
        :   float in [-inf, inf], default 0.0

    velocity
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    uv_on_emitter(*modifier*)
    :   Obtain UV coordinates for a particle on an evaluated mesh.

        Parameters:
        :   **modifier** ([`ParticleSystemModifier`](bpy.types.ParticleSystemModifier.html#bpy.types.ParticleSystemModifier "bpy.types.ParticleSystemModifier"), (never None)) – Particle modifier from an evaluated object

        Returns:
        :   uv

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 2 items in [-inf, inf]

    *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