Render Blender scenes on the distributed serverless cloud!
This repository is based on the architecture laid out by TAS-PC.
This repository aids in the following tasks:
- Setting up cloud infrastructure in AWS for rendering blender scenes
- Executing multiple concurrent jobs for rendering each frame
- Uploading and downloading scene and support files
- Removing infrastructure
The infrastructure created is called Serverless, through an AWS service called Lambda functions. These are charged per-use, and have a monthly free tier that costs nothing to use. AWS Lambdas do not currently support GPU rendering, but are easily scaled to concurrent executions, saving time.
- Create an AWS Account.
- Download the AWS CLI. Install it and configure your credentials (
aws configure
). - Download terraform.
- Clone this repository
- Create a
blender-lambda.tfvars
file for configuration. Use these values as startup, but modify them as you will.default_tags = { "project" = "blender-lambda" } producer_api_gateway_name = "blender-lambda-api" producer_lambda_source_path = "./blender-lambda-producer" producer_invocation_route_key = "POST /render-job" producer_lambda_function_name = "blender-lambda-producer" producer_ecr_repo = "blender-lambda-producer" consumer_lambda_source_path = "./blender-lambda-consumer" consumer_lambda_function_name = "blender-lambda-consumer" consumer_ecr_repo = "blender-lambda-consumer" queue_name = "blender-lambda-queue"
- Execute
./apply.sh
and accept the changes to have the infrastructure be created on your AWS account. - Execute
./upload_files.sh <sceneFile> <file1> <file2> <file3>
to upload your files (the scene file and any supporting meadia files). - Execute
./render.sh <sceneFile> <file1> <file2>...
to start the render job. - Wait.
- Execute
./download_rendered.sh
to download the results of the render. - Execute
./destroy.sh
to remove all the infrastructure from your AWS account.
This work is based on these previous investigations:
- TAS-PC
- Rendering Blender Scenes in the cloud with AWS Lambda, by JR Beaudoin
- Blender-docker by the NYTimes Research Team