Geometry: How to spread stuff into a tube-like shape? (Use of 'select'?)

Hi, I’m in the process of trying to at least get a basic understanding of what’s happenning in all that nice stuff you people are doing like deine-lieblingsgestalter-17 or partitura-001 and I’m stuck with a possibly simple problem, but I can’t seem to figure out how to - for instance - have some splines form a tube. I’m playing with Circular Spreads but all I ever get is rings and spirals instead of long strands.

Attached a most simple patch which should illustrate the problem. Obviously I’m missing something fundamental here, but… yeah, what?

Thanks in advance,

CircularSpreadOrWhat.v4p (10.0 kB)

Hello there

I’m new to vvvv as well (only started learning this saturday) but I threw together a patch that could possibly do what you want.
I doubt it’s the most efficient way and hope some of the more experienced users will pitch in to help you out :) But for now, I hope it helps.


cylinder/tube made out of objects in spreads (16.3 kB)

Well, this adds “Resample” to the list of nodes to never forget about :)

It’s a bit more complicated I’m afraid. So complicated that I wasn’t able to formulate a proper question and was asking for some input to a question for a half-arsed workaround;) So disregard my awkward example. Here’s the actual one:

(see attached patch)

I mean, I understand what happens if I just try to take the vertices of the cylinder and apply them to a line or spline. What I do not understand or know are the strategies to, for instance, get rid of the vertex points at the cylinder’s caps or how to seperate the line into just the circles without the connections and - back to the original question - how to tell vvvv that I’m not interested in the circles but rather in drawing a line through the red spheres. I guess I could make this stuff work somehow through a battalion of getslice/setslice/withAccordingBinsize, but I’m pretty sure there must be something crucial (method/node) I’m unaware of…

Any hints?

Hm - Hmhmhmhm.v4p (43.2 kB)

Hello again

apparently cylinder isn’t really a geometrical cylinder after all - it’s just a bent plane so you could have the cycles function (half circle cylinder and the like). So, knowing this little “secret” now we are aware that one of the vertical lines will have a double (beginning and end of the plane), as well as cap vertexes (no matter if you hide them or not).


  • Cap vertexes are stored in vertex buffer addresses 0 and 1;
  • The “column” count will be bigger than what you set your cylinder to be.

Knowing all that you can come up with simple mathematical solution:
index = row * (column_count + 1) + 2 + column
I hope I got it right :D

I took the liberty of editing your patch with my findings, please find it attached. To avoid using bunch of slice selectors I just used stallone and resample to create the vertical lines :)
And don’t mind the LFO and MapRange mumbojumbo, it’s there to illustrate my point as well as limit offset value to the known range of columns.

Hope it helps!


oh_my_god_of_tubes.v4p (43.1 kB)

looks like you are having fun with 3d splines. there is no better way with them then with @woei))'s contrib ((contribution:splinesgpu.

it is doing most of the stuff you worked out of the mighty VertexBuffer-siblings in super-fast as a vertex-shader.

I would say that SwapDim is your friend in this case.

Hm-SwapDimAndStuff.v4p (51.7 kB)

I was just about to open the thread to write an answer when I saw Sune’s reply… elegant :) I’d say it’s what I’m looking for…

Now that I’ve also implemented a way to take care of the amount of splines regardless of the cylinder’s resolution, this is a big ✔ on the the to-do/know list. Thanks a lot

3dfactor… “this saturday” you say, huh? Nice! Your solution has prompted me to look deeper into ways to extract the needed information more mathematically, so thanks for that!

velcrome: yeah, my not-so-super-fast approach is starting to give me - so far only - light headaches, but I know about the SplinesGPU. Playing with them is what brought up my question.