Is there a method to shift vertices along an edge loop while maintaining their spacing?

In my scenario, I have a horizonal edge loop with equally spaced vertices along it. I am seeking a way to shift the vertices around the loop path where they maintain their spacing.

In this cube example, I manually moved each vertex to achieve the effect I am looking for:

Original Cube

This resulting cube maintains the original vertex spacing but has been shifted over by an increment or two, retaining its cubic form:

Shifted Cube

My goal is to maintain the original shape but skew the vertical edge loop paths to create interesting patterns on the surface of my mesh.

Scaled Vertical Edge Loops and Subsurface

I have tried using the “Simple Deform” modifier to twist my mesh but since I’m not working with a circular shape it doesn’t produced the desired result. I’m currently exploring geometry node operations in hopes of finding a more straightforward solution. Any advice or suggestions would be greatly appreciated.

First off, welcome to the community, @Sebastian_Young! I think I know a way to achieve what you’re trying to do. It is through an operation called Edge Slide (manual page: https://docs.blender.org/manual/en/latest/modeling/meshes/editing/edge/edge_slide.html#edge-slide).

You’ll need to be in Edge Mode during Edit Mode by pressing 2 on the top row keys - not the NUMPAD 2. Once there, you’ll select the edges, not the vertices, you want to slide, and activate the Edge Slide option from the Edge > Edge Slide Menu.

Give it a shot and let us know if that does what you’re trying to do!

1 Like

Hi and thank you!

I gave the Edge Loop operation a shot but unfortunately it doesn’t perform the action I’m aiming for. The vertices seem to slide along their vertical edges but I am aiming to move them along the horizontal edge they all share.

One potential solution I have found since posting that would produce a similar result is to use “bridge edge loops” and increment the twist value so the vertical edges pair with an above vertex that may be clockwise/counter-clockwise to it rather than directly above

1 Like

Try vertex slide instead of edge slide

Why do you not just turn on the Move Gizmo in the Gizmo overlay dropdown?
Move Gizmo
Then you select and drag along the Axes of choice.

Beyond that, you can add a custom Transformation Orientation by selecting a face (not edge or vertex) and adding the new option.
Necessary for when the mesh is not nicely aligned to the XYZ Axes…

The vertex slide seems really close yet not all the vertices seem to maintain their spacing and randomness is introduced at certain points

You might just do not use a cube… because you want to “rotate around a cube”… just start with a cylinder… and “cubid” it… :wink:

1 Like

Vertex slide is screen-space, it takes the position of your mouse pointer relative to the active vertex and uses that direction vector to slide every vertex. In your case you want a different direction for each vertex so it won’t work.

One way could be using simulation nodes, by checking each vertex neighbours, pick the one that’s on the same height as the current one, and match positions. But that’s a bit convoluted.

Maybe array is a solution for you, it will maintain the requirements:


array.blend (100.3 KB)