After Effects – Multiple Instance Render Script

For those of us with 1 Computer and the desire to utilize all of our Memory and CPU or GPU, I wrote my own After-Effects Background rendering script.
You are free to download and use it at will:

Regrettably it only works on windows, sorry.
(im pretty sure, powershell is a “mixed” environment -but havent tested on mac/unix and have doubts)

Free AfterEffects MultiCore Rendering Script

 

README:
1: add "aerender.exe" to your local Environment Variables @ PATH... add new..
2: Run PowerShell as admin - type the following
"Set-ExecutionPolicy Undefined" then type "Y"
3: run AE_render-multicore exe...
4: Drop your AE project into the list box

 

Function AfterEffectsBGrendering() {

	$runningInstances =	0

	[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

	$form = New-Object Windows.Forms.Form
	$form.text = "JANGORENDER"
	$listBox = New-Object Windows.Forms.ListBox
	$listBox.Dock = [System.Windows.Forms.DockStyle]::Fill
	
	
	
	$numOfFrames  = Read-Host 'How many frames?'
	$renderFolder  = Read-Host 'Where is your render folder?'
	$numOfInstances  = Read-Host 'How many instances would you like to run?'   
	
    	$handler = {
			if ($_.Data.GetDataPresent([Windows.Forms.DataFormats]::FileDrop)) {
				
				$filename = $_.Data.GetData([Windows.Forms.DataFormats]::FileDrop)
					$listBox.Items.Add($filename)
   
	
	#Process name to count
	$Target = "aerender"
	
	#check number of rendered files
	while ($numOfFrames -ne (Get-ChildItem $renderFolder | Measure-Object ).Count) {
	
	#begin instances
	do {
		#count process names aerender
		$Process = (Get-Process | Where-Object {$_.ProcessName -eq $Target} | Measure-Object).Count 
		
		#if process drops out create another one
		if ($Process -lt $numOfInstances){
		
		#
		Start-Process -FilePath "aerender.exe" -PassThru -ArgumentList "-project $filename -close DO_NOT_SAVE_CHANGES"
		}
		

		} until($Process -eq $numOfInstances )
		
		}
		
       }
      }
    
	$form.AllowDrop = $true
	$form.Add_DragEnter($handler)
	$form.Controls.Add($listBox)
	$form.ShowDialog()
	
Exit


}

AfterEffectsBGrendering | Out-Null