user: Explain Itasc(IKParam) in complete detail according to the official Blender documentation.

assistant: # Itasc(IKParam)

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

*class* bpy.types.Itasc(*IKParam*)
:   Parameters for the iTaSC IK solver

    damping_epsilon
    :   Singular value under which damping is progressively applied (higher values produce results with more stability, less reactivity)

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

    damping_max
    :   Maximum damping coefficient when singular value is nearly 0 (higher values produce results with more stability, less reactivity)

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

    feedback
    :   Feedback coefficient for error correction, average response time is 1/feedback

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

    iterations
    :   Maximum number of iterations for convergence in case of reiteration

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

    mode
    :   - `ANIMATION`
          Animation – Stateless solver computing pose starting from current action and non-IK constraints.
        - `SIMULATION`
          Simulation – State-full solver running in real-time context and ignoring actions and non-IK constraints.

        Type:
        :   enum in [`'ANIMATION'`, `'SIMULATION'`], default `'ANIMATION'`

    precision
    :   Precision of convergence in case of reiteration

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

    reiteration_method
    :   Defines if the solver is allowed to reiterate (converge until precision is met) on none, first or all frames

        - `NEVER`
          Never – The solver does not reiterate, not even on first frame (starts from rest pose).
        - `INITIAL`
          Initial – The solver reiterates (converges) on the first frame but not on subsequent frame.
        - `ALWAYS`
          Always – The solver reiterates (converges) on all frames.

        Type:
        :   enum in [`'NEVER'`, `'INITIAL'`, `'ALWAYS'`], default `'NEVER'`

    solver
    :   Solving method selection: automatic damping or manual damping

        - `SDLS`
          SDLS – Selective Damped Least Square.
        - `DLS`
          DLS – Damped Least Square with Numerical Filtering.

        Type:
        :   enum in [`'SDLS'`, `'DLS'`], default `'SDLS'`

    step_count
    :   Divide the frame interval into this many steps

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

    step_max
    :   Higher bound for timestep in second in case of automatic substeps

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

    step_min
    :   Lower bound for timestep in second in case of automatic substeps

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

    translate_root_bones
    :   Translate root (i.e. parentless) bones to the armature origin

        Type:
        :   boolean, default False

    use_auto_step
    :   Automatically determine the optimal number of steps for best performance/accuracy trade off

        Type:
        :   boolean, default False

    velocity_max
    :   Maximum joint velocity in radians/second

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

    *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