Apply material to curves with multiple bevel objects/curves

Hi there!

I’m making a project where I need some cables, like these:

I absolutely need them to be curves. They cannot be meshes. The way I made these cables is, I made a curve:

And made 3 curve circles so that I could use as a Bevel Object (in the curve properties)

But this introduces a problem: I cannot set a different material per circle.

I need each one of these bevel objects to have a different material, which would make each cable have a different material, like this:

How can I achieve this?


You could use a geometry nodes setup (Blender 3.1 alpha here). The resulting geometry will be a mesh, but you can still change the curve that is input to the setup:

curve_materials.blend (115.9 KB)

Thank you! Took me quite a while to figure out I needed Blender 3.1 and that I needed to do the geometry nodes thingy on a single vertex (and not on the curve itself), but in the end it worked!