# 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:

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

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.

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.

Edit: Here are the cubes with index labeling to better demonstrate the transformation the vertices are performing.

One solution I found 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

This is the shape I intend to perform the desired actions on. However the final version may be a stack of 300 edge loops

• To clarify your need: it seems to me that you are not shifting vertices, because these remain at the same position. It looks more like if you change the edges connecting these vertices. If so, could we assume that in the original mesh, the edges to change are aligned with Z-axis ? Commented Feb 10 at 21:27
• @StefLAncien Within a single, horizontal loop, he shifts each vertex to the position of the next vertex on that loop. It would be more readable if the screenshots showed vertex indices (which do move) Commented Feb 10 at 22:12
• @MarkusvonBroady That correct, I've gone ahead and added some more detailed images exposing those indices for better context. Commented Feb 10 at 22:55
• @StefLAncien One solution I have found since posting, uses the twist parameter when applying a Bridge Edge Loop. In that case the vertices remain in their original position and the edges transform. I'm experimenting to see if that will give me the desired result on more complex geometries Commented Feb 10 at 22:55
• The cube is an example, but you're interested in an algorithm that works for other meshes? I ask, because a simple solution would be to e.g. use 4 switch statements based on normal to determine the offset. But what if you want to do it e.g. on a cylinder? No longer works. A horizontal loop can be extracted, converted to curve, and the next point on the curve can be found. But what if the cylinder is rotated? So if you're not fine with an overfitted solution, maybe add another example? Commented Feb 10 at 23:07