Containerizing Arnold Renderer with Singularity 3.0

By Staff
Arnold is an advanced Monte Carlo ray tracing renderer built for the demands of feature-length animation and visual effects rendering, largely used to create movies and video games.
Arnold must be downloaded and installed manually. In this example we will download the Arnold software, move it to the /tmp directory where it will be accessible within the container, create a sandbox container that we can interact with it in writable mode, and manually install Arnold. This is not the standard best-practices workflow for creating Singularity containers, but may be necessary in some cases where non-interactive installations are the only method available.
In order to download Arnold, you will need to sign in or create an account with AutoDesk:
https://www.solidangle.com/arnold/try/
From within the container, copy (or move) the installer to the /tmp directory where it will be accessible inside the container at runtime.
$ sudo cp ~/Downloads/MtoA-3.1.0.1-linux-2018.run /tmp/
This example was tested using Arnold for Maya for Linux 64 bit 2018 version.
Here is the definition file that we will use to create a base sandbox container suitable for interactive installation of Arnold:
Bootstrap: library
From: debian:9
%environment
# We will install arnold to /opt/arnold
PATH=/opt/arnold/bin:$PATH
export PATH
# If you have a license server, you can set this
# -- https://support.solidangle.com/display/A5AILIC/Setting+solidangle_LICENSE+on+the+command+line
# solidangle_LICENSE=5053@server
# export solidangle_LICENSE
%post
apt-get update
# Required by Arnold
apt-get -y install python less libx11-6
%runscript
# Pass any options as kick CLI options
/opt/arnold/bin/kick "$@"
You can download the definition file with:
$ wget https://raw.githubusercontent.com/sylabs/examples/master/graphics/rendering/arnold/arnold.def
Build the base container like so:
$ sudo singularity build --sandbox arnold/ arnold.def
Start up a shell, in a ––writable sandbox container
$ sudo singularity shell --writable arnold/
Install Arnold to /opt/arnold …
> sh /tmp/MtoA-3.1.0.1-linux-2018.run
- Read through the License Agreement
- Type — accept — if accepted
- Enter — 2 — for the Install mode
- Enter — /opt/arnold — for the Install location
After completing the interactive installation procedure exit the container.
> exit
Download a sample file to your current working directory:
https://support.solidangle.com/display/A5ARP/.ass+File+Examples
We’ll use: cornell.ass
After downloading the file, move it to your current working directory (which should also be where your arnold/ sandbox container is located).
$ mv ~/Downloads/cornell.ass .
Run a quick test render (without render window):.
$ singularity run arnold/ -i cornell.ass -dw
Any option after the image (in this case arnold/), will be passed to the kick program.
Check output at: cornell.jpg
With the cornell.ass example, you will get output like:

Optionally you can also build a SIF image from the sandbox install.
Please note that this is not considered to be a best practice workflow. If you create a SIF image from an interactive sandbox session, the definition file that is saved in the SIF sandbox will not reflect all of the changes that have been made to the image. However, with Arnold there is no alternative but to install interactively.
$ sudo singularity build arnold.sif arnold/
Now, you can test again using the SIF file:
$ rm cornell.jpg
$ singularity run arnold.sif -i cornell.ass -dw
If you have a License for Arnold, you can set the value of solidangle_LICENSE in the %environment section of the Definition file, or by running Singularity and giving it the value to pass into the container:
$ SINGULARITYENV_solidangle_LICENSE=5053@server \
singularity run arnold.sif -i cornell.ass -dw
View the Arnold example repository at: https://github.com/sylabs/examples/tree/master/graphics/rendering/arnold
Join Our Mailing List
Recent Posts
Related Posts
Upgrade CentOS 7 to Alma 8 While Keeping SingularityCE Updated
Overview With CentOS 7 reaching end of life on June 30th, 2024 and CentOS 8 already discontinued in favor of CentOS Stream, users of open source SingularityCE might find themselves in a situation where a migration to another open source operating system is necessary....
Introducing CDI Support to SingularityCE 4.0
With the ever increasing adoption of AI techniques in scientific research, as well as growing use of accelerators for traditional numerical workloads, easy access to GPUs and other devices in HPC environments is critical.The 4.0 release of the SingularityCE container...
Transforming Alzheimer’s Research with Singularity Containers: A Milestone in Scientific Reproducibility
Addressing The Grand Challenges of Our Time Through Singularity Container TechnologyAt Sylabs, our mission and vision aren't just statements on a wall, they're an ethos we embody daily. We're committed to facilitating cutting-edge research that seeks to address...