How to generate surface roughness


If you're trying to use nTop to generate surface textures, this how-to example explains a high-performing and scalable workflow that applies to any object. Developing a unique texture can be non-intuitive initially, but once mastered, it can become the ultimate creativity tool in your arsenal.

This tutorial utilizes "procedural texturing" to generate a surface roughness using a mathematical process or algorithm, a method that is advantageous over the manual modeling of surface features.

Adding surface roughness is perhaps the most straightforward procedural texture and a foundation for more elaborate techniques such as applying Leather, Wood, or Marble textures.

Applies to:

  • nTop
  • Surface Texture
  • Implicit Modeling
  • Field-Driven Design


  1. Import a CAD part and convert it to an Implicit body.
  2. Add a Simplex Noise 3D block to the Notebook.
  3. Select the block and go to View > Field Viewer.
  4. Toggle Probe Values and examine the field. You will see values ranging from -1 to 1.
  5. Edit the values of the Simplex Noise 3D block and note how changes impact the results. The random seed is an integer used to create varying patterns. The frequency value affects the coarseness of the noise results.


  1. Assigning length units allows us to adjust the texture to fit any part. We perform this step by adding the Multiply block to the Notebook and multiplying the Simplex Noise 3D block by 1 mm.
  2. Add an Offset Body block to the Notebook. Offset the Implicit Body by the noise with units.


And that's it! You've successfully generated surface roughness that conforms to a CAD part. As a next step, try adjusting these values or applying this texture to new CAD parts.

Download the Example file:

More on this topic:

  • How to create a varying surface roughness

  • How to create a leather texture

  • How to create a wood texture


 surface texture roughness how-to noise 
Was this article helpful?