Arnold Scatter - Arnold for Cinema4d
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The Arnold Scatter object allows you to distribute millions of instances over a selected surface in an efficient way. You can specify the density (number of points per unit of area) or a total number of points on the surface, use vertex maps, or any C4D shaders (e.g. Bitmap, Noise, Gradient, etc.) to control the distribution. You can also utilize the power of Cinema's Effectors to create complex animations.
Info: A video that shows how to use the Arnold Scatter object can be found here.
Arnold Scatter uses the position of the object's pivot to position the object.
Distribution
Surface
Instances are scattered over the specified polygon or spline surface. Multiple objects can be defined if they are grouped by a Null object. Object generators, such as Cloners, are also accepted.
Deformed spline objects are not supported.
Render Instances and Multi-Instances are not supported.
Volume surfaces are not supported.
Selection
You can limit instance distribution to vertices/edges/polygons defined by a Selection tag.
Distribution
Select from the following distribution methods:
- Vertex: Create an instance at each vertex of a mesh or each control point of a spline.
- Edge: Create instances over the edges of a mesh or sections of a spline.
- Polygon Center: Create an instance at the center of each polygon of a mesh or at the center of each spline segment.
- Surface: Create instances over the entire surface area or spline.
![]() |
![]() |
![]() |
![]() |
vertex | edge | polygon_center | surface |
Edge Distribution Settings
Points Per Edge
Specifies how many instances are created over each edge. Available only in edge distribution mode.
![]() |
![]() |
![]() |
1 | 2 | 4 |
Uniform Distribution
When enabled instances are uniformly distributed over each edge. Otherwise, the distribution is random. Available only in edge distribution mode.
![]() |
![]() |
Disabled (default) | Enabled |
Surface Distribution Settings
Mode
Select how to define the number of instances in Surface distribution mode.
- Adaptive: Number of instances is based on the area of the surface. The advantage of this method is to preserve the density of instances after scaling the surface.
- Point count: Specify the exact number of instances on the surface.
Density
Controls the density of instances over the surface in adaptive mode. 100% means 1 point per square unit. For instance 10000 instances over a 100x100 cm Plane.
![]() |
![]() |
![]() |
10% | 50% | 100% (default) |
Points per Square Unit
Controls how many instances are generated per surface area in adaptive mode. For instance, the default 1 cm setting means 1 point on each cm^2.
Max Points
This is an optional strict limit on the number of instances to be generated in adaptive mode, to avoid fatal accidents, like generating billions or trillions of instances on a huge surface unintentionally, resulting in possible out of memory error.
When the number of points generated based on the density settings exceeds the given Max Points value, a message is displayed on the UI.
Seed
Controls distribution variations in Surface and Edge modes.
![]() |
![]() |
1 (default) | 2 |
Filter
You can use any Cinema 4D shader (such as Bitmap, Noise, or Gradient) to control the density of instances in texture space via greyscale textures. Black spots mean no instances, white spots mean full density. The texture is used over the above distribution controls.
![]() |
![]() |
Shader texture | Objects scattered relative to shader texture |
Push Apart
When enabled instances are pushed away based on the selected criteria.
- Distance: Instances keep a minimum distance between them, regardless of the size of the instances.
- Bounds: This mode takes into account the actual size of the instances and prevents the instance bounds to collide.
![]() |
![]() |
![]() |
push apart off | distance (1000 cm) | bounds |
Custom shape size can be defined via the Arnold Scatter Bounds vector type user parameter.
Distance
The minimum distance between instances when Push Apart is enabled. Two instances (two scattered points on the surface) can not be closer than this value.
Intersection
Select the collision detection method in bounds mode.
- Box: Intersection between shape bounding boxes.
- Sphere: Sphere intersection, using the center of the shape and the size of its bounding box along the selected axis (X, Y or Z) as the radius.
![]() |
![]() |
box intersection | sphere intersection |
Scale
Allows you to move instances closer or further in bounds mode by scaling the bounds during collision detection.
Instances
Render
Choose where the instances are defined. You can select any object from the scene (custom shapes) or use the child objects as instances.
Shapes
You can use any shapes from the scene to render instances by selecting the shapes render mode and adding the shapes to this field.
Shape Order
If multiple shapes are instanced, this option specifies how shapes are assigned to instances.
- sequential: Generate instances one after the other in the defined order, as they appear in the Shapes field or child order. (shape 1, shape 2, shape 3, shape 1, shape 2, and so on)
- random: Generate instances in random shape order. The Random Seed value controls the variation.
- blend: All instances of shape 1 followed by all instances of shape 2, etc.
- first: Generate instances from the first shape only.
- effectors: Generate instances based on the shape offset value returned by the assigned Effectors. This value is controlled by the Modify Clone parameter in Effectors, such as the Plain Effector or Shader Effector. Shape offset is a value between 0 and 1, that defines the shape index as
number of shapes * shape offset
. For example, if the scatter object instantiates five shapes, the first shape is in offset range [0 - 0.2], the second shape is in range (0.2 - 0.4], and so on.
![]() |
![]() |
![]() |
![]() |
![]() |
sequential | random | blend | first | effector |
Effector example:
In the example below, the distribution of the shapes is affected by the shader effector (gradient).
![]() |
![]() |
Arnold Scatter Shape mode set to effectors. | Shader effector shader set to gradient |
Custom Distribution
By default shape instances are evenly distributed in random and blend modes. If enabled, a custom distribution can be specified.
Distribution
Defines the amount of each shape instance when instancing with multiple shapes in random and blend modes.
![]() |
![]() |
Different knot positions affect the distribution of instances
The knots of the widget define the distribution of shapes in order. For instance in the above example the first knot at 50% means that 50% of the instances will be Stone1 instances. The second knot at 80% means that 30% of the instances will be Stone2 instances. The remaining 20% will be Stone3 instances.
Alignment
Instances are aligned to scattered surface points so that the pivot point of the instanced shape is placed on the surface by default. This option allows you to define custom alignment based on the shape bounding box.
- off: No custom aligment. The shape pivot point is placed on the surface.
- bottom: The bottom center of the shape bounding box is placed on the surface.
- center: The center of the shape bounding box is placed on the surface.
- top: The top center of the shape bounding box is placed on the surface.
![]() |
![]() |
shape alignment turned off | shape aligment set to 'bottom' |
Shape Parameters
See the Geometry Parameters page for further details on common shape parameters.
Transform
Up Direction
Specifies the up vector (Y) of the instances. Possible options are:
- axis: Select the object space axis where the instances point to. For instance, +Y means the up vector of the surface.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
+X | -X | +Y | -Y | +Z | -Z |
- normal: Normal vector of the surface is used as the up vector of the instances.
- target: Instances point to a specified target object.
Front Direction
Specifies the direction (Z) where the instances look at. Possible options are:
- axis: Select the object space axis where the instances point to. For instance, +Z means the forward vector of the surface.
- camera: Instances point to the active scene camera.
- center: Instances point to the center of the surface.
- target: Instances point to a specified target object.
![]() |
![]() |
![]() |
![]() |
axis | camera | center | target |
Position / Scale / Rotation
These settings allow you to add an offset or random variation to the position, scale, and rotation of the instances.
Shader
Use any Cinema 4D shader to control the offset in texture space. The grayscale texture acts as a multiplier over the specified offset.
Variation
Randomize the offset over the instances. 0% means no random variation, 100% means randomization in the full offset range.
Viewport
Mode
Controls how the instances are displayed in the viewport.
- Off: Display is turned off.
- Dots: The scattered points are displayed as dots in the viewport.
- Axes: The X, Y, Z axes of each instance are displayed giving you the sense of the orientation of the instances. You can control the length of the axes via the Axis Size parameter.
- Bounding Box: Display the bounding box of each instance.
- Wireframe: Display a wireframe of each instance.
- Shader: Display each instance as shaded mesh.
![]() |
![]() |
![]() |
![]() |
![]() |
dots | axes | bounding_box | wireframe | shaded |
LOD
Controls how many instances are displayed in the viewport by reducing the number of instances to the given percentage.
Display Color
Scattered instances are displayed with the selected color in the viewport.
- Object: Show the Display Color defined by this Arnold Scatter object.
- Shape: Show the Display Color defined by the source shape.
- Instance: Show the Display Color of the instance. This is the final color you see in the render via a
user_data_rgb
shader, defined by Effectors or the source shape if no effectors are assigned.
Effectors
Specify the list of Effectors used to alternate the transformation and color of the instances.
![]() |
![]() |
Step effector used to change size of scattered instances