swarm of lines?

I started making this composition with two line strips, each having different lfo/noise values.

It made me wonder two different, related things:

  • What is the best way to make a group of lines that follow basically the same position, but with each having a bit of random offset? The idea that line count could be controlled dynamically?

  • What would be the best way to make a “swarm” of lines that each have a totally different pattern, where the line count could be controlled dynamically?

lines.vuo (6.37 KB)

I think I’m figuring out the answer to my question…

Any more thoughts are welcome though.

I guess I need a custom shader to change each color instance, which is fine.

lines_2.vuo (6.9 KB)

Any ideas why this kills the copies? I wind up just seeing one instance.

lines_glsl.vuo (9.78 KB)

Any ideas why [Parabox Make Shader with GLSL] kills the copies?

Check out Console.app — when I run your lines_glsl composition, I see a bunch of Error: 'GLSL Shader' doesn't have a program for the requested inputPrimitiveMode messages. Looks like the Parabox GLSL node only supports triangle meshes (not lines or points).

I guess I need a custom shader to change each color instance, which is fine.

We’re planning to provide a node similar to Copy 3D Object that also lets you specify a list of shaders to spread across the copies.

In the meantime, you could use Build List. I started with your lines_2 composition, and modified it to assign a different Unlit Color shader to each copied line strip.

(Currently the performance isn’t great when the scene constantly recreates shaders like this — on my NVIDIA GeForce GT 650M, it drops to 30 FPS. That’s a known issue we’re working on for the upcoming release.)

lines_3.vuo (7.31 KB)

Cool. I hadn’t seen that method of constructing groups of objects via the list maker and the feedback loop, so the composition is very interesting.

It definitely seems like overkill to create so many shaders. It seems like the most efficient way would be to create u/v coords for the lines at the time of creation, and then use that and/or vertex positioning to color them… possibly info about which line index or vertex index it is too, so that a line could fade to alpha at it’s end or start or be different colors from one another. Though maybe all that could be done via carefully constructing the uv coords.

It looks like that probably requires one or more new patches.

Is there currently a good way to make quad strips, ala “mouse ribbon.qtz”?