Is there a way I can separate the vertices on the the segments evenly without moving the end points? I would like for the vertices to maintain the current curve.


4 Answers 4


As far as I know there is currently no way to do what you ask in Blender. There currently is no tool to evenly place existing vertex long a curve.

This is now trivial to achieve using geometry nodes in recent versions of Blender 3.0+, otherwise read below for workarounds.

If you already have a curve with the desired shape and wish to add additional vertex you can use the Subdivide operator under the Specials Menu W key. This will evenly subdivide currently selected segments and place vertex along its length at regular intervals while trying to maintain the shape as best as possible.

One workaround you might use is using an array modifier on a mesh to reconstruct you curve.

  1. Create a new mesh
  2. Erase everything but one single edge
  3. Place one of it's vertex on the object's origin so that the edge starts at local coordinates 0,0,0 and extends horizontally in X
  4. Align that object with your curve (same object coordinates and same rotation)
  5. Add an array modifier to the new mesh and set it to Fit Curve mode
  6. Pick your curve as length object and turn on option Merge in the array modifier
  7. Now add a Curve Modifier to the mesh and set it to use your same curve
  8. You should now have a mesh with the same shape as your curve and evenly spaced vertex.
  9. Adjust your mesh edge length to fit your desired level of detail or vertex spacing
  10. Convert your mesh to a curve with Alt+C > Curve from mesh
  11. Enter edit mode on newly created curve and set it's type to Bezier (Tool Shelf > Tools > Set Spline Type button)
  12. Set it's handle types to Auto for smoothest results with the V menu Set handle type > Automatic

Hope this helps


For Future reference I found another method that may work for individual curve segments.

If your curve only has one segment, select both end points, then use the Subdivide operator and select the number of desired subdivisions, from the operator options panel.

Curve Subdivide


For what it's worth, an alternative approach:

  1. Convert curve to mesh
  2. Extrude it so it's a surface: (name: curve_mesh)
  3. Make a plane (name: tracing_geo), keep just one edge
  4. Place first and last vertex on begin and end of mesh (curve_mesh)
  5. Add a Subdivision Modifier to evenly increase vertices
  6. Add a Shrinkwrap Modifier and stick it to curve_mesh

As desired you can add more vertices nondestructively. You could even do a bit of modelling with a few vertices.

This works well if you need to create many shapes with evenly spaced vertices.


Few steps to follow

  1. Draw the curve as needed

  2. Convert the curve to mesh

  3. Activate loop tool addon (inbuild in Blender in all versions)

  4. Right-click on the curve and select space

  5. Convert the mesh to a curve

  6. Convert the curve to bezier

A small video that can help you link is below.



You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .