How to use Pix4Dmapper on the Cloud with Amazon AWS EC2 Services

Warning:This article refers to the command line interface (CLI) and not to the newest version of Pix4Dengine SDK.
We highly recommend migrating to the Pix4Dengine SDK. To get access to the latest documentation please visit Pix4Dengine Server SDK.
Note: Online processing services have to be used with a Pix4Dmapper Enterprise Server License in a Linux and Windows environment.

It is possible to run Pix4Dmapper on Amazon EC2 services to process images, as well as to use the rayCloud to edit and improve the results.

The processing can be performed on any EC2 instances type. However, CUDA processing and rayCloud visualization/editing can only be performed with GPU EC2 instances. As GPU instances are twice as expensive as compute instances, a possible solution is to perform the processing on a compute instance, save the results on EBS/S3, and load the project on a GPU instance.

Processing (any instances)

Pix4Dmapper can run on most Windows EC2 instances, but we recommend using instances optimized for computing such as c4.4xlarge or c4.8xlarge that provide sufficient CPU and RAM. Everything is available as on the desktop computer (processing, Map View, Mosaic Editor, Index Calculator), except the rayCloud 3D interface and CUDA computing that require a GPU instance (see below).

Instructions to run Pix4Dmapper on EC2:

1. Create an EC2 instance using the default Windows server AMI following tutorial.
2. Connect to it through RDP (this is explained in the AMI tutorial above).
3. To ease the downloading and installing of files, you might want to disable IE Enhanced Security, as per these instructions.
4. Install Pix4Dmapper and start processing:

Note: A popup with error code e0094 (Error e0094: It was not possible to initialize OpenGL.) will appear and the rayCloud will not be able open: this is to be expected.

5. Visualize and edit the results in the Mosaic Editor or Index Calculator.
6. Share the results using any file sharing service such as FTP, Dropbox or S3.

CUDA Processing & Visualizing (GPU instances)

There are currently two GPU instances: g2.2xlarge and g2.8xlarge. The first one has limited CPU power and is not recommended for heavy processing, only for visualization. The second one is nearly as powerful as the fastest compute instance, but is also twice as expensive. The first one can be 2-4 times slower than the second one for most projects.

Instructions to run:

1. Create a GPU EC2 instance, similarly to the instructions above. The instance type must have a GPU.
2. Connect to this instance through the Remote Desktop Protocol.
3. Install TeamViewer and configure unattended access according to the instructions found here.
4. Install the NVIDIA drivers for the GPU. The model is GRID K520 and the drivers can be found here.
5. Reboot the server. You can now login through Teamviewer instead of RDP.
6. In the Windows Device Manager, disable and uninstall the default entries for the Display adapters. The associated files must be forcefully removed by running the following commands in the Windows Powershell:

takeown /f C:\Windows\System32\Drivers\BasicDisplay.sys
echo Y | cacls C:\Windows\System32\Drivers\BasicDisplay.sys /G Administrator:F
del C:\Windows\System32\Drivers\BasicDisplay.sys


1. Reboot the server.
2. Login to the server using Teamviewer. 
3. (Optional) Open Pix4Dmapper and visualize the rayCloud.


Was this article helpful?
6 out of 7 found this helpful

Article feedback (for troubleshooting, post here instead)


  • Roland Cory-Wright


    The g2 instances are no longer available. Could you recommend an instance for processing 10,000+  20mb photos please?


  • Timothy (Pix4D)

    Hi Roland and for others who may have this question,

    As you may already know, AWS has updated to the G3 series of GPU compute instances.

    As the GPU is primarily taken advantage of during Step 1, typically the most efficient instance post-Step 1 becomes the compute optimized c5.9xlarge instances which costs just slightly less than the m5 series equivalents for similar performance. Where the M series shows improved reliability is in RAM however as the M series have higher resource ceilings than the C series.

    The most speed optimized setup is typically a G3 instance during Step 1, then a compute instance such as the c5.9xlarge for Steps 2 and 3. Economic (cost) optimized is usually the C series all the way through all Steps.

    Thank you for the question!

Article is closed for comments.