AWS for M&E Blog

How to use 3ds Max with service-managed fleets on AWS Deadline Cloud

It can be challenging for studios and artists who want to leverage the power of the managed infrastructure of Amazon Web Services (AWS) Deadline Cloud while continuing to use Autodesk 3ds Max in their workflows. We’ll show you how to overcome this limitation by using configuration scripts to enable 3ds Max on service-managed fleets (SMFs). With this approach you can combine the convenience of managed infrastructure with the power of 3ds Max. You will have more flexibility in your rendering pipeline without the overhead of managing your own render nodes.

Prerequisites

Before you begin, make sure you have the following:

  • An AWS Account to use AWS Deadline Cloud.
  • A Deadline Cloud farm with one queue associated with one SMF using Windows instances. We recommend to create a new queue dedicated for 3ds Max to avoid affecting your existing environment.
  • The Deadline Cloud monitor installed and a profile created for your farm.
  • Autodesk 3ds Max 2024 installation files downloaded from Autodesk (verify the Setup.exe application is at the root of the folder).
  • A Windows workstation with 3ds Max 2024
  • The Deadline Cloud submitter for 3ds Max

Note: Autodesk 3ds Max has its own licensing requirements separate from AWS. Confirm you have the appropriate licenses before proceeding. See additional details on Autodesk Cloud Rights for 3ds Max.

Preparing the 3ds Max installation package

First, we need to prepare the 3ds Max installation files for deployment to our fleet workers:

  1. Compress your 3ds Max 2024 installation folder into a zip package named: 3ds_max_2024_full.zip
A Windows File Explorer window displays two panes showing the 3ds Max installation compression process. The left pane contains a '3dsMax2024' folder with a compressed zip file named '3ds_max_2024_full', while the right pane shows the source installation directory containing multiple folders such as 3rdParty, Content, manifest, and various installer files. This demonstrates the process of compressing the 3ds Max installation folder into a zip file for upload.installation directory. The directory contains multiple folders including 3rdParty, Content, manifest, ODIS, SetupRes, x64, and x86. Various installer and configuration files are also visible in the directory.

Figure 1: Compressing the 3ds Max installation folder into a zip file.

  1. Go to the AWS Deadline Cloud console and navigate to Farms and other resources.
  2. Select your farm, then select your queue.
  3. In the queue details view, select the Job Attachments
  4. Click the bucket name to open the bucket in the S3 console.
  5. Create a new folder called resources in this bucket.
  6. Upload the 3ds_max_2024_full.zip file into the newly created resources folder.
The AWS S3 console displays the resources folder within an S3 bucket, showing the Objects tab with one uploaded file. The zip file named '3ds_max_2024_full.zip' appears in the objects table with a size of 4.9 GB and Standard storage class. The S3 console interface shows various action buttons including Upload, Download, Delete, and Create folder at The Resources window showing where the zip folder can be accessed and selected as an object.

Figure 2: Uploading the 3ds Max installation zip file to the S3 bucket.

Configuring S3 bucket permissions

The configuration script will run using the fleet’s IAM role. You will need to grant the appropriate S3 bucket permissions to the fleet’s IAM role so your fleet workers can access the 3ds Max installation files:

  1. Go to the AWS Deadline Cloud console and navigate to Farms and other resources.
  2. Select your farm, then select your fleet.
  3. In the Fleet Details, click the link to the fleet service role.
  4. Add the following inline policy to the role, replacing the placeholders for <your-bucket-name> and <your-account-id> with your actual values:
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:ListBucket",
            "s3:GetBucketLocation"
        ],
        "Resource": [
            "arn:aws:s3:::<your-bucket-name>",
            "arn:aws:s3:::<your-bucket-name>/resources/*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:ResourceAccount": "<your-account-id>"
            }
        }
    }]
}
The AWS IAM console shows the permissions page for a Deadline Cloud Fleet role with three attached policies displayed in a table. An expanded view reveals the 'InstallationResources' inline policy containing JSON code that grants S3 permissions including GetObject, PutObject, ListBucket, and GetBucketLocation actions for a specific S3 bucket and its resources folder.

