# Scan with Feima

A [Feima](https://www.feimarobotics.com/) Pocket 3D project contains panoramas, one pose table (`pano_pos.txt`), and a LAS point cloud. Portal matches image filenames against pose records before mapping.

> Feima data requires neither 01Spatial Reference Boards nor Map Configurator; upload it and start the build.

## Prepare files

1. **The project's `pano/` folder, zipped.** It holds the panoramas (JPG, JPEG, PNG, TIF, or TIFF) and the pose table `pano_pos.txt`. Zipping the folder is what keeps hundreds of 8K images to a single upload.

   You can zip the whole Pocket 3D project folder instead — Portal picks the panoramas, `pano_pos.txt`, and the point cloud out of the archive and ignores the rest.

2. `pano_pos.txt` has no header row; each line holds nine whitespace-separated columns:

```text
image timestamp x y z qw qx qy qz
```

Every image name must match its uploaded filename exactly, including extension and letter case.

3. The LAS point cloud from the project's `temp/` directory (`optimised_*.las`) generates the map's mesh. Upload it separately, or leave it inside the ZIP. Without a point cloud the map still localizes, but no mesh is produced.

Panorama poses are taken from `pano_pos.txt`. Do not substitute `pano/external/pos/camera0_pos.txt`, which describes the individual fisheye lens rather than the panorama.

## Upload

1. Create a **Feima** map in Spatial Maps.
2. Under **Panoramas**, select the `.zip` of the `pano/` folder.
3. Under **Poses**, select `pano_pos.txt` only if it is not already inside the ZIP.
4. Under **Point cloud**, select the `.las` file unless it is already inside the ZIP.
5. Review the number of matched images and poses, then select **Build**.

Keep the page open until upload and extraction complete. If the match count is lower than the image count, correct the filenames in the pose table first.

## Validate

When Ready, check camera order, coordinate direction, area connections, and alignment between the LAS point cloud and visual Points. Complete localization tests from different locations and viewing directions.
