We use cookies on this website. By using this site, you agree that we may store and access cookies on your device. Find out more and set your preferences here.

Arnold is a fast, memory efficient and scalable physically-based raytracer. Its aim is to simplify the pipeline of VFX and animation companies with a reduced set of user interface elements, and by promoting a single pass approach removing all the associated storage and management costs.

Fur & Hair

An efficient raytraced curve primitive makes Arnold the perfect choice for rendering fur and hair using very little memory. Its hair shader has double offset speculars, transmission and is specifically designed to reduce flickering of thin hairs.

Motion blur

Accurate 3D motion blur correctly interacts with shadows, volumes, indirect lighting, reflection or refraction. Deformation motion blur is extremely efficient and works for polygons, hairs and particles. Rotational motion describes precise circular arcs.

Sub-surface scattering

Our raytracing-based sub-surface scattering approach makes tuning point clouds a thing of the past. It's easy to use, requires no additional memory, supports motion-blurred lighting, interactive lighting and its performance scales optimally as more CPU threads are used.

Volumes

The volumetric rendering system is based on proprietary importance sampling algorithms and can render effects such as smoke, clouds, fog, pyroclastic flow or fire. Volumes interact with direct and indirect lighting from arbitrary area light sources. Supports OpenVDB and MayaFluids.

Flexibility and extensibility

Thanks to an easy to use C++ API with Python bindings, TDs and programmers can integrate Arnold in external applications, and create custom shaders, cameras, light filters and output drivers. Arnold has been integrated into many apps, both commercial and proprietary.

Scalability

Arnold is carefully multi-threaded and makes optimal use of all available CPU threads. Even for traditionally single-threaded operations such as loading of procedural geometry, displacement or ray accel construction. Hyper-threading provides a solid 20% speedup.

Instances

Arnold can efficiently raytrace instances of any scene object with transformation and material overrides. It is easy to create thousands or even millions of instances resulting in trillions of renderable primitives, which is great for vegetation, large environments and FX.

Memory efficient

Thanks to Arnold's compact and highly optimized data structures, you can render scenes with hundreds of millions of unique primitives quickly and with a much lower memory footprint than is possible with other renderers.

Deferred geometry loading

Geometry can be created on demand through "procedural" nodes (or stand-ins) rather than upfront. This allows the modular assembly of scenes. Procedural nodes can point to ASS, OBJ, PLY and DLL/DSO files, opening the door to programmatic scene creation and compositing.

Subdivision and displacement

Arnold supports Catmull-Clark subdivision surfaces. Subdivided vertices are then vector-displaced through arbitrary shader networks. High frequencies can be automatically captured as bump map, reducing the need for excessive subdivision.

Arbitrary Output Variables (AOVs)

Arnold can render any number of AOVs or passes for compositing purposes, including normal, Z-depth, position and ID masks. It also supports deep image data. Shaders can create their own custom outputs (such as direct and indirect diffuse, specular, SSS, etc).

Standalone command-line renderer

Arnold has a native scene description format stored in human-readable text files (Arnold Scene Source, or .ass). These files are easily edited, can be read and written with the C/Python API, can be lazily loaded at render time, or can be fed to the command-line renderer, kick.