HashTable: An Algorithm for Material Reuse


There is a great deal of waste in fabrication shops. According to our observation, 1/2 – 2/3 of the material surface area is left out in most CNC cuts. Due to their irregular shape, scrap material usually fails to fulfill another cutting request and are therefore discarded.

In MadFab — an MIT student furniture design competition — we¬†proposed a program that recognizes usable regions from the photos of scrap material and algorithmically search for an optimized layout to cut out a given design. Unlike ordinary digital fabrication systems, this process contains feedback loop from the physical object to the CAD environment to the physical object. By doing this, the material cost and waste of digital fabrication may be greatly reduced.
To implement the process, the user should photograph scrap sheets on a distinct background:

Then, through an interface implemented in Java, the user may pick a size and shape for the desired table/bench. The program will vectorize the photos and recognize reusable regions.

It will then search within these regions proper placement for the parts of the table. If a part is too large to fit in, it will be subdivided in a way that can be reassembled. Finally, the program will output the results to files that can be directly sent to the CNC cutting technology of choice (laser, router, water jet).

Upon cutting the scrap material, the final pieces can be assembled following an instruction generated by the program.

At this stage, the algorithm has been fully implemented. In the mock-up program the shape of table is chosen among six Cyclotomic Rhomb 7-Fold Tiling shapes which can be subdivided into their scaled selves.

Placing the parts is recognized as a 2-D packing problem with irregular shapes. In our current implementation pieces are placed in the order of area. The quality of a placement is measured by the distance between the vertices of the piece to the vertices of the scrap sheet. A hill-climbing algorithm is used in the searching.

The project was final listed in the competition.

Tools used: Java, Illustrator
Collaborator: Ari Kardasis

Softly Rigid


This is for 4.553: Digital Fabrication by Dennis Shelden. The assignment asks us to explore the process from digital to physical representation, and reverse. It eventually became an interesting experiment for me to push the boundary of materials.

I was inspired by the shape of tea bag — through folding, soft material such as plain paper might gain strength and form a designated shape. I wrote a Rhinoscript that translates any free formed, double curvature surface into print patterns that can be cut out and folded.

Of course, not all surface can be perfectly unrolled to the plane. However, I can guarantee that the curvature at each joint is correct. The original surface:

The unrolled unit shapes generated by the script:

A physical test model:

Tools used: Rhino

Twitter Tag Cloud Live!


When analyzing the web contents of SNCF, I made this realtime tag cloud charter for Twitter. It’s a lot of fun.

Category tree view:

Relevance network view:

Click to play with the app:

Tool used: Processing

The Copenhagen Wheel: Data Viz Journal III


Presentation of the Copenhagen Wheel project at UN Climate Summit for Mayors in December was a huge success. I would like to post a few videos here which is related to my work:

The online user interface:

The idea was that pollutant information collected by the sensors embedded in wheels were transmitted to our server through smart phones. A web interface, accessible with both pc and phones, showed pollutant distribution in real time. One could browse his own data, keep a record of his contribution to a greener city, challenge with friends, and get route suggestions according to pollution level. The city management could keep an eye on the city and react to dangerous level of pollutants right away. The complete and high-definition record of pollutant maps could also cross-reference with land use, weather, transportation etc. in urban research and in long term, support policy decisions.

Tools used: Processing

Customizable Production II: Tree


This starts from a project for 4.510: Materializing Design by Prof. Larry Sass.

We made a web applet which support making customizable tree-like canopy for coffee shops. User can access to our website, build his own design in friendly 3d interface, take the generated CAD file to any nearby CNC machine and cut the parts from 3/4” plywood sheets. Following online instructions, he can assemble the parts with a few untrained men. Everything is finished locally.

We have tested the system with prototypes in various scales. The latest ones are 1:6 models made from 1/8” masonite with lasercutter. Metal pieces are cut with waterjet and hand bended. Right now the shape and angle between parts are chosen to simplify design and assembly. Next version in our plan will work with advanced machines and materials to support more flexible and fluid surface designs.


Collaborator: Felecia Davis
Tools used: Processing, Rhino, AutoCAD