22 October 2026
Arnold 7.5.4.0 is a feature release that includes a new Shader Imager for interactive compositing, a faster and more responsive accelerated viewport, the ability to pause and resume renders, a new Rim Light shader, faster scene updates for deforming meshes and GPU renders, and more.
Arnold 7.5.4.0 includes a Tech Preview of Flow Render, an Arnold cloud-rendering solution. We are providing 2400 minutes (per user, per month) of rendering time to Arnold users for testing and evaluating the service. Please report any feedback or issues in the Arnold feedback forums.
In this release, Flow Render adds support for custom OCIO configs, UDIM tile tokens in texture filenames, and a per-frame render time limit.
See the Flow Render Tech Preview documentation for more information.
![]() |
![]() |
| Different OSL-authored styles applied to the same render via the Shader Imager | Painterly brush strokes applied to a portrait render via the Shader Imager |
light_samples > 0), Arnold previously used a single light sample per shading point on indirect (secondary) bounces. The new light_samples_indirect option lets you increase the number of indirect lighting samples to reduce noise in scenes with many lights, at the cost of additional sampling. The default is 1, matching the previous behavior. (ARNOLD-17084)![]() |
Indirect passes brightened +2 EV. Left of each diagonal: light_samples_indirect=1; right: light_samples_indirect=16. |
The accelerated viewport (the direct_outputs mode introduced in 7.5.3.0) is now more responsive while you navigate. It keeps the image cleaner as the camera moves and works with more of your setup, including CPU rendering, more AOV types, and kick. The result is lower latency between moving the camera and seeing a useful rendered image, so you can stay in the viewport while you light and do look development. (ARNOLD-18151)
direct_outputs_max_linear_factor (default 1, up to 6) lets the resolution drop during navigation. The default of 1 does not change the resolution.direct_outputs_ndoteye (off, auto, or always; default off) controls the low quality "fast preview".![]() |
Accelerated viewport (GPU) in real time with direct_outputs_max_linear_factor 4: the resolution drops while the camera moves and returns to full resolution once it stops. |
![]() |
| Accelerated viewport (GPU) while orbiting the camera, first image after each camera move. Left: Arnold 7.5.3.4; right: Arnold 7.5.4.0. |
AiGetRenderOutput() (which now works on CPU too) now have values on every pixel from the first pass after a camera move, so plugins can draw wireframes and overlays against the depth buffer while you navigate. Note that a small depth offset may be needed when consuming the Z-AOV to avoid Z-fighting. Kick also supports the accelerated viewport mode, although color management is not yet supported there. (ARNOLD-18154, ARNOLD-18214, ARNOLD-17853, ARNOLD-18133)Stop a render after a fixed amount of time: The new max_render_seconds option stops a batch render once it has run for about that many seconds and writes out the image reached so far. When enabled, the render uses the progressive sampler to always produce a complete frame. The default is 0, which disables the time limit. Interactive sessions currently ignore the setting. (ARNOLD-18340)
Pause and resume rendering: Within a session, Arnold can now pause a render in place, and resume it later without losing previously rendered work. (In the kick interactive render view, press P to toggle pause and resume) (ARNOLD-11048)

