

Automatic conversion for E57 files
E57 files can contain 360° images in various formats, including cube maps and equirectangular (spherical) projections. If a 360° image is in a format other than a cube map, the extraction process will try to convert it to the cube map format. This conversion may require additional processing time and result in a slight quality loss compared to images that are already in cube map format. See E57 files with 360° images for upload instructions.Manual conversion for other file formats
If you have equirectangular images in other file formats (not E57), convert them to cube maps before uploading to CDF:- Use a conversion tool such as py360convert to convert your images to cube map format.
- Upload the converted cube maps following the steps in Custom script for other formatted 360° images.
Get started
You can upload 360° images to CDF in two ways:- By uploading E57 files with 360° images, if you have a point cloud file in the E57 file format that includes both 360° images and point cloud data. A zip file of E57 files is also supported. This is only supported for the asset-centric 3D models.
- By uploading other formatted 360° images, if you have 360° images and related custom metadata in separate, other (not E57) formatted files.
Access capabilities
See access capabilities to add the necessary capabilities to upload and view 360° images.Limitations
3D API processing now supports extracting 360° images from E57 files for a 3D model with adata set when starting from a script.
The extracted 360° image files will be stored in the same data set as the 3D model. If the 3D model doesn’t have a data set, the 3D API will also check and use any data set associated with the source file specified for the revision.
If you want the extracted 360° images to be available in a different data set, change the data set association for the files after processing is complete using file update requests.
If a data set is used in a modelId or source fileId, specify a dmsInstancesSpaceId value in the indexingOptions for the revision’s request body. See Trigger 360° image extraction from E57 files using Python for more information. This specifies the space where the data model instances for 360° images are stored.
E57 files with 360° images
Follow the steps to upload the E57 files to CDF, trigger point cloud filtering and indexing, and opt-in to 360° image extraction.1
Upload your E57 files to CDF
If these files are large:
- Upload the files in the ZIP format using the file extractor.
- Or, upload them as individual E57 files, referenced through a JSON file using a custom Python script.
2
Copy the main/primary file ID
Individual E57, ZIP, or JSON.
3
Create a new model
Navigate to Data management > Configure > 3D > New > Model.
4
Enter model details
Enter a model name, leave the data set field empty, and then select Upload new model.
5
Upload the file
Upload the file, if needed, or select Choose existing uploaded file to process to create a 3D model and enter the file ID (from step 2).
6
Start processing the point cloud
Select Upload and process.
7
Wait for processing to complete
For smaller files, this can take a few minutes. For larger files, this might take several hours or days. Refresh the page if necessary.
8
Configure filtering and indexing
- Once the model’s status changes to Done, select the model > … > Filtering and indexing.
- Select Use the file ID from the previous revision.
- Select Extract 360° images and clear Generate tiles option.
- Optional: Expand the Filtering section and manage more settings.
- Select OK to start the point cloud processing.
Trigger 360° image extraction from E57 files using Python
Use Python to trigger the 360° image extraction from E57 files. SetextractPhotoSphereImages to true to turn on this setting. Adjust the file_id, model_id, and dmsInstancesSpaceId. This only works for the asset-centric data model.
The example shows the Python script that triggers the extraction of 360° images.
Custom script for other formatted 360° images
Follow these steps to upload the cube map images to CDF for 360° formats other than E57 and specify the location and orientation of the 360° images in the data modeling service (DMS) instances.1
Upload cubemap images
Upload the cubemap images to the Files API, for example, using a Python script. Each image file needs an externalID and a specific set of metadata.A unique
externalID should be set for each file, and it should be the same as referenced from the corresponding Image360 instances image-360-cubemap-front and similar property fields.| Name | Value | Example |
|---|---|---|
site_id | A common identifier across all 360° images in the set. You will use this identifier when including the images in a scene. | ”site-S01-area-a03” |
site_name | A human-readable site name. | ”Norway Site S01 Area 03” |
station_id | A unique identifier for the scanning position. | ”s01-a03-0012” |
station_name | A human-readable station name. | ”Area 03 - 0012” |
image_type | Always “cubemap”. | “cubemap” |
image_resolution | The resolution of the cubemap image. The recommended resolution of cubemap images is 2048 x 2048 pixels. | 2048 |
face | The direction of the image (one of left, front, right, back, top, and bottom). | “left” |
2
Create DMS instances
For each 360° image collection, use the Data modeling API to create a set of instances to specify the location and orientation of the images. For more information about ingesting and removing instances, see Ingesting instances into a graph or Create or update nodges/edges.Three data model views are made explicitly for 360° images:
Image360CollectionStation360Image360
cdf_360_image_schema system data model in all CDF projects.You can store the instances in the same space, when ingesting instances for a collection through these three data model views.
The DMS instances should have the following metadata:| Value | Description |
|---|---|
collection_label | The name of the collection, for example, “site-factory1-area-a01”. |
collection-space-id | The space ID to store the Image360Collection instance. |
collection-external-id | The external ID of the Image360Collection instance. |
| Value | Description |
|---|---|
station-space-id | The space ID to store the Station360 instance. |
station-external-id | The external ID of the Station360 instance. |
station-label | The name of the station, for example, “station-0012”. |
| Value | Description |
|---|---|
image-360-space-id | The space ID to store the Image360 instance. Normally, the same as the space ID for the Image360Collection and Station360 instances. |
image-360-external-id | The external ID of the Image360 image set instance. Note that there’s only one Image360 instance for each set of 6 images. |
image-360-label | The name of the image set, for example, “station-0012-images”. |
image-360-translation-x, image-360-translation-y, image-360-translation-z | The translation coordinates of the image set. |
image-360-euler-rotation-x, image-360-euler-rotation-y, image-360-euler-rotation-z | The rotation angles for the front image in the image set. The rotation angles are in radians. |
image-360-scale-x, image-360-scale-y, image-360-scale-z | The scale factors of the image set. Normally, 1.0. |
image-360-cubemap-front, image-360-cubemap-back, image-360-cubemap-left, image-360-cubemap-right, image-360-cubemap-top, image-360-cubemap-bottom | The external IDs of the cube map images stored in the Files API. |
image-360-collection | The external ID of the Image360Collection instance. |
image-360-station | The name of the Station360 instance. |
image-360-time-taken | The time when the images were taken. |
Add 360 images to the scene
To see the 360° images in CDF programs and applications using the Reveal 3D viewer, add 360° images to the scene. For the E57 file (set) with both point cloud and 360° images, add 3D data when you configure or edit the scene. See Unified 3D contextualization for more information.The 360° images extracted from the E57 file set will be put in a 360° image collection named
site-<modelId>-<revisionId>. For example, site-111-222, where 111 is the model ID and 222 is the revision ID.