In October we announced the public preview of a new service called Azure Batch. This service provides job scheduling and resource management as a service and makes it extremely simple to cloud enable compute-intensive workloads to Azure. You give us the application, and we take care of the deployment, job management, resourcing, scheduling, disaster recovery, data movement, dependency management and all the other plumbing required to run jobs in the cloud.
Today we are excited to announce the release of a set of samples that enable you to run a Blender workload on Azure Batch. Blender is a free open-source 3D animation suite which supports the entirety of the 3D pipeline – modeling, rigging, animation, simulation and motion tracking, even game creation. Blender is used by individuals and small studios for photorealistic rendering, fast rigging, amazing simulations and game creation. All these require a lot of hardware to render in a realistic time frame to fulfill project deadlines. This is where Azure Batch can help, reducing the complexity and the time needed for rendering.
We are releasing two components available via GitHub which will enable anyone to offload their rendering to be processed using the Azure Batch service. The first component is the server-side component that uses our .Net SDK and contains the logic to split an animation job into a set of tasks to be processed on individual Virtual Machines. The second component is the client-side component written in Python that will allow you to manage the rendering job using a UI tool natively installed in Blender. This plug-in allows you to manage
- Jobs – submit jobs, download outputs, cancel jobs, download job logs and monitor status.
- Pools – create pools, delete pools, assign jobs to current running pools or use dynamic pools for jobs.
- Batch Portal – a web UI that allows you to manage jobs and tasks individually, diagnose logs, errors, download job and task outputs, and re-submit failed jobs and tasks. It will also allow you to get performance telemetry to allow you to optimize your jobs.
- Assets – keep track of what assets (User files, digital content, textures, lighting, etc.) have been uploaded to Azure Storage, so when submitting jobs with the same assets, it will only upload assets that don’t exist in the cloud or upload assets that have been modified.
Blender Cloud Logic
The Blender C# code that is provided can be downloaded here. This code needs to be deployed to Azure Batch using the Azure Management Portal. It is assumed that you already have set up a Batch Account through the Azure Portal; if not, instructions on setting up a Batch Account can be found here. Once this is done you can click “Manage Batch Apps” to set up the Blender service.
Once created, you will need to create an application within the service. Create a new Application and upload the built cloud assemblies that you downloaded from GitHub. Also package up the executables in a zip file and upload them from the same screen in step 2 of the new application process.
Once the application has been created, you now have a Blender cloud service!
Blender Client Plug-in
Download the Blender plug-in from here. Open Blender and from within the “User Preferences” option, select “Install from file” and use the file that you previously downloaded. You will now have to enter the authentication credentials to enable the plug-in to contact the Blender service you set up. These details can be gathered from the Portal where the service was set up.
From within the Batch Apps portal, copy the “Service URL”, the “Account ID” and create an “Account Key” for a select duration and copy the value. Paste these items into the plug-in in Blender filling the top 3 boxes.
You are now ready to use the plug-in to submit your models for rendering animations!
Learn More
Batch Apps Python Library & Documentation
Scott Guthrie’s Blog Post on Azure Batch
The samples are freely available via GitHub with an MIT license. We encourage everyone to dig into the code, improve it, add features and share any feedback, questions or comments with the Azure Batch team via askbatch@microsoft.com