<!-- # hard line break macro for HTML -->

# fiftyone.core.threed.material_3d

Material definition for 3D visualization.

Copyright 2017-2026, Voxel51, Inc.
<br/>
[voxel51.com](https://voxel51.com/)
<br/>
<br/>

**Classes:**

| [`Material3D`](#fiftyone.core.threed.material_3d.Material3D)([opacity])                                      | Base class for 3D materials.         |
|--------------------------------------------------------------------------------------------------------------|--------------------------------------|
| [`PointCloudMaterial`](#fiftyone.core.threed.material_3d.PointCloudMaterial)([shading_mode, ...])            | Represents a point cloud material.   |
| [`MeshMaterial`](#fiftyone.core.threed.material_3d.MeshMaterial)([wireframe, opacity])                       | Represents a mesh material.          |
| [`MeshBasicMaterial`](#fiftyone.core.threed.material_3d.MeshBasicMaterial)([color, wireframe, opacity])      | Represents a basic mesh material.    |
| [`MeshStandardMaterial`](#fiftyone.core.threed.material_3d.MeshStandardMaterial)([color, ...])               | Represents a standard mesh material. |
| [`MeshLambertMaterial`](#fiftyone.core.threed.material_3d.MeshLambertMaterial)([color, emissive_color, ...]) | Represents a Lambert mesh material.  |
| [`MeshPhongMaterial`](#fiftyone.core.threed.material_3d.MeshPhongMaterial)([shininess, ...])                 | Represents a Phong mesh material.    |
| [`MeshDepthMaterial`](#fiftyone.core.threed.material_3d.MeshDepthMaterial)([wireframe, opacity])             | Represents a depth mesh material.    |

### *class* fiftyone.core.threed.material_3d.Material3D(opacity: float = 1.0)

Bases: [`BaseValidatedDataClass`](fiftyone.core.threed.validators.md#fiftyone.core.threed.validators.BaseValidatedDataClass)

Base class for 3D materials.

* **Parameters:**
  **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`opacity`](#fiftyone.core.threed.material_3d.Material3D.opacity)   |    |
|---------------------------------------------------------------------|----|

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.Material3D.as_dict)()   |    |
|-----------------------------------------------------------------------|----|

#### *property* opacity *: float*

#### as_dict()

### *class* fiftyone.core.threed.material_3d.PointCloudMaterial(shading_mode: Literal['height', 'intensity', 'rgb', 'custom'] = 'height', custom_color: str = '#ffffff', point_size: float = 1.0, attenuate_by_distance: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`Material3D`](#fiftyone.core.threed.material_3d.Material3D)

Represents a point cloud material.

* **Parameters:**
  * **shading_mode** ( *"height"*) – the shading mode to use. Supported values are
    “height”, “intensity”, “rgb”, and “custom”
  * **custom_color** ( *"#ffffff"*) – a custom color to use for the point cloud.
    This is only used when `shading_mode` is “custom”
  * **point_size** (*1.0*) – the size of the points in the point cloud
  * **attenuate_by_distance** (*False*) – whether to attenuate the point size
    based on distance from the camera
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`shading_mode`](#fiftyone.core.threed.material_3d.PointCloudMaterial.shading_mode)                   |    |
|-------------------------------------------------------------------------------------------------------|----|
| [`custom_color`](#fiftyone.core.threed.material_3d.PointCloudMaterial.custom_color)                   |    |
| [`point_size`](#fiftyone.core.threed.material_3d.PointCloudMaterial.point_size)                       |    |
| [`attenuate_by_distance`](#fiftyone.core.threed.material_3d.PointCloudMaterial.attenuate_by_distance) |    |
| [`opacity`](#fiftyone.core.threed.material_3d.PointCloudMaterial.opacity)                             |    |

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.PointCloudMaterial.as_dict)()   |    |
|-------------------------------------------------------------------------------|----|

#### *property* shading_mode *: Literal['height', 'intensity', 'rgb', 'custom']*

#### *property* custom_color *: str*

#### *property* point_size *: float*

#### *property* attenuate_by_distance *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### as_dict()

#### *property* opacity *: float*

### *class* fiftyone.core.threed.material_3d.MeshMaterial(wireframe: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`Material3D`](#fiftyone.core.threed.material_3d.Material3D)

Represents a mesh material.

* **Parameters:**
  * **wireframe** (*False*) – whether to render the mesh as a wireframe
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`wireframe`](#fiftyone.core.threed.material_3d.MeshMaterial.wireframe)   |    |
|---------------------------------------------------------------------------|----|
| [`opacity`](#fiftyone.core.threed.material_3d.MeshMaterial.opacity)       |    |

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.MeshMaterial.as_dict)()   |    |
|-------------------------------------------------------------------------|----|

#### *property* wireframe *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### as_dict()

#### *property* opacity *: float*

### *class* fiftyone.core.threed.material_3d.MeshBasicMaterial(color: str = '#808080', wireframe: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`MeshMaterial`](#fiftyone.core.threed.material_3d.MeshMaterial)

Represents a basic mesh material.

This material is not affected by lights, and is rendered as a solid color.

* **Parameters:**
  * **color** ( *"#808080"*) – the color of the material
  * **wireframe** (*False*) – whether to render the mesh as a wireframe
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`color`](#fiftyone.core.threed.material_3d.MeshBasicMaterial.color)         |    |
|------------------------------------------------------------------------------|----|
| [`opacity`](#fiftyone.core.threed.material_3d.MeshBasicMaterial.opacity)     |    |
| [`wireframe`](#fiftyone.core.threed.material_3d.MeshBasicMaterial.wireframe) |    |

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.MeshBasicMaterial.as_dict)()   |    |
|------------------------------------------------------------------------------|----|

#### *property* color *: str*

#### as_dict()

#### *property* opacity *: float*

#### *property* wireframe *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

### *class* fiftyone.core.threed.material_3d.MeshStandardMaterial(color: str = '#808080', emissive_color: str = '#000000', emissive_intensity: float = 0.0, metalness: float = 0.0, roughness: float = 1.0, wireframe: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`MeshMaterial`](#fiftyone.core.threed.material_3d.MeshMaterial)

Represents a standard mesh material.

This material is a standard physically-based rendering (PBR) material.
This material is ideal for most use cases.

* **Parameters:**
  * **color** ( *"#808080"*) – the color of the material
  * **emissive_color** ( *"#000000"*) – the emissive color of the material.
    This is the color emitted by the material itself independent of the
    light
  * **emissive_intensity** (*0.0*) – the intensity of the emissive color
  * **metalness** (*0.0*) – the metalness of the material
  * **roughness** (*1.0*) – the roughness of the material
  * **wireframe** (*False*) – whether to render the mesh as a wireframe
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`color`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.color)                           |    |
|---------------------------------------------------------------------------------------------------|----|
| [`opacity`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.opacity)                       |    |
| [`wireframe`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.wireframe)                   |    |
| [`emissive_color`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.emissive_color)         |    |
| [`emissive_intensity`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.emissive_intensity) |    |
| [`metalness`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.metalness)                   |    |
| [`roughness`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.roughness)                   |    |

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.MeshStandardMaterial.as_dict)()   |    |
|---------------------------------------------------------------------------------|----|

#### *property* color *: str*

#### *property* opacity *: float*

#### *property* wireframe *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### *property* emissive_color *: str*

#### *property* emissive_intensity *: float*

#### *property* metalness *: float*

#### *property* roughness *: float*

#### as_dict()

### *class* fiftyone.core.threed.material_3d.MeshLambertMaterial(color: str = '#808080', emissive_color: str = '#000000', emissive_intensity: float = 0.0, reflectivity: float = 1.0, refraction_ratio: float = 0.98, wireframe: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`MeshMaterial`](#fiftyone.core.threed.material_3d.MeshMaterial)

Represents a Lambert mesh material.

This material only takes into account diffuse reflections, and ignores
specular reflection. This is ideal for materials that reflect light evenly
without a glossy or shiny appearance, such as unpolished surfaces.

* **Parameters:**
  * **color** ( *"#808080"*) – the color of the material
  * **emissive_color** ( *"#000000"*) – the emissive color of the material.
    This is the color emitted by the material itself independent of
    the light
  * **emissive_intensity** (*0.0*) – the intensity of the emissive color
  * **reflectivity** (*1.0*) – the reflectivity of the material
  * **refraction_ratio** (*0.98*) – the refraction ratio (IOR) of the material
  * **wireframe** (*False*) – whether to render the mesh as a wireframe
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`opacity`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.opacity)                       |    |
|--------------------------------------------------------------------------------------------------|----|
| [`wireframe`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.wireframe)                   |    |
| [`color`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.color)                           |    |
| [`emissive_color`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.emissive_color)         |    |
| [`emissive_intensity`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.emissive_intensity) |    |
| [`reflectivity`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.reflectivity)             |    |
| [`refraction_ratio`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.refraction_ratio)     |    |

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.MeshLambertMaterial.as_dict)()   |    |
|--------------------------------------------------------------------------------|----|

#### *property* opacity *: float*

#### *property* wireframe *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### *property* color *: str*

#### *property* emissive_color *: str*

#### *property* emissive_intensity *: float*

#### *property* reflectivity *: float*

#### *property* refraction_ratio *: float*

#### as_dict()

### *class* fiftyone.core.threed.material_3d.MeshPhongMaterial(shininess: float = 30.0, specular_color: str = '#111111', color: str = '#808080', emissive_color: str = '#000000', emissive_intensity: float = 0.0, reflectivity: float = 1.0, refraction_ratio: float = 0.98, wireframe: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`MeshLambertMaterial`](#fiftyone.core.threed.material_3d.MeshLambertMaterial)

Represents a Phong mesh material.

This material takes into account specular reflection. This is ideal for
materials that reflect light with a glossy or shiny appearance, such as
polished surfaces.

* **Parameters:**
  * **shininess** (*30.0*) – the shininess of the material
  * **specular_color** ( *"#111111"*) – the specular color of the material
  * **color** ( *"#808080"*) – the color of the material
  * **emissive_color** ( *"#000000"*) – the emissive color of the material.
    This is the color emitted by the material itself independent of
    the light
  * **emissive_intensity** (*0.0*) – the intensity of the emissive color
  * **reflectivity** (*1.0*) – the reflectivity of the material
  * **refraction_ratio** (*0.98*) – the refraction ratio (IOR) of the material
  * **wireframe** (*False*) – whether to render the mesh as a wireframe
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Attributes:**

| [`color`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.color)                           |    |
|------------------------------------------------------------------------------------------------|----|
| [`emissive_color`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.emissive_color)         |    |
| [`emissive_intensity`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.emissive_intensity) |    |
| [`opacity`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.opacity)                       |    |
| [`reflectivity`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.reflectivity)             |    |
| [`refraction_ratio`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.refraction_ratio)     |    |
| [`wireframe`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.wireframe)                   |    |
| [`shininess`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.shininess)                   |    |
| [`specular_color`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.specular_color)         |    |

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.MeshPhongMaterial.as_dict)()   |    |
|------------------------------------------------------------------------------|----|

#### *property* color *: str*

#### *property* emissive_color *: str*

#### *property* emissive_intensity *: float*

#### *property* opacity *: float*

#### *property* reflectivity *: float*

#### *property* refraction_ratio *: float*

#### *property* wireframe *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### *property* shininess *: float*

#### *property* specular_color *: str*

#### as_dict()

### *class* fiftyone.core.threed.material_3d.MeshDepthMaterial(wireframe: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, opacity: float = 1.0)

Bases: [`MeshMaterial`](#fiftyone.core.threed.material_3d.MeshMaterial)

Represents a depth mesh material.

This material is used for drawing geometry by depth, where depth is based
off of the camera near and far plane. White is nearest, black is farthest.

* **Parameters:**
  * **wireframe** (*False*) – whether to render the mesh as a wireframe
  * **opacity** (*1.0*) – the opacity of the material, in the range `[0, 1]`

**Methods:**

| [`as_dict`](#fiftyone.core.threed.material_3d.MeshDepthMaterial.as_dict)()   |    |
|------------------------------------------------------------------------------|----|

**Attributes:**

| [`opacity`](#fiftyone.core.threed.material_3d.MeshDepthMaterial.opacity)     |    |
|------------------------------------------------------------------------------|----|
| [`wireframe`](#fiftyone.core.threed.material_3d.MeshDepthMaterial.wireframe) |    |

#### as_dict()

#### *property* opacity *: float*

#### *property* wireframe *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*
