The Peanut Bench: Free-Form Coopering on a CNC Robot

While studying in the Furniture Design program at the Massachusetts College of Art and Design, Stephen Thrasher became fascinated by studio furniture makers who embraced digital fabrication. Among all tools, CNC machining stood out to him as a bridge between traditional woodworking and computational precision.

Screenshot of Rhino showing tweened curves guided by Bowerbird Geodesics. The geodesics control the flow of the wood grain, aligning it with the minimum curvature at the seat edges.

Over time, he developed several CNC-based processes to craft expressive furniture pieces, expanding the possibilities of wood as a structural and sculptural medium.

Screenshot of Grasshopper script

DIGITAL COOPERING

The Peanut Bench builds upon an old woodworking technique known as coopering, a method of cutting and gluing solid wood staves with beveled edges to form curved assemblies.

Traditionally, these joints are flat, but Thrasher redefined the approach by generating curved, twisting geometries in Rhino and Grasshopper, then cutting each piece on a CNC rotary axis. This process allowed every coopered brick to follow a predefined surface, achieving a curvature that would be impossible to create by hand.

3D print of Rhin3D print of Rhino model

SHAPING & PARAMETRIC DESIGN

The design began with surface shaping in Rhino, where a Grasshopper definition tweened curves across the form. Using BowerBird, geodesic curves were generated along the bench’s seat edges to guide these tweens. These curves controlled the flow of the wood grain, keeping the staves straighter to minimize waste and preserve structural strength.

One of the coopering bricks being cut on the CNC rotary axis with a swarf/flank milling operation.

To define the bench’s thickness, the curves were offset along surface normals. Python 3 scripts within Grasshopper, leveraging the RhinoCommon library, divided the geometry into a brick pattern and added small alignment details. The gaps between bricks were scaled according to their width, introducing subtle variations that enriched the surface texture.



A 3D-printed model of the Rhino geometry revealed excessive flex in the thin surface, prompting the addition of stretchers for reinforcement. Thrasher also scripted CNC commands to carve their mortises, ensuring perfect joinery alignment.

In process on the workbench upside down, being prepared for another round of glue-up. Cord clamps and alignment ball bearings are visible.

CNC FABRICATION

Each of the 325 wooden bricks and 13 stretchers, defined by four corner curves, was exported to a custom Python-based CAM framework for CNC program generation. The code solved for a rotary swarf (flank milling) toolpath, cutting each twisting element precisely. The full milling process took about 40 hours.

Stephen Thrasher working on the finish at the workbench.

Assembly required a custom clamping solution: high-strength cord clamps stretched across the interior of the bench to hold pieces in place while gluing. Small registration indentations, generated by Grasshopper, guided the placement of plastic ball bearings between adjoining bricks for accurate alignment. Gluing occurred in several stages, building one to three rows at a time.

The completed bench photographed with studio lighting

A NEW CRAFT VOCABULARY

The Peanut Bench demonstrates how computational tools can evolve traditional craft techniques. By blending coopering with parametric modeling, Python scripting, and CNC machining, Thrasher developed a repeatable method for creating complex, free-form wood surfaces that remain grounded in fine woodworking sensibilities.

View of the stretchers underneath

The project was designed in late 2024 and built during the first half of 2025. Beyond the bench itself, it serves as a proof-of-concept for an emerging CNC technique that could inspire other furniture makers exploring the intersection of digital precision and handmade craftsmanship.

A video documenting the process can be found here: The Peanut Bench, or Free-Form Coopering on a CNC Robot.

Side view showing parametric spacing

CREDITS

Designer & Fabricator: Stephen Thrasher
Institution: Massachusetts College of Art and Design (MassArt), Boston, MA
Tools: Rhino, Grasshopper, Python 3, RhinoCommon, BowerBird, Custom Python CAM
Machinery: AvidCNC 3-axis with rotary axis
Photography & Process Documentation: Stephen Thrasher


image_pdfSave to PDF