# Occurrence

> Learn about occurrences in the scene, including their properties, functions, and how to work with prototypes and instances.

[API reference](/asset-transformer-sdk/2026.4/api/python/scene_types.md#occurrence)

The nodes in the product structure are referred to as occurrences. Most of the optimization functions take an occurrence or a list of occurrences as input.

This table shows examples:

| Function                                                                                                                                  | Description                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [algo.tessellate(\[1\], …)](/asset-transformer-sdk/2026.4/api/python/algo_functions.md#tessellate)                                        | Specify **\[1]** to run the algorithm on all the direct and indirect child occurrences of this occurrence. |
| [scene.getRoot()](/asset-transformer-sdk/2026.4/api/python/scene_functions.md#getroot)                                                    | Use this function to retrieve the root occurrence of your scene.                                           |
| [scene.findOccurrencesByProperty(property, regex)](/asset-transformer-sdk/2026.4/api/python/scene_functions.md#findoccurrencesbyproperty) | Use this function to find occurrences that have a specific  property.                                      |

> **Tip:**
>
> To retrieve all the occurrences in the scene or the recursive children of an occurrence, use the [scene.findOccurrencesByProperty](../../api/python/scene_functions#findoccurrencesbyproperty) method with these parameters:
>
> * The `"Name"` property
> * This regular expression to find all properties: `".*"`

This table shows the properties of occurrences:

| Property  | Type                                                                                      | Description                                                                                        |
| --------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| Id        | [Ident](/asset-transformer-sdk/2026.4/api/python/core_types.md#ident)                     | A unique unsigned int identifier.                                                                  |
| Name      | [String](/asset-transformer-sdk/2026.4/api/python/core_types.md#string)                   | The name of this occurrence.                                                                       |
| Visible   | [InheritableBool](/asset-transformer-sdk/2026.4/api/python/core_types.md#inheritablebool) | The visibility status of this occurrence.                                                          |
| Material  | [Entity](/asset-transformer-sdk/2026.4/api/python/core_types.md#entity)                   | The optional material of this occurrence.                                                          |
| Transform | [Matrix4](/asset-transformer-sdk/2026.4/api/python/geom_types.md#matrix4)                 | Local transform matrix of this occurrence, storing local position, rotation and scale information. |
| Prototype | [Entity](/asset-transformer-sdk/2026.4/api/python/core_types.md#entity)                   | Prototype occurrence. If exists this occurrence inherits from its prototype's properties.          |

An occurrence that's instantiated elsewhere in the product structure is referred to as a prototype. References to a prototype are referred to as instances.

To instantiate an occurrence and its subtree, use the [scene.prototypeSubTree](../../api/python/scene_functions#prototypesubtree) function. The returned subtree shares the same components, geometries, and materials as the prototyped subtree.
