The Future Belongs to the Creators ™

Codename: Upstart


Our focus has been learning to operate a ShopBot before designing new things to cut. We were answering the call that many software people feel after working in codebases for years. We wanted to make real things. A ShopBot is the shortcut to precision and repeatability usually only attainable with years of practice with power tools or expensive industrial machines and staffing. We jumped in the deep end not knowing how to swim and purchased a ShopBot after a few key moments.

First, we watched some very smart people struggle for days getting a MakerBot to work. Many people love to tinker and tune things. For many just making the tool is their goal. Seeing what a 3D printer could produce at the time, tiny plastic objects, it just did not check our making “real” things box. All of the above soured us on 3D printers which we have still never used.

Second, we attended a ShopBot Camp in Austin at Wayne Locke’s shop. (Wayne’s Camp is the longest running camp in the country.) The Camp took place over a Friday and Saturday and immediately reminded us of Birds of a feather)-style events. Just like programming languages when you choose these types of tools, you are picking the community that comes with it. Have you met Pythonistas, Javans, or Rubyists? The Shopbotters we listened to were very pragmatic and bent on using whatever worked for the job at hand. They shared their tips and tricks. They were very welcoming to noobs and very experienced woodworkers. Pairing that community with a machine that could cut vector designs from full sheets of plywood seemed like a great path for us. The only downsides we could see was the control and design systems run on the Windows OS and most of them hate the computer part.

We constantly get ourselves into situations that we are completely unqualified for, have no plan, and should not even attempt. But, we are so often rewarded for even trying to cut a path through the unknown we now tend to lean into it, bruised egos and bloodied bank accounts in tow. ShopBot was no exception.

We placed the order a few days after the camp. A few weeks later we received the shipment (April 18, 2011), a long crate weighing a few thousand pounds, the truck could barely squeeze down the alley to aim the lift gate at the garage door to our “shop”, a few hundred square feet at the back of our office suite designed as a tiny warehouse.

“Watch your feet. This thing won’t break your toes, they’ll smear.” – Jason, Delivery Driver

20110418 151546 BE7f iPhone 4

We didn’t even have to right tools to open the crate to find the manual to tell us what tools we needed for assembly. We didn’t know the ShopBot required some assembly. Luckily, we are always willing to learn something new and getting used to being on our own. With starts and stops and trips for parts and tools, it took us almost two months build our ShopBot. ShopBot pros do it in hours. We did hire an electrician to wire it up.

Now what?

Cut something! We are computer people, Hunting-the-Wumpus Texas Instruments TI-99/4a 1982 people. There is only one thing to cut. So we did on June 15, 2011.

20110615 163740 BE7f Canon PowerShot S95

This scrap 2x6 was the only wood we had available. Like almost every project we’ve cut since then, we had to cut it twice the exact opposite of the “Measure twice. Cut Once” adage. When we first placed the material on the bed, we’d aligned it along the Y-Axis of the table. The router started cutting the job setup with the material along the X-Axis. Instant FAIL. After the material was repositioned, cutting restarted but still failed. Notice the errors in the toolpath in the L,L,O and comma? They weren’t draw that way. That was when the force of the stepper motors pulled the material free from the clamps holding it down. We didn’t know how to stop the machine since the Emergency Stop button wasn’t hooked up, so we moved the material back and held it in place by hand until it finished. Fail. Fuh-Fail. Fail. Fail.

Seems like if we were smarter we would have gotten the hint that maybe this “making real things” wasn’t for us. But, nobody got hurt (enough to visit a hospital) and all our typing fingers, our “money makers”, are intact.

Keep Going

It’s nice to jump in the time machine like this and go back to see how much progress we’ve made.

Since then we’ve added to the list of materials we’ve machined including MDF, Adhesive Vinyl, Signfoam, Gatorboard, Epi-cor, Fiberboard, D3 Maple, Cast Acrylic, HDPE, OSB, Coroplast, PolyGal, and Baltic Birch. We’ve modified our ShopBot with a KentCNC Dustfoot, X-Axis EChain, SuperZero, and High Precision Collets. The entire table was rebuilt, squared, leveled, and 96” T-Tracks were mounted for holddown. The dust collection system has been redone with Nordfab metal ducting and properly grounded.

For projects we have cut a DJ Mixer Stand, lamp replacement parts, End Tables, Signs, Mayan Calendar, Skull Halloween decorations, Modular Deck System, Another Sign, PixelInvader, Giant Snowflake, Crate for art, Texas Table, Ironman Posters, Another Sign, Blinkdom, Difference Engine No. 3, Shapeoko Controller Box, Section of the SketchUp MakerFaire Pavilion, Breakout Table, Standing Desk, One-to-Many Table, Shelfie, Plywood Forklift, and an Interior Wall System.

We have learned to operate a ShopBot and the projects we design are turning out better then ones from the Internet we download and cut. In retrospect, we have reached the point we thought we were heading towards when we first learned about ShopBot. It is clear why we stuck with a large format machine that can handle full sheets of plywood. We can make real, big things.

More Software

By combining the machine with SketchUp and the Ruby API, we can manufacture custom small batch products using Software-Defined Design. Our first example is a parametric table we were asked to explore for a new classroom. We started with an existing table design they liked. We downloaded the source file and cut one from scrap wood for a pilot. They lived with the table for a few weeks to test it. Based on their experience, they realized that table wouldn’t work for what they needed and were able to talk about a new design.