Figure 3: Adding S3 permissions to the fleet IAM role.

Creating the worker configuration script

Now we’ll create a worker configuration script that will install 3ds Max on each fleet worker when it starts up:

  1. Go to the AWS Deadline Cloud console and navigate to Farms and other resources.
  2. Select your farm, then select your fleet.
  3. In the fleet details view, select the Configurations
  4. In the “Worker configuration script” section, click the Edit
The AWS Deadline Cloud fleet configuration interface displays the Configurations tab with a Worker configuration script section. The section shows "No worker configuration script" with a description explaining it configures Windows and Linux workers using elevated permissions for tasks like software installation. A blue "Create" button is available to add a new worker configuration script.

Figure 4: Accessing the worker configuration script in the fleet configuration.

  1. In the script editor, paste the following PowerShell script. Replace <your-bucket-name> with the name of your S3 bucket.
mkdir C:\3dsmax_setup

Write-Host " --- Downloading from S3 --- "
aws s3 cp --no-progress s3://<your-bucket-name>/resources/3ds_max_2024_full.zip C:\3dsmax_setup\3dsmax.zip

Write-Host " --- Expanding Archive --- "
Expand-Archive C:\3dsmax_setup\3dsmax.zip C:\3dsmax_setup\

Write-Host " --- Starting Install --- "
Start-Process -FilePath "C:\3dsmax_setup\3dsMax2024\Setup.exe" -ArgumentList "-q" -Wait -PassThru

Write-Host " --- Post install setup --- "
[Environment]::SetEnvironmentVariable("Path", "C:\Program Files\Autodesk\3ds Max 2024;" + [Environment]::GetEnvironmentVariable("Path", "Machine"), "Machine")

& "C:\Program Files\Autodesk\3ds Max 2024\Python\python.exe" -m ensurepip
& "C:\Program Files\Autodesk\3ds Max 2024\Python\python.exe" -m pip install deadline-cloud-for-3ds-max
[Environment]::SetEnvironmentVariable("3DSMAX_EXECUTABLE", "C:\Program Files\Autodesk\3ds Max 2024\3dsmaxbatch.exe", "Machine")
[Environment]::SetEnvironmentVariable("PYTHONPATH", "C:\Program Files\Autodesk\3ds Max 2024\Python;C:\Program Files\Autodesk\3ds Max 2024\Python\Scripts", "Machine")
[Environment]::SetEnvironmentVariable("Path", "C:\Program Files\Autodesk\3ds Max 2024\Python;C:\Program Files\Autodesk\3ds Max 2024\Python\Scripts;" + [Environment]::GetEnvironmentVariable("Path", "Machine"), "Machine")
The worker configuration script editor shows a PowerShell script with numbered lines containing commands for automated 3ds Max installation on worker nodes. The script downloads the 3ds Max zip file from S3, extracts it, runs the silent installation, and configures environment variables for proper software functionality.

Figure 5: Editing the worker configuration script with the 3ds Max installation commands.

  1. IMPORTANT: Update the script timeout to 1200 seconds (20 min) to allow enough time for the 3ds Max installation to complete.
  2. Click Save to apply the changes.
The timeout configuration section displays an input field set to 1200 seconds with a description explaining this is the duration before the script times out and loses elevated permissions. The interface shows validation text indicating the value must be between 300 and 3600 seconds, with Cancel and Create buttons at the bottom right.

Figure 6: Setting the script timeout to 1200 seconds.

NOTE: The script is run when fleet workers start up. If there are already running workers in the fleet, do not run the newly configured script.

Configuring the queue environment

The default queue environment provides a mechanism to install required software dependencies by the submitted jobs. The submitter recognizes the default queue environment definition, and it auto-configures a few software dependencies by default. In the case of 3ds Max, the submitter inadvertently configures unavailable software dependencies, since there is currently no built-in support for 3ds Max.

