Sofa Modeling

Would someone be interested in doing a sofa tutorial? I modeled the sofa in c4d and would like to learn to do it in Rhino with whatever free tools there are. I own t-splines so it could be incorporated.

I would pay for a video tutorial. Thanks

It’s the quilted pattern that will be more work, the rest is pretty straightforward.
They way I would do this is have one surface for all the back, probably using Sweep2, and use this as a FlowAlongSrf target to map an array of lozenge puffy surfaces.
I just did recently for a seat project, I’ll prepare some example images during the day… stay tuned.

Here it is:

Profile curve

Rail curve (in this case it’s a better surface with Sweep1):

The “Sweep1” surface that will be our target:

Surface from 4 points with the lozenge shape, rebuilt degree three, 7 x 7 points:

Move vertically the control points, leaving the perimeter ones untouched:

An array of the needed number of lozenges, all joined:

A plane covering the usable area of the array:

Rebuilt with the same number of UV points as the target:

FlowAlongSrf, select the polysurface consisting of the joined lozenges, then the plane and then the target surface. Wait a few minutes and voilà

You can add more finishing to the polysurface before you “flow” it. You could trim the perimeter with a vertical wall and put a fillet, it would the be neatly wrapped on your target surface.


Mark would paneling tools work on curved surfaces. If not, would I be able to create my panel of the couch back and then extrude the pattern along a curve or bend it to the shape of the couch back.If it does work on curved surfaces would I be able to chose the front of the back and create my tufted surface with paneling tools? Thanks!

Can weaverbird beused in the end to subdivide and smooth the surface? I own t-splines so maybe that is what I will have to use.

Bedsides the quilting, bag of hurt in a nurbs modeler if you DON"T want the cushions and upholstery to look like bricks.

Look at Marvelous Designer:

Here’s one way to get at the quilty bit -

SofaQuilty_PG.3dm (2.0 MB)
Oh yeah- what Marc said…

Thankyou to everyone. The description and pictures are great! As is the 3dm file. Pascal how did you create your 3dm file? If I have any problems I will post them here. Do you know if I can legally make a copy of this webpage or individual posts. I really appreciate all the help. Cheers

Sorry the cushion support was hidden.

Can weaverbird be used on the mesh to further refine it? I have hardly used rhino so a video tutorial would be great. I have a fixed income (disability- cannot work to make extra income) so Christmas would be the time I would have to pay for it. Any video could be sold repeatedly online.Thanks

This forum is going nowhere. (Edit: I mean it will not disapear in the foreseeable future!)
You can get back to it whenever you want and ask any number of questions, there will be people to answer.
Please strt working on this and ask questions when you encounter a roadblock. This way you’ll learn, as all the community here.

1 Like




1 Like

Hi Marc,

This a really well thought out and presented tutorial. Thanks a bunch for sharing!

– Dale

1 Like

I agree. Thanks, Marc. I learnt a technique new to me reading your tutorial. Your method looks great and although it’s unlikely that I’ll ever need to model a sofa I can think of lots of ways I could apply what I’ve learned. Thanks for taking the time to share.

1 Like

This command, FlowAlongSrf, is so powerfull!
It can be difficult to get the hang of it, the results may be surprising, but when you know how to control it, it’s a lot of fun.
Changing the reference and target surfaces parameters allows for great control and creativity.

I will attempt to get started. Pascal can you give me a short description of how you got the result you did? Thanks

Sure - but, Marc’s similar approach is better - he made the quilty things from a single surface, and I prefer that in this case - easier and better results. Which ever way you make the quilt unit, make it in ortho space, so to speak, flat to the CPlane, create your repeated pattern then FlowAlongSrf from from a plane (square in my example) to the target surface, which should be, preferably, a simple smooth surface that is the underlying shape of the quilted area.

  • Make one quilt/pillow thing and copy it around to make the pattern
  • Use the Dir command to line up the U, V and Notrmal on the base surface and the target surface.
  • Click on ‘corresponding’ edge locations on the base and target surfaces.
  • If your target surface has unevenly spaced control points, which is likely, then Rebuild a copy of this surface as a temproary target surface - rebuild with plenty of points in each direction and degree 3. The reason this helps is that with unevenly spaced points the UV distribution is uneven as well - it accelerates and decelerates, leading, potentially, to the pattern not being uniform when flowed. By rebuilding to a dense point count, the UV space is made more regular or more even and the pattern will stay more uniform when mapped over. You can then delete the target surface and go back to the otherwise preferable simple one.


When I choose my 3rd or base surface it only selects the arm section. I joined the base surface after a rectangular selection and then grouped the single base object. It still only let’s be select the arm section. What do I need to do so all of the base surface selects?

I used Mark’s approach for the lozenge. Still wondering how you created your lozenge Pascal. Sorry I did not explain what I wanted to know.

When I say base surface I mean the entire sweep surface as in Mark’s third photograph not just an arm section.

If the goal is duplicate this sofa exactly. You are going to need to put in a lot more work.

As you can see only the arm gets selected.