After collecting their feedback, we looked at implementing the changes into the source file we had for the pilot table. The source file (.dxf) is a flattened vector representation of a 3-D object, the Olivia Desk from OpenDesk.cc. We spent a few hours trying to do it and learned that manipulating the source cutting file is complicated, error-prone, and time consuming. It is much faster mocking up a design in SketchUp that we could send over for review, which is what we did and normally how SketchUp is used in Architecture. This is where we made a key decision. Where most would move on to do detailed diagrams in a full CAD system like AutoDesk or Revit, we decided to stay in SketchUp. Because software.

Drawing Walls with Ruby

Something most people may not realize is that SketchUp provides powerful 3D surface modeling tools and a coordinate system but also that everything in the user interface can be controlled by Ruby, an object-oriented programming language. And Ruby, for once, is something we DO know a lot about. (And technically we have finally written objects in code that generate objects in the real world. How’s that for meta!)

So after some experiments using sketches on index cards and some coding sessions, we had SketchUp draw parts for a 90-degree WikiWall.

WikiWall 90 9294 v1 0

Using rapid feedback loops and failing fast, we had SketchUp flatten our 3D model so we could export it in a format to cut with an Epilog 50watt laser. When the laser model works, we move on to full-scale tests in a cheap material. When that test passes, we can cut in the final material and have a product. The source file can then be loaded and cut later and as often as we need. Since we were cutting walls, it forced us to stick to this path since the cost of mistakes in dozens of sheets of wood adds up fast. The source of the project is now a dimensioned digital 3D model, not a vector representation. The 3D Model can be referred to check measurements of actual parts produced and provide an exploded diagram for assembly instructions.

Make Something Useful

We learned from showing visitors our experiments that WikiWalls are fascinating, but needing more walls is not a problem most people have unless you are planning a building or finishing out a basement. People want furniture - affordable and custom if possible. So we applied what we learned from the WikiWalls project to designing a new table for a classroom.

Using all the feedback we received, we created a table in SketchUp in a few hours from “scratch” (which includes the internalized design elements of all furniture we’ve ever seen and are consciously unaware of) that is for two people, 64inches wide, and about $100 in materials.

Classy Desk

The image was emailed out and got positive response in a few minutes. Since the goal is a laser cut scale model, we write code to generate the table design and can compare it to the original model along the way. Why is the design in code? We learned from cutting DXF files that the main issue is the thickness of the actual material. The material thickness determines the size of pockets or slots needed for the tabs used in assembling theses objects. When working with a flat vector file your main option is to scale the entire diagram so the pockets are large enough for the material you’re working with. OpenDesk furniture is a prime example of this. Their cutting files are in metric units for 18mm thick European plywood. The sheet goods we get are supposed to be 23/32in (0.718in) or 18.25mm. With humidity, we are closer to 18.5mm. To scale the file so our plywood fits a pocket, we need to increase the size by ~3% (18.5/18) which doesn’t seem like much. At scale, a 48inch dimension increases by an inch and a half. We tried to alter the vectors of the file so pockets were correct for our material but following the connections of parts in flat vectors across multiple files for an object we’ve never seen assembled was overwhelming.

With the design defined in code, we can dynamically change thickness of material or height of table legs or width of ribs. The Fiberboard we use for laser cutting is close to 3mm and 12in by 24in so we generate an exact quarter scale dimensioned model of the table. We have a custom plugin that takes the 3D model and generates a “flattened” version of all the parts. The flat version is exported as an SVG and cut with the laser. In the first test, we leave assembly detail exposed to check fit and alignment.

2015 09 09 13 04 00

If something is wrong, it can be seen in the quarter-scale model. The code is fixed. The model is regenerated. The cutting file is regenerated. The laser cuts a new version and the entire loop can happen in under an hour. The material cost for this model is less than a dollar.

For a production table, we could use hidden pockets to conceal the construction detail and leave cleaner surfaces. Experimenting with laser speed and power settings we were able to simulate the effect in a scale model.

2015 09 09 17 20 05

In agile software development, one tactic is to pull the risk forward and attack difficult or complex items first. We do the same thing when moving into a full-scale model. This desk design is not complicated but if it was we would isolate the most complex assembly and cut just those pieces. For example, on another project to move and store sheet goods, having the front corner of the design cut at full scale would let us check if and how all the pieces fit together. A 24in section was cut and tested. The inner and outer pieces locked and the inner ribs rotated into position correctly so we could move to making a full-size model.

20150604 165435 BE7f iPhone 5

Again the table design didn’t require detail testing. We needed to see fit and proportions. Our prototyping material for full size is Oriented Strand Board (OSB). OSB is used mainly in residential construction for subfloors, roof decking and wall sheathing. It is 70% cheaper and a suitable stunt double for the 3/4in maple plywood we use. We consider it “light-green” (due to the chemical binders holding it together) because it is made from a waste stream of lumber production.

20150910 151738 BE7f iPhone 5

At full size, we did find an error. On the back rib under the table top, the calculations were wrong so the part was the correct length but the tab depth was short making the legs not sit square in the pocket. Reviewing the scale model, the error is there too but so small that the fiberboard deflected and appeared to fit.

We fix the code and do the loop again. We make a small change to round the corners of the top and this time we use the final material, a 3/4” cabinet grade maple plywood. We sand the edges, bullnose the edge of the top, and brush on a matte finish to seal the wood.

20151005 165435 BE7f iPhone 5

This is the first piece in our Upstart line - custom office furniture priced for the fast-growing startup company that needs more than the availability of IKEA but is not ready to invest in Herman Miller or Steelcase.