![]() |
![]() |
Renamed the specular shader's specular_weight parameter to reflectivity: The specular_weight parameter of the specular BSDF node is now called reflectivity, which describes better what it does: it multiplies the dielectric Fresnel reflectivity without affecting refraction. The old name is still accepted as a synonym, so existing scenes keep working. (ARNOLD-18136)
Detect Arnold from OSL shaders: OSL shaders can now call getattribute("renderer:name", ...) and getattribute("renderer:version", ...) to check whether they are running in Arnold, and in which version. This lets you write shaders that use Arnold-specific behavior and still work in other renderers. (ARNOLD-18066)
Noice denoiser: --filter_strength now behaves consistently across all rendering filters, instead of requiring a different optimal value per filter as before. The recommended range is 0.6 to 0.8, depending on your preference for the detail/noise tradeoff. The default has increased from 0.45 to 0.6. (ARNOLD-18168)
Automatic configuration of variance_filter parameters: The variance_filter, used by the Arnold Denoiser (Noice), has parameters width and filter_weights that need to match the filter settings of the corresponding AOV. Incorrectly setting this will hurt denoiser quality. Arnold now sets the width and filter_weights automatically, so you can ignore them. Using them will trigger a deprecation warning. A future version of Arnold will remove these now unused parameters. (ARNOLD-17982)
Faster GPU scene updates: GPU renders of scenes with many objects or instances now start sooner and react faster to interactive edits, such as moving objects or adding, removing, or changing instances. In scenes with many instances, the GPU acceleration structures also use less memory. (ARNOLD-17900, ARNOLD-18140, ARNOLD-18160, ARNOLD-18179, ARNOLD-18376, ARNOLD-18380, ARNOLD-18384) For example,
Warning when the GPU is out of video memory: On Windows, Arnold now warns you when a GPU render is close to exceeding the GPU memory budget provided by the operating system. When GPU memory goes over budget, GPU renders become very slow, followed by possible crashes and hangs. (ARNOLD-17693)
Better accounting of GPU memory in stats: Previously unaccounted-for GPU memory is now reported in the stats as compute stacks. This is the GPU memory allocated by each GPU thread to do its computation. This memory increases with the number of GPU cores, not with scene complexity, and is usually a few GBs in size. (ARNOLD-17310)
Faster updates when deforming meshes: When a mesh deforms in an interactive session, such as when animating or sculpting, Arnold can now process it faster. (ARNOLD-18289, ARNOLD-18321, ARNOLD-18544). For example:
Faster motion blur with varying motion keys: Arnold now renders scenes more efficiently when objects have different numbers of motion keys or different motion_start and motion_end values. Previously, these differences could cause significant slowdowns. In a test scene with 39k moving objects, render time dropped from 3.76s to 0.28s (13.4x faster) when 90% of objects had 5 keys and 10% had 2. Another scene with 30 different motion time ranges and 1–9 keys per object improved from 1.37s to 0.31s (4.4x faster). This optimization increases acceleration structure memory usage based on the maximum number of motion keys per object. Performance and memory usage remain unchanged for scenes where objects already use consistent motion keys. (ARNOLD-6597)
Faster light importance map calculation: Quad light importance maps are now multithreaded and significantly faster. For example, a 4096x4096 quad light map went from 3.7s to 0.12s. Skydome light importance maps are now built before rendering starts, and are up to 2x faster with 32 or more threads. Rendered results and memory use are unchanged. (ARNOLD-18155)
Faster BVH builds for objects with invalid geometry: Some objects contain primitives that are invalid or have unusable bounds, such as NaN or infinite vertex positions, or points with a negative radius. Building the BVH for these objects used to include a pass over every one of their primitives that ran on a single thread. That pass has been removed, so these objects no longer slow BVH builds down on machines with many cores. In a stress test with a 387-million-primitive object on a 24-core machine, this step went from 2.1s to under a millisecond. (ARNOLD-16616)
Optimized dependency graph: The Arnold dependency graph used in interactive sessions is now more efficient and uses about half as much memory. For example, in a test scene with 1 million dependencies between nodes, each dependency now uses 203 bytes instead of 405 bytes. (ARNOLD-16102)
Parallelized nodes destruction: When the Arnold universe is deleted, the nodes are now deleted in parallel, making the shutdown time faster. The USD Caldera scene is now 3.6x faster at render shutdown. (ARNOLD-16156)
Shaders support in the dependency graph: The shading trees are now properly handled by the node dependency graph. Shaders can now be deleted during interactive renders without requiring additional process on the plugin side. (ARNOLD-7064)
![]() |
![]() |
| Beauty | roughness AOV |
Thanks to Alex Mateo for the use of the Salita scene.
Gaussian splat export via viewport proxy: The viewport proxy now exposes Gaussian splat data (gs_sh, gs_input_color_space, gs_opacity, gs_scale, gs_rotation), so plugins can read 3DGS point clouds through the Arnold PLY reader instead of implementing their own. (ARNOLD-17834, ARNOLD-18269)
More detailed timing stats: Scene creation time now has two subsections: scene setup and scene load (this is for all scene formats, not just ASS scenes). In the general frame time, a new render setup time was added, which covers one-time setup (both CPU and GPU) and has a separate gpu context creation subsection for GPU. Finally, light-tree building is now correctly accounted for and included in light-accel building. (ARNOLD-16395)
Alembic procedural is now a built-in node: The alembic node is included in Arnold and is not a separate library in the plugins subdirectory. (ARNOLD-18288)
Updated DLSS: The DLSS library used by the accelerated viewport is upgraded to version 310.9.1, which includes the newer DLSS 4.5 Ray Reconstruction model. (ARNOLD-18263)
Update network licensing: The Autodesk network licensing library is updated to version 3.4.0.4. (ARNOLD-18220)
Custom OCIO config support: Custom OCIO configs are now supported when submitting scenes to Flow Render. (ARNOLD-17134)
Tile token support: The <utile> and <vtile> tokens are now supported in texture filenames. (ARNOLD-18206)
Frame time limit: Flow Render submitters have a new per-frame render time limit. A frame stops rendering when it reaches the time limit, and writes out the image rendered so far. The result is a complete image that is noisier than a fully rendered one. This is useful when shots have to be delivered by a certain time. (ARNOLD-18416)
Render pause in Hydra: The Arnold render delegate now supports pausing usd#2719
Accelerated Rendering: A new render setting "accelerated_rendering" allows to provide fast viewport updates (GPU-only) usd#2652
Support points grids in Volumes: When a Volume primitive loads a VDB file having points grids, these grids are then rendered as points in Arnold usd#2740
CoordSys support in Hydra: Arnold now resolves the USD UsdShadeCoordSysAPI, so named coordinate systems can be bound to a prim and referenced by the Space parameter of MaterialX shaders such as MtlX Position. See Material X for an example. (ARNOLD-18248) usd#32
Per-render var EXR compression: EXR compression can now be set separately for each render var (AOV) with the arnold:driver_exr:compression attribute. The compression set on the render product is still used as a fallback. usd#2742 usd#2731
UV camera ray direction and origin in Hydra: The ray_direction and ray_origin inputs of the uv_camera are now supported in Hydra, which fixes cage handling when baking textures in Solaris. usd#2710
Sequence rendering with Hydra 2 render settings: Sequences now render correctly when the render settings change during the sequence. The render is interrupted before the render settings are updated, and existing Arnold nodes are reused instead of being recreated. usd#2754
Interactive updates for shader imagers: When an imager shader, or a shading tree connected to it, is modified interactively, only the imager pass is updated instead of the whole render being restarted. usd#2758
Mesh geometry deduplication in Hydra: The render delegate now finds identical meshes and curves and renders them as instances of one shared node. This reduces memory use and BVH build time in scenes with repeated assets, such as point instancer prototypes. For example, a production Houdini scene with many point instancers and repeated prototypes now uses 15 GB of memory instead of 50 GB. The HDARNOLD_GEOM_DEDUP environment variable sets the mode: 0 (no deduplication), 1 (point instancer prototypes only; the default), or 2 (all duplicate geometry). usd#2749
Turntable render settings: The turntable command now uses the render settings already in the scene instead of creating new ones with default values. A new option lets you choose a specific render settings prim. usd#2769
Arnold logs in Houdini: Arnold log messages can now be forwarded to the Houdini logger. usd#2775
Render pause API: New AiRenderPause() and AiRenderIsPaused() functions let a host pause a running render without losing progress, then resume it with the existing AiRenderResume(). AiRenderGetStatus() continues to report AI_RENDER_STATUS_RENDERING while a render is paused. Call AiRenderIsPaused() to check the pause state. (ARNOLD-11048)
Imager interrupt and resume APIs: When an imager or a shader under its graph is modified interactively, the imager passes should be interrupted using AiImagerInterrupt(). This interrupts only the imager passes, not the render itself. Once the imagers and its shaders have been modified, they can be resumed with AiImagerResume(), which replaces the previous request_imager_update render hint. (ARNOLD-11648)
Detect shaders used only by imagers: New AiShaderInImagerTree() function tells a host application whether a shader is used only by an Imager Shader. The host can call it on each shader edit during an interactive session, because it is fast enough to call every time. If it returns true, the host can make the edit between AiImagerInterrupt() and AiImagerResume() instead of interrupting the render. (ARNOLD-18297)
OSL screen coordinates: OSL shaders evaluated by the Imager Shader can read the screen position of the current pixel, in the 0–1 range, with two new attributes. getattribute("screen_uv", ...) has v = 0 at the bottom of the image, matching Arnold's convention and the Imager Shader's Screen UV mode. getattribute("screen_st", ...) has t = 0 at the top of the image, matching OSL's texture convention, so you can pass it to texture() without flipping. Both return screen-space derivatives, so texture() lookups are filtered correctly. See OSL Shaders. (ARNOLD-18419)
Volume grid type API: New AiVolumeFileGetChannelTypes() function lets you check whether a vdb grid is a volume channel or a points grid. (ARNOLD-18209)
AiGetRenderOutput() output properties: AiGetRenderOutput() takes a new optional AtRenderOutputProperties argument that sets how an AOV is written into the destination. This lets hosts copy directly into their own buffers without an extra conversion pass. destination_row_pitch lets the render region be copied into a CPU buffer wider than itself, such as a mapped viewport framebuffer. half_float converts the AOV to 16-bit half float on the GPU before a CPU transfer, which halves both the destination size and the amount of data copied. alpha_mode writes the alpha as is, inverted, or as a constant alpha_value, for example 1.0 for an opaque result. The defaults keep the existing behavior, so existing code compiles without changes, but it must be recompiled (see below). (ARNOLD-18283, ARNOLD-18284, ARNOLD-18285)
AiGetRenderOutput() requires recompiling: Adding the AtRenderOutputProperties argument changed the binary interface of AiGetRenderOutput(). Plugins and applications built against Arnold 7.5.3 that call AiGetRenderOutput() must be recompiled against the 7.5.4 headers. No source changes are needed. Binaries that are not recompiled still load, but their calls to AiGetRenderOutput() may crash or write incorrect data. Plugins and applications that do not call AiGetRenderOutput() are not affected. (ARNOLD-18283)