Arnold Scene Source (.ass) is Arnold's native scene definition format, stored in human-readable, editable ASCII files that can later be rendered outside of CINEMA 4D with kick (a multi-platform, command-line utility) or used for rendering via procedurals. Beside ASS files Arnold offers writing scenes to  Universal Scene Description (USD) format.

Scene Export Dialog

C4DtoA lets you save scenes to ASS or USD files. The scene export dialog can be accessed from the Arnold > Scene Export menu.

The dialog shows Arnold related options and frame settings described below.


The path where the archive (.ass, .usd, .usda, .usdc) will be saved to. A padding pattern (####) can be used to save a file sequence (animation). If padding is not specified, .#### is added to the file name automatically. For example /path/to/test.ass will produce /path/to/test.0000.ass, /path/to/test.0001.ass, /path/to/test.0002.ass and so on.


File format, e.g. ASS or USD.


Set to Scene to export the whole scene, or set to Procedural to export only the selected meshes to be loaded in an Arnold Procedural (stand-in).


Defines the objects to be exported:

Export Object Hierarchy  

Exports the whole hierarchy of the selected objects (instead of manually selecting all children). 

Replace With Arnold Procedural 

Available in Procedural mode. When enabled the exported objects are replaced with an Arnold Procedural object pointing to the exported file. 

Absolute Paths  

When enabled all paths are exported as absolute paths, even if they are defined as relative in the scene.


ASS format specific settings.

Gzip Compression (.ass.gz)

Exports the scene directly to gzip-compressed files with the .ass.gz extension. You can expect compression rates in the 4-5x range (compared to full ASCII form, obviously there will be a lower compression ratio if the binary encoding option is being used).

Binary Encoding

Specify whether binary encoding is used to compress large arrays (bigger than 16) containing float in their components. They are encoded into a more compact ASCII representation (b85), leading to smaller files and faster load times, whilst still being mostly human-readable.  In addition, the binary encoding has exact 32-bit precision, whereas without this binary output floating point values are truncated into at most 8 ASCII digits (e.g. 1234.5678). The encoded arrays are indicated by prefixing the array type with "b85" as in the example below. POINT2, POINT, and VECTOR arrays are encoded. 16 float



name mymesh

nsides 54 1 UINT  3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

 4 4 4 4 4 3 3 3 3 3 3 3 3 3

vlist 47 1 b85POINT

 LJ4iv4THCEE/NV4/1nPCvhpuBkEMk10/LJ4iv2uf+kDVzHI/36OGvhkc/kD9+Fs/LGenvtmU8EDqJVo/l1cGv+Ij50D1 ...

Expand procedurals

Internally, Arnold creates shape nodes from procedural nodes (usually on demand). 'Expand procedurals' expands the nodes before doing the Ass export. Therefore when saving .ass file you will get all of the nodes that have been created by the procedural.


Specifies which of the following node types are included in the ASS export:


Frame range

Specifies the range of frames to be exported:

Frame start

Specifies the start frame of the sequence to be exported in custom mode.

Frame end

Specifies the end frame of the sequence to be exported in custom mode.

Frame step

The increment between the frames to be exported in custom mode.

Currently animation can not be written to a single USD file, a different file is created for each frame.


Writes the file(s) to the disc.

Scene Export from command line


Scene Export from python