How to vary density to create a custom shoe sole


How to drive density in a shoe sole based on a foot pressure jet map. 

Applies to:

  • Custom shoes and insoles


1. Set-up: To use the foot pressure data, you need a pressure map image of the data. The pressure map image needs to be converted into a Scalar Point Map in a CSV file type. The file should have the X, Y, Z, locations, and intensity. Converting this is beyond the scope of this tutorial, but it can be accomplished through Python or other programming languages. The image needs to be scaled to match the size of the shoe sole model. 

2. Create the Pressure Map:

    • Add an Import Scalar Point Map block, import the CSV file, and choose the proper units for the data. Nothing will show up after importing this.
    • Add the block Field from Point Map to create a field from the data.
      • Insert the Scalar Point Map variable and set Interpolation to Natural and Extrapolation to Nearest.

      • Press 'f' or go to View > Field Viewer to see the foot map.


3. Import the Shoe Sole Model: Use the Import Mesh block to bring in the Shoe Sole model. After importing, add a Remesh Surface block to clean up the mesh. It's best practice to always remesh imported meshes.

4. Create a Ramp to Modify the Geometry: Now that we have our Field Map and Shoe Sole imported, we need to link them together. In order to do this, we need to add a Ramp block. 

    • In the Real Field of the Ramp block input the Foot Pressure Map variable from Step 1. This will allow the Ramp to vary any value according to the Foot Pressure Map. For the In min and max values, the allowable range for the Jet Map is 0 - 255, with 0 being dark blue and 255 being dark red. In this tutorial, set the values to: 
      • In min: 14
      • In max: 200
    • The Out min and max values will be in mm, with the min being a larger number and the max being a smaller number. This will allow values closer to the dark red hue (higher pressure) to be smaller and denser, increasing the density where it is needed the most. Set the values to:
      • Out min: 5 mm
      • Out max: 2.5 mm


5. Vary the Density of the Surface Mesh based on the Field Map:

    • Add a Remesh Surface block.
      • Use the Remesh Sole as the Surface. 
      • Use the Ramp density modifier as the Edge Length (this will change the size of the triangles based on the field map values).
      • Set the Shape to Triangles.

6. Vary the density of the Volume Mesh: Add a Volume Mesh block and use the Ramp as the Edge Length and the Driven Remeshed Surface as the Domain. This will allow the entire volume mesh to vary based on the field values. 

7. Turn the Field Driven Volume Mesh into a Lattice: Add a Lattice from Volume Mesh block to turn the mesh into a lattice. 



And that’s it! You’ve successfully created a custom shoe sole. 

Are you still having issues? Contact the support team, and we’ll be happy to help!

Download the Example file:

More on this topic:


 ramp field lattice points field from point map driven density shoe sole edge length jet map custom csv point scalar pressure 
Was this article helpful?