---
title: Supported File Formats
slug: api-guide/supported-file-formats
docTags: 
createdAt: 2024-12-17T10:47:15.220Z
---

The API allows uploading different file formats of images and point clouds. In this section we describe the supported formats for each type.

## Images

We currently support the following image formats: **png**, **jpg**, **jpeg**, **webp** and **avif**.

## Point clouds

Kognic uses a potree format internally to represent and present point clouds, this means that uploaded point cloud data needs to be converted into this format before it can be used as scene in the system. We currently support automatic conversion of the following formats: **pcd**, **csv** and **las**. The converter does not however exhaustively support all possible versions of these formats, see below for details of each format.

Internally we have a max precision of points coordinates at 1e-6 so 0.0000012 and 0.0000013 is considered the same point to us.

A timestamp field must always be present in point clouds, both in single-frame and sequence scenes, but the values are irrelevant [if motion compensation is not enabled](docId\:rhbSetWlNtFlfO6FMD_1e).

An intensity field may be provided in point clouds and will be preserved during conversion. If omitted, the intensity for all points will be zero.

A color field may be provided in the point clouds and will be preserved during conversion. If ommited no color data will be used.

Other auxiliary data that is not used in the platform is currently discarded in the conversion to potree.

:::hint{type="warning"}
### Column names must be exact

The column names must be provided as documented below. If they are not, the conversion will fail. In the case of timestamps, default values of 0 will be used instead.
:::

### PCD

The currently supported format includes the following header:

```javascript
VERSION .7
FIELDS x y z intensity timestamp rgb
SIZE 4 4 4 4 8 4
TYPE F F F U U F
COUNT 1 1 1 1 1 1
WIDTH <w>
HEIGHT <h>
VIEWPOINT 0 0 0 1 0 0 0
POINTS <n>
DATA ascii
```

Apart from `ascii` as `DATA` type, we also support `binary` and `binary_compressed`. Note that we currently don't support organized point clouds in the `binary_compressed` case, i.e. when `HEIGHT` is not equal to 1.

### CSV

We currently only support the following exact header and using `,` as separation character (where `intensity` is uint8,`ts_gps` is an uint64 and `x`, `y`, `z` are all float32):

```text
ts_gps,x,y,z,intensity,rgb,red,green,blue
```

The rgb fields are optional and can either be specified with just the rgb column or with one column per color. If only one of the three columns is set or rgb in combination with the color columns the processing will fail. The rgb color is expressed as hex color and the red, green, blue is 255 ints.

All other formats will fail.

### LAS

We currently support version 1.2 and point format id 3, as defined in the [las 1.2 specification](https://www.asprs.org/a/society/committees/standards/asprs_las_format_v12.pdf). All other formats will cause the conversion to fail.

## IMU data

When specifying imu data by file and not by python model we expect the following json:

```javascript
[
 {
  "postion": {
   "x": 0.0,
   "y": 0.0,
   "z": 0.0
  },
  "rotation": {
   "w": 0.0,
   "x": 0.0,
   "y": 0.0,
   "z": 0.0
  }
  "timestamp": <unix timestamp in nano seconds>
 },
 ...
]
```

