Sofa Modeling

As you can see only the arm gets selected.

That really is an ideal project to start in Rhino and finish in C4D (or modo). The best of both worlds.

The FlowAlongSrf command only accepts a single surface as the target. Joined surfaces into a polysurface does not work. You’ll need to create the target surface as Marc did.

Thankyou Wim. I made it work but it does not look as smooth as Mark’s. I will not post it until it looks smoother.

Here is a picture of my result. Not very smooth where the side meets the back. I don’t think I will get the results I want so now I will attempt it in t-splines. Does anyone here know how to approach the back in t-splines?

Thanks for all the help up untilnow…

Hard to say without seeing the target surface, but, see my comment above about using Rebuild, with a lot of points, on the target surface to even out the UV distribution.


Pascal, did you create your lozenge with extrudes?

I would be curious how this model is be created per Cinema 4D and then the question for me is, could this workflow not be replicated per T-Spline. I have no subd modelling experience, but isn’t the T-Spline workflow not the same?

Ok, yeah, I’ll outline it but I want to point out again that it is a noticeably inferior approach compared to the single surface version if you want it to look at all natural. I started down this road because your reference image showed a pretty rigid pattern where the outer surface was pretty consistent and the lozenges are defined more by the grooves between them than any sort of ‘pillowiness’ in the shape.

  1. Figure out the pattern - I made mine as squares since the FlowAlongSrf will take care of the stretching.
  2. Offset one diamond shape inward - this is the distance of the width of the ‘groove’ per lozenge.
  3. BlendCrv or fiillet the corners.
  4. Make a planar surface from the filleted inner shape - this plane would be deformed to the general sofa shape.
  5. Raise the planar surface to the depth of the lozenge.
  6. Build lofts from this inner surface to the base pattrern (pre-offset).
  7. Build corner surfaces as lofts as well.
  8. matchSrf for curvature.
  9. You can do all this once, and then use ArrayPolar to get the other surfaces for the square lozenge, then copy these as needed to make the base pattern.
  10. This was too rigid for me, so I went back to the planar surface, changed its degree to 2 by 2 and moved points to make it slightly puffy, then rematched a side and corner surface and ArrayPolatr etc The idea baing to give a little bit of loft or shape to the lozenge and not haver it conform exactly to the target surface.

Lozenge_PG.3dm (306.0 KB)

Thanks Pascal! If I had known the explanation was so long I might not have asked. I will learn a lot from it! I have not used t-splines enough to say whether it works like c4d. Maybe someone else knows.Thanks

The following walk-through is only for demonstrating a quilted look in T-Splines and not intended for beginners who don’t have a rudimentary grasp of the very basics demonstrated in all the free T-Splines webinars and tutorials posted throughout the past decade.

Starting with a T-Splines Plane, with arbitrary parameters XFaces=8, YFaces=8, the object is laid out so that the splines line up with the major grid lines.

S hotkey toggles to Edge Selection mode allowing a spline to be selected.

L hotkey selects the entire loop or length of that spline. tsInsertEdgeSimple command with parameters BothSides=On and percentage set to 0.050 straddles a pair of splines very close to the original.

The process is repeated for the remaining splines in both directions.

The original middle splines are selected through shift-clicking multiple key spline segments then use the L hotkey.

Using either the move manipulator, Rhino’s gumball, or even SetPT command, move the selected splines ONE unit down in the Z direction. This creates the chocolate-bar look in BOX view mode.

Duplicate the plane and tsMerge the butting edges. How would you use tsInsertEdgeSimple and SetPt to fix the merge?

The doubled plane is itself duplicated once more and welded back to itself. Still glossing over the need to treat the welded edge? (Alert: noob tripping point)

Now quadrupled in size, the plane is re-centered then rotated 45 degrees

Enabling it to be easily scaled along the X axis. Object is elevated off the grid as an optional step

Hotkey A activates the Vertice Selection mode needed before switching into a SIDE view. Select the vertices that make up the back portion of the sofa.

Experienced use of the Rhino BEND command folds the vertices under exactly like an omelet at first followed by re-selecting an adjusted vertice group and bending that downward.

The remainder of the vertices in this SIDE view gets its moment with the Rhino BEND command to create this result

Now the focus is put on the TOP view where half the T-Splines vertices are selected.

They are treated with the same Rhino BEND command. Placement of the bending spine and bend-through point dictates the affected region and radius. Note their locations as the identical move will be applied to the other side.

BOX view mode has permitted this process to go smoothly and not bog down the computer. F hotkey brings T-Splines into whole-object selection mode. TAB hotkey switches to T-Splines’ SMOOTH view mode…

Quilted look in T-Splines. At this point, the model still permits further manipulation by grabbing edge, face, or vertice and directly manipulating it.

Beginners might “bake” a copy into Rhino nurbs (tsConvertToRhinosurf) for immediate trimming while seasoned users may delete faces and re-flow the edges to form the other structure shapes all staying in T-Splines mode.


You’re almost there, you should not spend time mixing several programs if you’re beginning. It’s pretty easy in Rhino if you follow the steps carefully.
I did the example above in less than an hour, while looking over some renderings.
The problem I see with the image above is that the target surface does not have a regular structure. You should do as Pascal said; rebuild it with enough points in U and V to have a nice and unifrom grid.

Marc, I have a video tutorial of how I did it in c4d. Right now I am doing
it in 3ds max to reacquaint myself with a subdivision surface work flow.
Then I think I will see if it can be done to the same quality as c4d in
rhino and t-splines. Pascals method lends itself to a closer replica of the
c4d version if you zoom into where the cross sections meet when just using
rhino. You have all been very generous with your time and I have and will
learn a great deal from your examples. I noticed that the videos at c4d
arena have been removed. If you email the artist he may send you the files.
Tell him I said it is one of the best tutorials on the Internet and that he
deserves a lot of praise for sharing the files and his knowledge.

Thanks Brent, but I’m not interested in learning C4D…
A few points I think you misunderstood;
-I don’t know why you want to learn TSpline for this, it’s just another level of complexity you’re adding.
-The lozenges modeled flat, before the transformation with FlowAlongSrf, can be any shape. If you want the crease deeper, you just have to move the center control points a bit higher…

Marc I may take your advice and improve my workflow. I really like Rhino;
it is an amazing program. The thing I found however is that I could not
keep the back of the sofa straight and then the arms at a 90 degree angle.
This is something you can do in t-splines. Thanks for all your examples and
help. I’ve learned alot. Cheers

Taking the prepped plane from Image #5 above and going a slightly different route gets this result in 15 minutes.

Carter can you take those nibs and extrude them inwards or backwards and
collapse them to a point to recreate the back like on my sofa? When you
look at the perspective view of the sofa you can see how the front of the
arms are finished off. Can this be recreated in t-splines? Which version
are you using, bythe way? Great work!

If you have done the modelling in C4D or 3Ds max you can import the (quad based) mesh as an .obj into rhino. This mesh can be converted to a T-Splines mesh and your done.

The beauty of T-splines is it’s a bridge between Nurbs and Sub-D.


I will do that so I can see what the mesh looks like. Thanks Norbert

Here is my t-spline mesh. Is there something I can do to simplify it? Thanks