Birth Surface operator

The Birth Surface operator can be used to birth new particles on specific input mesh features, such as vertices, face centers, etc.

Instead of scattering particles randomly on surface features, particles will be sequentially birthed on surface features in the order that the features are indexed. For example, when birthing particles on surface vertices, particle 1 will birth at the location of vertex 1, particle 2 will birth at the location of vertex 2, etc.


  • Object list: the list of input objects whose surfaces will be used to birth particles.

Particle birth

  • Surface feature type: the surface feature on which particles will be birthed.

  • Start/End: controls the time range in which to birth new particles.

  • Enable every nth: when enabled, particles will be birthed at regular frame intervals, instead of at every frame.

  • Nth value: the interval value at which to birth particles.

  • Split elements: controls whether the internal spawn parent value of particles will be incremented depending on which element of a surface the particle is birthed on.

When a particle is birthed on a surface, its internal spawn parent value is set to the index of that surface in the object list, relative to the starting birthID of particles in the event. This means that all particles on the same surface are considered siblings of each other. Their sibling relationship can have an effect on whether they will consider each other binding candidates, among other things.

Sometimes you may not want all particles birthed on surface features to be siblings with each other. For example, if your input object is a shape with multiple spline sub-elements, you would not want particles birthed on separate sub-elements to be siblings of each other. By enabling “split elements”, the spawn parent value of birthed particles will not only be incremented for each object in the input list, but also for each sub element of each object. This will create proper sibling relationships between particles birthed on sub-elements of input surfaces, and make it easier to do things like convert input sub-element splines into separate constraint networks.

  • Emit on substeps: controls whether particles will be birthed on sub steps of the simulation, or only on whole frames.

  • Inherit matID: controls whether the material ID property of the underlying surface will be copied to the appropriate particle data channel.


Particle location
  • Edge center: when enabled, particles will be generated on edge centers.

  • Edge vertex: when enabled, particles will be generated on the first vertex of edges.

  • Align to edge: when enabled, the Z-axis of particles will be aligned to the vector between edge vertices.

  • Scale to edge length: when enabled, the Z-axis of particles will be scaled to the length between edge vertices.

Birth index tracking

  • Save birth index: controls whether the 0-based index of the surface in the input object list that a particle was birthed on is saved to a the particle’s custom data channel.

The birth index value will be affected by whether or not “split elements” is enabled.

  • Channel: sets the data channel the birth index will be saved to.