Introduction: Plywood Couch Desk Using 3D Modeling Software

I had some time off from the day job and wanted to make something for my wife. I have seen many instructables on how to build things from plywood and had thought it was worth a try. We have a small couch table that we use for drinks and such but that more often than not our daughter claims as her own. This both leaves me and my wife holding our food/drink in our laps and has resulted in a number of scuffs, marks, and stains on the table.

I wanted to build a new, slightly larger, couch table and I thought it would be cool if it had some drawers to keep the remotes, etc from being eaten by the couch.

There are several very well made videos on stacked plywood construction so I won't focus much on the actual construction technique. What I will show you is how I took that technique and designed something a little more complex than I had seen done before.

Step 1: Materials and Equipment


1. A sheet of hardwood plywood. I used Maple but I think a Baltic Burch might have had fewer voids and tighter layers

2. A little 1/4 inch plywood for drawer bottoms

3. Wood Glue

4. Wood Filler Epoxy

5. 1 1/4 inch brad nails

6. Tung Oil Finish

7. Polyurethane

8. Self adhesive felt pads


1. Circular saw and/or Table Saw.

2. Brad nailer

3. Clamps of various sizes

4. 3D modeling sofware, I used OpenSCAD

Step 2: The Software

I run Ubuntu Linux. If you are running Widows or another operating system the install steps are going to be a little different but all the software should work cross platform. In Ubuntu you can simply install OpenSCAD using 'sudo apt-get install openscad' In other operating systems go to for install instructions.

OpenSCAD is an open source 3D modeling software that takes a little different approach than some. It is more like a 3D compiler since you write code to describe the objects and the software renders the model based entirely on your script. You don't drag, push, pull, or manipulate. As a software engineer I liked this but if you have never written code you can still do this. Give it a try, take a look at the tutorials at

I should say that after I completed this project I ran into a little trouble with OpenSCAD as installed form Ubuntu sources. Ubuntu tends to be a little behind on most software which can be a good thing but often is a challenge when bug fixes have been made.

Specifically I ran into situations where, after a compile error was made and then fixed, the preview of the model wouldn't render. It didn't throw any errors I just didn't see the model unless I closed and reopened the application. You have a couple options, if you are just working on one project you can just save, close, and reopen and it will start working again or you can go to, download the source and follow the build and install instructions.

Step 3: The .scad Script

I uploaded the scad file to a GitHub Repo

At the top of the script you will see the dimensions I ended up with. I put them as variables at the top so I could adjust them and have everything else fall in line. This proved pretty handy because on my first draft I ended up with a lot of odd lengths. I was able to make small changes to the size to reduce the number of different lengths.


A few notes about the language, I am only getting started with it but you don't need to know much to be effective.

  • Modules in OpenSCAD can generate complex objects from more primitive constructs.
  • You can use for loops to create multiple objects as I have done. Essentially I used a for loop to generate each layer.
  • Lines starting with // are comments and don't actually impact the model
  • You can also cause % to make objects transparent. I was able to get this to work on simpler models but can't seem to get it to work in the CouchTable try %cube([1,1,1]); and it works.
  • translate and color commands modify the following object. Curly braces {} can be used to apply the same operation to multiple objects. You can also combine those objects in a module to simplify.

*Note that the TABLEDEPTH variable isn't in inches like the others, it is the number of layers so the actual dimension would be TABLEDEPTH*PLYWIDTH

Step 4: Copy and Organize the Cut List

I included in the tableSlat module of the script a line 'echo(size[0] , slatColor, label);'

This prints to the console the length of the slat as well as the color and a descriptive label. This allowed me to get a list of the parts and their lengths. After the model renders you should see a lot of output in the Console. It will look something like


ECHO: 20.5, [0, 1, 0], "upright support"
ECHO: 8.5, [0, 0, 1], "bottom"
ECHO: 8.5, [0, 0, 1], "bottom"
ECHO: 3.5, [1, 1, 0], "upright end"
ECHO: 3.5, [1, 1, 0], "upright end"


Copy all of the output from the Console into Excel or other spreadsheet program. As I mentioned I use Ubuntu so I used the (OpenOffice) LibreOffice Calc application that has many of the same features as Excel.

You really only need the ECHO statements but if you copy all of it out you can sort and filter it to get just the data you need.

1. Start by sorting and remove rows from the top and bottom to only leave the ECHO statements

2. Use the Text to Columns feature under the Data menu to split the rows by commas

3. Clean it up and add column headings

4. Add a count column and initialize each row to 1

Step 5: Summarize With a Pivot Table

Once you have the list of cuts with a length, part description, and count (1 on each row) you need to get a quick summary so you can cut all the pieces of the same length at the same time.

Create a pivot table with part description row headings and length column headings. You can find information about creating a pivot table on the web depending on the software you are using. The images above show you how I created mine in LibreOffice. In the end you should have a nice list of the 213 pieces of wood you need to cut out of one sheet of plywood. It isn't as bad as it sounds.

Step 6: Cut Down

I didn't take pictures of the cutting or assembly. I know I should have but you can check out several other Instructibles. A few things that you want to keep in mind. Get your hardware store to cut the sheet down to something you can manage but not your exact dimensions. You are going to want to cut each strip to final length.

I recommend using a cross cut sled with a stop block or the Incra 1000HD mitre gauge that I used.
When you plan the cut down keep in mind wood grain direction. You want the length of the pieces to run along the grain though most of the faces won't be visible.

You are going to want to make very certain that your cuts are as precise as possible. The closer they are the less sanding you will have later and the easier it will be to keep everything straight. Here is a great instructable that served as inspiration DIY-Plywood-Coffe-Table. I recommend you review it for additional instructions.

Step 7: Assembly

For me assembly was a little bit of a learning process. If I were to do it again here are a few things I would keep in mind.

  • Start with the base leaving off the back pieces which won't be nailed.
  • Work from back to front and don't skimp on the glue.
  • As other instructables will tell you starting with everything square and straight is very important
  • Check frequently for square so you don't have to make any large corrections.
  • If you run into any trouble in alignment it is more important to keep the inside of the drawer straight and smooth. It may seem counter intuitive but you can always sand the table top, the inside of the drawer isn't so easy.
  • Be sure to measure each drawer opening at both ends before cutting or assembling the drawer

Step 8: Drawers

I measured the drawer openings and length then over-cut and trimmed to as close to perfect fit as I could. I cut a channel for the drawer bottom with a couple passes on the table saw.

I have an Incra I-Box jig so I used box joints. The jig made that easy but as it was my first time using it I went through a lot of test pieces. The trick I found was to make sure that the opening was loose enough as to not require much forcing. Too much force and you will end up splitting the plywood.

If I were to do it again I would have sprung for solid wood for the drawers.

Step 9: Finishing

Use a plane to smooth and flatten the top, sides, base, and upright support as necessary. Fill in any voids with wood filler. Then sand and sand and sand some more. Start with 80 grit then 220 and 300+ to finish. The extra fine sanding will help limit stain or finish absorption which is important since the plywood will absorb a lot of finish.

I applied 3 coats of Tung Oil Finish Followed by 2 coats of Fast Drying Polyurethane following the instructions on the bottle.

Finally you might want to put some felt pads on the bottom to keep it from scratching your floor. You can pick those up at the hardware store