How to easy and efficiently make high upholstery nails for the soft furniture?

Hi all,

I am looking for an easy and efficient way to add upholstery nails on a soft piece of durniture. The way I envision it is to make a single nail then create some sort of path( seem) around the chair which would serve as a route for nails to follow. Ideally I would like to have certain level of control like nail head size, spacing etc.

Thanks
T

You can use a technique I show here:

All you’ll need would be a single nail and a strip of faces along the chair’s edges. If there isn’t a ready made strip in your geometry already, you can create one by extracting the edges from your model, converting them to a curve, and then arraying a simple plane along that curve.

This is better than simply arraying a nail along a curve since that would inevitably skew the nail, while face instancing would not.

3 Likes

Hi,

It’s pretty easy to follow your video. Thanks!. Will be back to the project a bit later. Not sure how am I going to array plane along the curve but at least I know how to make a curve out of edge.

Will probably be back with another question soon. Bye for now!

T.

If you need more control, like some randomness for the size you can do it with particles in a very similar way.

Hi Stan,

I am stuck a little. Would you mind to explain to me how you create equally spaced faces outwards from a wireframe?

T.

Hi,

I would be interested to know about it? :hugs:

Here is an image.
Look up how many faces your “path” object has and set the particle system to emit just as many particles.
All these particles should be emitted at frame 0. If you are animating set the lifetime so something like 50000 so that they don’t suddently die on you.

Set everything as in the image.

With “jittering amount” you can randomize the position
There is also a randomize slider in the rotation settings.
And finally there is a scale randomness in the “Render” section.

If you want several different kinds of rivets you could use a collection instad of an object in “Instance Object” and set it to random. That way different kinds of objects are distributed randomly. Perhpas you want a couple of dameage rivets.
If you use a collection you can check “use count” for specific patterns. For example if you want one round rivet followed by 3 cube shaped rivets you could do that there.

Otherwiese, you can randomize them in the shader with the setup shown in the image. The “random” output of the particle info node outputs a random number between 0 and 1 for each particle. If you feed this into a color ramp every rivet gets a random color from within this node. Of course this does not only work with color but also with Roughness or other attribues. You could even randomze the size of a noise pattern or even more complex things.

With random objects chosen from a collection

#

Pattern created with objects from a collection

4 Likes

Sure thing:

5 Likes

:+1: :+1: :+1: Good stuff there, Lumpengnom! Thanks. Bookmarked!

1 Like

Smashing work Stan! Just finished watching your tutorial and you fly through it mate :slight_smile: Will get back to my project in a couple of days time to apply the rivets. You have a new subscriber too.

1 Like

Thanks so much for this detailed tutorial Lumpengnom. I just have to find time to properly look into it. :hugs: :ice_cream: :beer: :coffee:
T.

1 Like

Hi Stan,

Thanks again for tutorial. I have come as far as applying rivet to the plane. Do you mind to take a look?
Although my rivet ( named sphere) faces the plane when instancing applied rivets are facing different direction ( not flat to the plane) . I thought I am going to fix it by rotating rivet 90 degrees however rotation of the rivets changing as soon as it follow the curve. Maybe normal?

Thanks
T.



What matters is the orientation of rivet. Orient it so that its Z axis is “up”. I.e. either rotate geometry in edit mode, or rotate origin in object mode with Only Origins. Also, if your instancer has object mode rotation you may get extra rotation offset.

1 Like

I tried but it’s still the same. Would you be willing o take a look at the file. I can upload. No rush of course whenever you have time.

T.

Sure, post it, I’d take a look in about half an hour.

1 Like

Awesome :slight_smile: Thanks Stan.
Link: https://we.tl/t-dGbW3VYxHO

T.

Reset rotation on the rivet, then set only the X rotation to 180, and in edit mode rotate it around X axis by 90 degrees. This is all because the plane itself has rotation on it.
Or you can apply rotation on the plane (will need to change settings on the modifiers though, e.g. the offset axes on the Array), reset rotation on the rivet and, again, rotate it in edit mode by 90 degrees so it’s upright.

1 Like

It worked like a charm. Thanks a lot Stan! :beer: :beer: :beer: I would’ve thought rivet adjust to rotated plane. It’s something I googled yesterday about object vs edit rotation and how different it works. My brain was boiling. Eventually I got my rivets on, had to rotated a little curves normal so it sits flat and a little dug in. A little more work and I get them in.

I was wondering how come there is one plane missing on my array which makes rivet spacing a little off. Curve seems to be fine there. Any idea?


T.

1 Like

It’s just the scale (as in, size of things you’re working on). Decrease the Merge Distance in the Array modifier. I’m surprised it isn’t merging more. One side of your plane is like 0.0085 long whereas you have the merge distance set to 0.01 :slight_smile:

1 Like

Thanks buddy ! It works :slight_smile: Now I have another problem. Rivets are not uniformly flat on the surface. One side non-mirrored have them off the surface while the mirrored side is flat to the surface. I was thinking maybe, maybe mirrored side is off, but mirrored side should have perfectly opposite coordinates. Other thing is that plane is directly related to the curve how to fall on it. So maybe my curve/rivet path is somewhat screwed but again if mirror it should have perfect opposite coordinates.

Other thing I am puzzled about is my curve. I tried to adjust it’s shape a little and expected my rivet face/plane automatically adjust to the curve shape but it’s not.

It’s just so frustrating when I thought I am done with rivets :face_with_symbols_over_mouth: