A new way of generating infill meshes for 3D printing objects

Dear reader,

I wish to propose a new method of generating new infill meshes for 3D printing objects. However, let me first give a brief background. Over the summer I worked as a software developer at Oak Ridge to create a suite of tools that apply the mathematical concepts of Circle Packing to generate graphs (Computer Science graphs) that were later used as the meshes for infills. The overall goal was to create meshes that used less printing material but had sufficient physical integrity to still perform its role as a support structure. The end result would ideally be a strong mesh that was still light-weight. An image that illustrates this is shown below:

I will also add here that we wanted a way to “densify” the mesh in custom regions in order to selectively increase the physical strength in specific areas of the print. In the image above for one layer of a 3D airplane wing, based on the assumption that the edges would experience more stress, we selectively refined the mesh in 2 layers around the edge using a technique developed by Ken Stephenson, a math professor at the University of Tennessee.

Later on, the project leader for this area of research at the Lab, Greg Dreifus, suggested that we could maybe extend the concepts to 3D. Specifically, he wondered if we could build 3D meshes instead of 2D meshes by using Sphere Packing instead of Circle Packing. In order to demonstrate the idea, I worked on a new software that generates a Sphere Packing given a 3D object encoded in an STL file. This new software is based largely on a Circle Packing implementation by John Bowers, a computer science professor at JMU. An example of the software’s capability is shown below:

We hope to further develop the software into a tool that can produce meshes of varying density in custom regions of the 3D object.


Thanks for reading,



Write a Comment


  1. Dear Xiang,

    Great work.
    Is the source code for the 2d mesh generation based on circle packing with “densify” feature available? I am looking for a similar solution for a diy project.

    Best regards