---
title: Point Cloud
slug: software/point-cloud
description: The Point Cloud feature in Carbon Design Engine translates data into lattice parameters. A common use case is to transfer pressure sensor data into a personalized performance lattice.
docTags: 
createdAt: 2024-06-06T00:05:50.163Z
---

The Point Cloud feature translates data into lattice parameters.

# Data Driven Lattices

Any **data set&#x20;**&#x74;hat can be **mapped to XYZ coordinates&#x20;**&#x63;an utilize the Point Cloud feature. The goal is to correlate lattice parameters with the data to create variation across the lattice. Variation may be desired for multiple reasons: performance, adaptivity (conforming to changes in geometry), or even aesthetics.

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
![Pressure Sensor Data Example](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Pressure-Data-Gathering.png)
:::

:::VerticalSplitItem
One common use case is to use pressure sensor data to define your lattice, utilizing **personalized** or **aggregated data** to build your applications as in the example below.
:::
::::

# Point Cloud Workflow

::embed[]{url="https://vimeo.com/744807276"}

:::ExpandableHeading
Video Text

1. Obtain data set
   • CSV file
2. Select Strut Lattice - Point Cloud
   • Select Point Cloud as Lattice population type
3. Upload data as CSV file
4. Edit Mappings
   • Add a row
   • Enter input value
   • Assign lattice parameters - reference **Lattice Parameter&#x20;**&#x67;uidelines
   • Add more rows for multiple input values and parameters
5. Generate and review strut lattice
6. Solidify
7. Generate
:::

# CSV File

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
![Data converted to CSV](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Heatmap-to-CSV.png)
:::

:::VerticalSplitItem
The data set must be converted to a CSV, formatted for Design Engine.

Alternate file types are not supported at this time (.doc, .xlsx, .png, etc.).

::File{src="https://api.archbee.com/api/presign/3CesIL2dYMCHPZvRjp8S0/Z0hmGHwisK0QLnM0ypynC_csv-point-cloud.csv" label="CSV Point Cloud.csv"}
:::
::::

::::::Tabs
:::Tab{title="Headers/Columns"}
- The file must contain **four columns**.
- The **first three** columns must represent **X, Y, Z coordinates**, in that order.
- The **fourth** column represents your **point cloud data.**
- **Column headers&#x20;**&#x73;hould be labeled as follows without case sensitivity
  - Template: x, y, z, \<any>
  - Example: x, y, z, force
  - Example: X, Y, Z, Value

::Image[]{src="https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/CSV_template_headers.png" size="78" width="333" height="37" position="center" alt="CSV Headers" showCaption="false"}
:::

:::Tab{title="Data"}
- X, Y, Z coordinates can be bot&#x68;**&#x20;positive or negative** numbers
- **Decimal** values are accepted
- Values must be **numerical only** - extra characters will result in an error
- Input values are **unit-agnostic** - it is not necessary to specify the units of input values
  (N, lbf, etc)
- If data points are 2-dimensional, use a zero value for the Z coordinate
:::

:::::Tab{title="Usage in Software"}
::::VerticalSplit{layout="right"}
:::VerticalSplitItem
- After uploading a CSV, the file appears in the dropdown list under Mappings
- Users can upload multiple CSV files - all files appear in the dropdown
- Users can only select one CSV at a time
:::

:::VerticalSplitItem
![CSV file in dropdown](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/CSV_drop_down-strut_lattice.png)
:::
::::
:::::
::::::

# Model Location

Ensure that the input model is in the same world coordinate location as the data set coordinates. This can be done in your CAD file or with the Translate tool within the Design Engine (as shown here).

![Align model with data](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Align-model-with-data_v0103.gif)

# Point Mappings

Enter data from the fourth column of your CSV file as the input value and map that value to lattice parameters.

### Mapping Basics

![3 values from the CSV file are used as input values in this example](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Point-Mappings.png "3 values from the CSV file are used as input values in this example")

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
**Non-mapped areas** in the design space will take on the parameters of the **nearest defined point&#x20;**(blue, yellow and red in this example)
:::

:::VerticalSplitItem
![Non-mapped areas](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Non-mapped-areas-gif.gif)
:::
::::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
![Linearly interpolated values](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Minimum-rows_AB.png)

Enter a **minimum of 2 rows** for variation across your lattice - all values in between will be **linearly interpolated**
(a single row will create a uniform lattice)
:::

:::VerticalSplitItem
![More data for granularity](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/More-rows_AB.png)

Enter **more rows/data** points for **greater granularity**
:::
::::

### Cell Size - Factor of 2

- All **cell size&#x20;**&#x69;nputs must be based on a **factor of 2&#x20;**&#x72;elative to the **top row**'s cell size
- All <font color="#32c49a">**viable options**</font> for rows 2 and beyond are listed in a drop-down menu
- Options that exceed 25 mm will be <font color="#d32f4a">**grayed out**</font>
- If the <font color="#05a9f4">**top row value is changed**</font> to make <font color="#ff9900">**another row's selection larger than recommended**</font> (ie exceeds 25 mm), the lattice will generate, but it is recommended to review the results for production viability

![Cell Size - Factor of 2](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Factor-of-2-gif.gif)

# Z Coordinate

- If data points are 2-dimensional, use a zero value for the Z coordinate
- Multiple Z coordinates can be used if data is 3-dimensional, or if different lattice parameters are desired in the Z axis
  - This example places points at Z-zero and points at Z-16 (mm)
  - The Z-zero points have lower input values than the points just below the design space surface in this example
  - The resulting lattice uses thicker struts for the Z-zero points to give the lattice a stiffer base

![Z Coordinate Data](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Multi-Z--gif.gif)

# Point Cloud Details

- Point cloud visibility and details can be accessed in the sidebar
- Standard menu options are available
- Hover over points to see input value

![Point Cloud Details](https://res.cloudinary.com/carbon3d/image/upload/t_auto_quality_format/Education/Software/Design-Engine/Tools-Features/Point-Cloud/Point-Cloud-Details_v0103_sml.gif)