This is not a problem, because the configuration script will take care of installing the required dependencies. However, if the job definition requests dependencies that do not exist, the job will fail.

To work around this issue, we will delete the default queue environment:

  1. In the fleet details view, select the Associated queues tab, and select your queue.
  2. In the queue details view, select the Queue environments
  3. If a default queue environment exists, select the default queue environment and click Delete.
The Queue environments tab displays a table showing one environment named 'Conda' with priority 10 and YAML template type, with its checkbox selected for deletion. The interface includes Delete, Edit, and Actions buttons at the top right, demonstrating the process of removing the default queue environment.

Figure 7: Deleting the default queue environment if it exists.

Note: You can still use the default queue environment if you need it. However, you will need to override the Conda Packages property in the submitter, to remove the auto-configured values. You will have to do this in every job submission.

Submitting a 3ds Max rendering job

Now that your fleet is configured to support 3ds Max, you can submit your rendering jobs. Before submitting a full rendering job, it’s a good practice to validate that your configuration is working correctly.

  1. Open 3ds Max on your workstation and prepare a test job with a minimal 3ds Max scene (such as rendering a single frame of a basic scene).
  2. Use the Deadline Cloud submitter for 3ds Max to submit your job to the queue associated with your configured fleet.
The 3ds Max interface shows the 'Submit to AWS Deadline Cloud' dialog with job configuration settings and a progress window displaying successful submission completion. Green progress bars indicate 100% completion for both hashing and upload processes, with detailed processing statistics shown below.

Figure 8: Submitting a rendering job from 3ds Max to Deadline Cloud.

  1. Open the Deadline Cloud monitor and navigate to the Job Monitor view to track the progress of your job.
The AWS Deadline Cloud monitor displays the job monitoring interface for a farm named 'ruizjaircmf farm' with a job called '3dsMax on SMF' showing 0% progress and 'Ready' status. The interface includes three panels showing Jobs, Steps, and Tasks sections, with the job currently in a ready state with priority 50 and no current workers assigned.

Figure 9: Monitoring the 3ds Max rendering job in the Deadline Cloud monitor.

Benefits

Implementing 3ds Max rendering on AWS Deadline Cloud through host configuration scripts combines cloud scalability with your existing 3ds Max workflows. This approach balances performance, cost-effectiveness, and streamlined operations without requiring significant changes to your current processes.

The solution demonstrates the flexibility of AWS Deadline Cloud. You can customize your rendering environment to meet your specific needs while still benefiting from the managed service model.

Benefits for using this approach:

  • Reducing the operational overhead of managing your own render nodes.
  • Scaling your rendering capacity automatically based on demand.
  • Maintaining compatibility with your existing 3ds Max workflows.

Troubleshooting

If you encounter issues with your 3ds Max rendering jobs, here are some common troubleshooting steps:

  • Installation failures: Check the worker logs in the Deadline Cloud console to see if there were any errors during the 3ds Max installation process.
  • Missing dependencies: Some 3ds Max plugins or features might require additional dependencies. You can modify the worker configuration script to install these dependencies as needed.
  • Timeout issues: If the installation consistently fails due to timeout, consider increasing the script timeout beyond 1200 seconds. You can try increments of 300 seconds until it no longer fails, or until the one hour limit is reached.
  • Permission errors: Verify that the fleet’s IAM role has the correct permissions to access the S3 bucket and the 3ds Max installation files.

Conclusion

I’ve shown how to enable Autodesk 3ds Max on AWS Deadline Cloud Service Managed Fleets using Configuration Scripts. With this approach you can leverage the convenience of managed infrastructure while still using 3ds Max in your rendering pipeline.

Contact an AWS Representative to know how we can help accelerate your business.

Further reading

Keep up to date with new ways to leverage host configuration scripts for 3ds Max in the Deadline Cloud Samples repository.

If you want to dive deeper into this topic, here are some relevant resources:

Jair Ruiz

Jair Ruiz

Jair Ruiz is a Software Engineer building products for digital content creation at AWS.