user: Explain MarbleTexture(Texture) in complete detail according to the official Blender documentation.

assistant: # MarbleTexture(Texture)

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

*class* bpy.types.MarbleTexture(*Texture*)
:   Procedural noise texture

    marble_type
    :   - `SOFT`
          Soft – Use soft marble.
        - `SHARP`
          Sharp – Use more clearly defined marble.
        - `SHARPER`
          Sharper – Use very clearly defined marble.

        Type:
        :   enum in [`'SOFT'`, `'SHARP'`, `'SHARPER'`], default `'SOFT'`

    nabla
    :   Size of derivative offset used for calculating normal

        Type:
        :   float in [0.001, 0.1], default 0.025

    noise_basis
    :   Noise basis used for turbulence

        - `BLENDER_ORIGINAL`
          Blender Original – Noise algorithm - Blender original: Smooth interpolated noise.
        - `ORIGINAL_PERLIN`
          Original Perlin – Noise algorithm - Original Perlin: Smooth interpolated noise.
        - `IMPROVED_PERLIN`
          Improved Perlin – Noise algorithm - Improved Perlin: Smooth interpolated noise.
        - `VORONOI_F1`
          Voronoi F1 – Noise algorithm - Voronoi F1: Returns distance to the closest feature point.
        - `VORONOI_F2`
          Voronoi F2 – Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point.
        - `VORONOI_F3`
          Voronoi F3 – Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point.
        - `VORONOI_F4`
          Voronoi F4 – Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point.
        - `VORONOI_F2_F1`
          Voronoi F2-F1 – Noise algorithm - Voronoi F1-F2.
        - `VORONOI_CRACKLE`
          Voronoi Crackle – Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges.
        - `CELL_NOISE`
          Cell Noise – Noise algorithm - Cell Noise: Square cell tessellation.

        Type:
        :   enum in [`'BLENDER_ORIGINAL'`, `'ORIGINAL_PERLIN'`, `'IMPROVED_PERLIN'`, `'VORONOI_F1'`, `'VORONOI_F2'`, `'VORONOI_F3'`, `'VORONOI_F4'`, `'VORONOI_F2_F1'`, `'VORONOI_CRACKLE'`, `'CELL_NOISE'`], default `'BLENDER_ORIGINAL'`

    noise_basis_2
    :   - `SIN`
          Sin – Use a sine wave to produce bands.
        - `SAW`
          Saw – Use a saw wave to produce bands.
        - `TRI`
          Tri – Use a triangle wave to produce bands.

        Type:
        :   enum in [`'SIN'`, `'SAW'`, `'TRI'`], default `'SIN'`

    noise_depth
    :   Depth of the cloud calculation

        Type:
        :   int in [0, 30], default 2

    noise_scale
    :   Scaling for noise input

        Type:
        :   float in [0.0001, inf], default 0.25

    noise_type
    :   - `SOFT_NOISE`
          Soft – Generate soft noise (smooth transitions).
        - `HARD_NOISE`
          Hard – Generate hard noise (sharp transitions).

        Type:
        :   enum in [`'SOFT_NOISE'`, `'HARD_NOISE'`], default `'SOFT_NOISE'`

    turbulence
    :   Turbulence of the bandnoise and ringnoise types

        Type:
        :   float in [0.0001, inf], default 5.0

    users_material
    :   Materials that use this texture

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

        (readonly)

    users_object_modifier
    :   Object modifiers that use this texture

        Type:
        :   tuple of [`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

        (readonly)

    *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