# Introduction

<span class="rvts6">The platform features a component for material tracking. This is a voxel layer that can be used to track the location of material in space across time.</span>

<span class="rvts6">It is possible to interact with the Material Tracking Layer in two main general ways:</span>

1. <span class="rvts72">Submit new facts about material changes (write data)</span>
2. <span class="rvts72">Query information about material changes (read data)</span>

<span class="rvts6">Where “material change” is defined as:</span>

1. <span class="rvts72">A change in the attribute values of a tracked volume of material, or</span>
2. <span class="rvts72">a change in the location of a tracked volume of material</span>

<span class="rvts6">Like with other types of spatial data, the system uses a different pathway for writing versus reading. Data is ingested by processor services. This process is controlled by the REST API. It involves sending a POST request with a CSV file that contains the tracking operations the system needs to ingest. The API provides a callback mechanism to get notifications when ingestion completes. The REST API also provides the means to notify the tracking system about the beginning and completion of simulations.</span>

<span class="rvts6">Reading data out of the system, on the other hand, is performed by streaming services. The data could be used for visualizations or reporting/analysis and can be accessed from the C# client API. The REST API also allows accessing material tracking data from 1D constructs such as crushers and trucks.</span>