Weave - List, Points, Alternate

I wan’t sure what to call this topic, but I am focusing on the horizontal curves (wefts) of this particular weave. So far I have it broken down into vertical and horizontal curves, but I would like to alternate the horizontal curves as per attached image (I colored it in photoshop). I am trying to take green or red color geometry and translate it along the plane or even change its sweep to a different profile.

weave - Color Alternate.dyn (148.4 KB)

Flat Plane.rfa (432 KB)

I got the horizontal rows to alternate, but now it’s double curving for me.
clouded area is my take at it. Can anyone suggest how to fix it?

weave - Color Alternate.dyn (219.9 KB)

@mkom Sometimes it’s easier with code

weave.dyn (17.2 KB)

p1 = Point.ByCoordinates((-w/2..w/2..ws)<1>,0,(0..h..hs)<2>);
p2 = List.TakeEveryNthItem(p1,2,(1..0));
p3 = List.TakeEveryNthItem(p2<1><2>,2,(1..0));
p4 = List.Transpose(p3<1><2>.Translate(Vector.YAxis(),([[d1,-d1],[-d2,d2]])<1>));
p5 = List.Clean(List.Flatten(List.Transpose((p4<1>)<1><2>)<1><2>,-1),false);
c1 = NurbsCurve.ByPoints(List.Transpose(List.Flatten(p5,1)));
c2 = Circle.ByPlaneRadius(c1.PlaneAtParameter(0),r);
s1 = List.Clean(List.Transpose(List.Chop(Solid.BySweep (c2,c1),2)),false);
s2 = GeometryColor.ByGeometryColor(s1,Color.ByARGB(255,255,[255,128],[102,0]));

Thank you Vikram - you make it look so easy
I was able to do the same but using nodes. :exploding_head:

Weave - with nodes.dyn (254.6 KB)