How-to: make roll-of-dimes TIG welds

I want to share a relatively easy way to draw Tungsten-Inert-Gas welds. The technique could also replicate MIG (Metal Inert Gas), with some adjustment. The technique could theoretically be automated with Grasshopper, or a Rhino command. First, let’s see the results…

Here, we see a tube connection, a 90 degree, and a more acute angle.

I’m sorry about the materials and mapping, but this is technique used on a tiny 2mm diameter welded tube.

And here we see a 12mm pipe joined to a casting:

The technique is largely based on how a real weld penetrates the work. This is a drawing of a weld bead:

In TIG welds, daubing the weld puddle with the filler material gives this real-world effect, seen in these four following pics of real welds–not my technique.

Likely, you might be getting the gist of what I am doing. I create a curve profile, and then revolve it into a surface. The first shape works pretty well for all but flat butt-welding and deep Vee angles. The 3rd shape would work better for approximating MIG welds or butt welding. I usually use a curve boolean on the shape and the bisecting line to create a half-shape. These shapes are revolve 'd.

The real trick of this technique is to angle the weld-blob in 2 directions. I usually give it a bit of leading from 5 to 7.5 degrees. The TIG welder does this with their torch while controlling the puddle. If you angle the blobs too much, one blob will cut a hole into another.

Then the blob is angled to drop evenly into the joint. While moving the blob, the [TAB] key helps you set the penetration depth along the “throat” line. When doing this, I try to just leave a little “face” showing so we can see the “toe.”

And then the little weld puddle bits are replicated along a curve either copied or using the original seam as long as it is an uninterrupted curve, using Array Along Curve _ArrayCrv like this to achieve an overlap.

Things become more complicated with a deep Vee weld. To approximate the climbing and penetration of the sides the top surface–as well as the effect of gravity pulling the puddle down, the weld blob needs to have the overall shape of a Pringles potato chip. Because it is only one surface, the result can be rebuild to simple thing, as we are replicating it quite a bit.

And here are those runs and the shapes that created them.

The weld itself may be binary Union’ed to the substrate objects, or not. Rhino seems to deal fairly well with this kind of numerous additions. Though, the surface complexity and resultant polygon count has a performance price.

Edit: in the Cycles-rendered results, the weld isn’t union’ed, so it needn’t be merged for decent appearance. The rendering mesh can be set quite low for the mass weld blobs. (Thanks Pascal.)

Oddly, except for the Vee workpiece, the other 5 simulated welds shown here–were all made from the same blob, resized, angled and replicated.

Oddly, because this technique approximates real welding penetration, there may be some use to using it for Finite Element Method. The weld blobs themselves may cause stress concentrators which may give interesting results. The entire weld itself may be union’ed and then subtracted from the substrate–and then that joint may be described in FEM. Sometimes dissimilar metals are used, and can be solved.

Going further, an Grasshopper sketch could be made do these chores. It would seem that the figures of merit would be the size of the weld, the leading angle, overlap, and penetration. As far as shape, we are controlling the center-point on the “face” of the bead. For deep Vee’s the profile would have to be asymmetrical, as seen above, and those could be adjusted per increment by calculating the angle where each weld-blob would be.

Welding is an art, and if you want realistic welds putting some randomness into it, adjusting the depth, angle, and keeping on the line.

Lastly, creating a material for a decal that would simulate the temperature burns at each blob would give it that nice burned straw-to-purple effect.


standing slow clap-

well done


That looks good but makes for a ton of geometry - I wonder if a loosely meshed version of the blob might not work just as well - except possibly in close-ups or something, but even then… these could then be Joined into a sigle mesh without all the extra drama of Booleans etc.


1 Like

The weld blocks needn’t be merged, and because they are NURBS, a low-poly mesh can be set for them.

1 Like

Hello - If they are low poly meshes, which when placed and all set to go, are joined into one single disjoint mesh instead of potentially hundreds or thousands of individual objects there is considerable savings in overhead,


1 Like

Few Rhino users need such perfectionism. I would make displacement (render mesh modifier).

1 Like

Oddly, the technique is easy is quick. It takes only a few minutes for each one, about as long as it took to type this sentence: paste weld blob, scale it, position, angle leading, angle joint, select curve, and set overlap. Sip coffee.


Kudos, Brenda. A great effort with great results and a great example of what can be done with Rhino if a user wants to put in the effort.

Pay no attention to the skeptics who post here. :slightly_smiling_face:


Superb. Thank you

1 Like

Although it is not usable in the machinery process but is good to illustrate the places of welding in a new project to be offered to a company, scientific group, or client.

Good innovation :slight_smile:


Hi @Brenda
Bravo nicely done and succinctly explained.
I need welds now for a project and this was a very informative post to find just when I need it.

If done in GH it might work with the voxel plugin. I think it would get really heavy in scenes unless meshed ala Pascal’s suggestion.

Though I’m not sold on using real geo for this. It’s something one could easily do in substance or 3dcoat.

It would be great to get a “weld option” as a type in “edge softening” or in “curve piping” where it’s non destructive and could easily be turned on and off.
Thanks for your tips, it really helped just when needed.


The weld line or circle itself can be unioned, and a lower poly mesh can be used for. The mesh has been extracted for illustrative purposes.

The cool thing about Rhino and NURBS, you can set a custom mesh for everything, without affecting the original geometry.

With the mesh above, it still works from a distance. Both meshes are lower quality.


I love everything about this-


Wildly impressed.
If there were a Rhino Awards (Bob? an idea…) this would have my vote for multiple categories.
Thank you for sharing


Aw. Thank you. I am quite flattered.