At this point I am

Right now the edge and joint (chamfer) thicknesses are uniform. I would like to add code to parametrically control these thicknesses to make more interesting, organic shapes and also for engineering applications. For example, I would like to have thicker edges where the outer shape of the meshagon is 'thick' and thinner edges where the meshagon is 'thin'. Parametric control of edge thickness and chamfer would be useful for developing optimized engineering structures and for infill.

There is definitely many rooms for improving the code. I am very interested in using GPU acceleration for the meshing algorithm. I think this is very 'do-able' because the main force/optimization step in the meshing algorithm is already vectorized. I think full parallelization could provide orders of magnitude speed improvement. Parallelizing the alpha-shape construction is also possible. I envision building a 32 cpu box (in my dreams :) capable of truly massive meshagon construction...

I'm always interested in new ideas and applications so feel free to email me at tcd@tcdoe.com. Meshagons would make awesome 'lampshades' for innovative lighting. I am also interested in 'jewelry' applications. Small meshagons can be printed in silver, bronze, or even solid gold. The possibilities are exciting. Imaging having your own one-of-a-kind meshagon jewelry or sculpture, keeping in mind that these are the first ever. Ever. See some exciting new jewelry examples here.

**finally**very happy with the meshagons. After years of work, many problems have been solved and I have reliable methods/workflow. Still, there are many areas that I would like to improve and new ideas to pursue.*Control of edge and joint thicknesses*Right now the edge and joint (chamfer) thicknesses are uniform. I would like to add code to parametrically control these thicknesses to make more interesting, organic shapes and also for engineering applications. For example, I would like to have thicker edges where the outer shape of the meshagon is 'thick' and thinner edges where the meshagon is 'thin'. Parametric control of edge thickness and chamfer would be useful for developing optimized engineering structures and for infill.

*Code and speed improvements*There is definitely many rooms for improving the code. I am very interested in using GPU acceleration for the meshing algorithm. I think this is very 'do-able' because the main force/optimization step in the meshing algorithm is already vectorized. I think full parallelization could provide orders of magnitude speed improvement. Parallelizing the alpha-shape construction is also possible. I envision building a 32 cpu box (in my dreams :) capable of truly massive meshagon construction...

*New 'Iconic' shapes/sculptures*I'm always interested in new ideas and applications so feel free to email me at tcd@tcdoe.com. Meshagons would make awesome 'lampshades' for innovative lighting. I am also interested in 'jewelry' applications. Small meshagons can be printed in silver, bronze, or even solid gold. The possibilities are exciting. Imaging having your own one-of-a-kind meshagon jewelry or sculpture, keeping in mind that these are the first ever. Ever. See some exciting new jewelry examples here.

**Currently, meshagons can actually be printed up to approximately 1x1x2***Large scale art/installations*

**in size (that's pretty large) although costly (in the thousands of dollars or more). BUT, I can envision how***meters***amazing**these would be. I envision larger sculptures (how about 3x3x3 meters!!). Of course these would have to be printed in sections, but it could definitely be done even with technology available now. A meshagon at that scale would be*very impressive*in a museum exhibit or corporate lobby. The combination of art and engineering would make an astounding impact. I believe that with the rapid advances in 3-D printing the costs of printing large scale sculptures will certainly be feasible.*7. Rooms for Improvement : Sculpture Ideas and Code *

After all this work, the meshes were manifold (as per Meshlab analyses), but still not suitable for 3-D printing. They were 'jagged' and uneven. This had to be fixed. I experimented with several smoothing methods in Blender and other codes with no luck. The problem was that any 'smoothing' step would 'break' the mesh and I would be left again with a non-manifold mesh (which of course is not printable). Then, I had another breakthrough. I had been experimenting with Taubin's smoothing method for another FE project, and my colleague suggested "why not try that for meshagons". After writing a bunch more code to implement a custom Taubin method, it works.

*6. Smoothing, fairing, and output for 3-D printing (success! )*

Well, I didn't give up. Although frustrated, I continued to try all kinds of things such as various boolean methods in Blender, Rhino, Meshlab (and others). Unfortunately booleans wont work with the complex joints of a tetrahedral mesh-solid. I tried subdividing the surface and re-meshing with many variations of order and methods (nope). It seemed for a while that nothing would work.

Then, I read a description of an interesting class of objects known as "alpha shapes" (link). I wrote more code to generate alpha-based structures from my FE node-edge meshes with iterative improvement of joint toplology (basically, moving nodes to achieve manifold at all joints).

I'm sure that there are more ways to improve performance, and future work will improve speed. Of course, a cluster of fast computers would be great. I am looking into Amazon cloud computing.

Then, I read a description of an interesting class of objects known as "alpha shapes" (link). I wrote more code to generate alpha-based structures from my FE node-edge meshes with iterative improvement of joint toplology (basically, moving nodes to achieve manifold at all joints).

**And... it works.**I finally had fully manifold structures, but at a price. It was**In my first tests it took 30-60***super-slow.***HOURS**to generate one simple structure. I'm not going to go into detail here, but after some serious code analysis I have the process down to about 3-4 hours for a medium-large mesh. Good enough for generating some beautiful examples.I'm sure that there are more ways to improve performance, and future work will improve speed. Of course, a cluster of fast computers would be great. I am looking into Amazon cloud computing.

*5. Finally, a solution that works*

I investigated several softwares and approaches to expanding wire-frame meshes to volumes (3DSmax, Meshlab, Netfabb, Rhinocerous, Grasshopper, and even other custom codes with no success). In Blender there is a 'skinning' algorithm that somewhat works. It works for simple 'branches' where there are only 2 or 3 connecting edges and the angles are not sharp (e.g. >40deg). But after that it fails to generate a manifold surface. Tetrahedral FE meshes often have 10 or even 20 edges joined at a node (see below). It seemed like an intractable problem. I submitted the issue to various forums (e.g. blender (see here), blenderartists, etc.) and I was told that

*basically it is impossible.***I almost gave up.***4. Manifolds and difficulties*

The 'sticks-and-balls' worked... but ultimately it wasn't satisfying. What I really wanted was a continuous smooth-manifold mesh without having to have 'balls' at every joint. I didn't want the meshes to look like molecules. The balls did serve the purpose of allowing multiple edges (e.g. sticks) to join, essentially 'masking' the overlapping end-caps of the edge struts,

**Thus, using this 'sticks-and-balls' approach I could not perform whole object decimation or other manifold operations. Achieving a smooth manifold turned out to be a tough problem.***but it was still not a continuous manifold structure.*Here's where things got 'tricky' and the story gets embarrassingly long. My original 'simple' goal was to take the 'wire-frame' FE mesh, consisting of 'nodes' (i.e. joints) and connecting 'edges' (tetrahedra) and somehow 'thicken' them into volumes suitable for 3-D printing. The first thought was to use a molecular modeling approach. After all... molecular models visualize atoms as 'balls' and the bonds as 'sticks', so that is very similar to a mesh. Well, it sort-of worked. I got some great help from Patrick Fuller and Chris Wilmer to get my meshes displayed as 'sticks and balls' in Blender3D and it looked quite promising... I wrote more code to convert tet-meshes to the JSON data format. I have produced several FE mesh models using this method, and am still interested in pursuing this approach for sculptures, particularly in the future

**.***in color**3. A First Attempt: Molecular Modeling*

The meshing code is a bit slow as I am not a computer science expert (I could definitely use some help here). It can take several days to generate a high quality mesh on my (getting old now) 1.8 GHz quad Intel... There are some other drawbacks; e.g. there is limited GUI (it's mostly command line) and it's not fully parallel (just vectorized). I do most of my visualization of mesh and FE results in Gmsh. Still, my meshing code works great, is robust and automated. In many cases 'beats the pants off' the available expensive commercial codes such as Simpleware and Materialize (I'm bragging a bit here) . But to make meshagons, the problem of 'slivers' had to be addressed.

The algorithm first searches and finds all 'slivers' in a mesh and then uses a brute-force method to identify and surround each sliver with it's nearest-neighbor tetrahedral 'most convex' manifold. The slivers are then removed by either edge-flipping (for simple cases) or by optimally adding new nodes within the local manifold and re-meshing until each sliver is resolved. It's slow, but it works.

Removing slivers is

**Slivers**are a major problem for tetrahedral mesh generation. A 'sliver' is a poorly shaped (flat) tetrahedron that*always*results when**Delaunay mesh generation methods**are used. Slivers are essentially very 'flat' tetrahedra. They are*very difficult*to remove. I've spent 8+ years (no kidding) delving into the topology and writing code to remove slivers (recently successful, I might add!). Detailing my solution for sliver removal is far too lengthy for this reading, but I'll summarize:The algorithm first searches and finds all 'slivers' in a mesh and then uses a brute-force method to identify and surround each sliver with it's nearest-neighbor tetrahedral 'most convex' manifold. The slivers are then removed by either edge-flipping (for simple cases) or by optimally adding new nodes within the local manifold and re-meshing until each sliver is resolved. It's slow, but it works.

Removing slivers is

*for creating topologically manifold***essential****meshagon sculptures.**The issue is if you have a very flat tetrahedron (sliver), the edges of the tetrahedron come very close to overlapping. This results in an impossible situation for the conversion of the mesh into a**meshagon**(if the edges overlap, then the topology is no longer manifold). After several more months of work the 'sliver problem' is solved, but there are still more topological problems/issues, as I would find out...To make a mesh, we start by building some kind of

Shown in the slideshow (left) are some images of the SuperSlicer software for reconstruction of 3-D volumetric data and some typical results. Also shown are some details of 'slivers' and mesh of a vertebra and tendon.

I have written my own tetrahedral mesh generator based in part on code/concepts from Olaf Persson (distmesh) and the CGAL libraries (cgal.org). I can now mesh pretty much any single or multi-domain volume (e.g. arteries and complex objects from CT/MRI or drawn in Blender, etc) and have written supporting code such as a voxel-to-surface converter, boundary cohesion and smoothing filters (and many others).

**surface**. For that I use my own software written in Matlab (SuperSlicer) to create surfaces from MRI or CT scans. For manipulating the resulting 3-D objects I mostly use Blender3D and Meshlab. I've been using Blender for several years now and can manipulate complicated surfaces quite easily.Shown in the slideshow (left) are some images of the SuperSlicer software for reconstruction of 3-D volumetric data and some typical results. Also shown are some details of 'slivers' and mesh of a vertebra and tendon.

I have written my own tetrahedral mesh generator based in part on code/concepts from Olaf Persson (distmesh) and the CGAL libraries (cgal.org). I can now mesh pretty much any single or multi-domain volume (e.g. arteries and complex objects from CT/MRI or drawn in Blender, etc) and have written supporting code such as a voxel-to-surface converter, boundary cohesion and smoothing filters (and many others).

**Developing Meshagons: **The Long (long) Story

*2. Meshing, 'thickening' , and the sliver problem*

*1. Origins*

Mesh of a human knee

**Meshagons**evolved from my research work (and class teachings) in Finite Element (FE) meshing/analyses. I have been working in FE mesh generation for over 15 years. In particular developing single and multi-domain FE meshes mostly for Bioengineering applications. FE meshing and analysis is

**by far**the most widely used tool for analyses of stresses and deformations of materials/parts; from car engines to airplanes, architecture, and biological tissues/implants. If you are interested in FEA in general, a couple good places to start are:

http://en.wikipedia.org/wiki/Finite_element_method

http://www.sv.vt.edu/classes/MSE2094_NoteBook/97ClassProj/num/widas/history.html

There are so many applications of FEA; too many to even begin to list. A quick search on google images shows the amazing variety of meshes and solutions (click here). I've always been fascinated by the meshes and visualization. I have developed several tools in Matlab, Blender3D, Meshlab, and Gmsh to visualize tetrahedral FE meshes in 3-D. But these are all 'on the screen'. They are useful for visualizing and better understanding of mesh structure (and for presentations), but it is still just on the computer display.

Then, about two years ago, I had an idea... Given the advent of new 3-D printing technologies, what if I can actually

*a 3-D mesh for 'real'? Can I make a 3-D printable solid out of a 'wire-frame' tetrahedral mesh? Sounds interesting!***print**

At first I thought, "Sure, that will be easy", but it turned out to be a challenging problem. Mostly due to difficult topological issues (detailed in parts 3-4 below) and the resolving of 'slivers' (very thin tetrahedra, part 2 below) that are a result of (as far as I know) all Delaunay based tetrahedral mesh generation algorithms.

## Meshagon Jewelry Gallery

Below are the MOCA (Museum Of Contemporary Art, Cleveland) Finite Element mesh pendants (and some more), available in hand-polished brass, gold plate, solid polished silver, and black. The MOCA pendant geometry is taken directly from the MOCA building dimensions with compression (i.e. 'flattened') by 25% in the Z-direction. The goal is to embody the MOCA architecture in a 'purely' simplified tetrahedral/mathematical mesh form. Click on the images to enlarge. (Note: for info, questions, or pricing please email me at tcd@tensortek.com) |

Here is a geometrically 'long' version of the MOCA pendant in printable polished silver.

The new "disc" pendants: Perfectly circular Finite Element meshes in both silver and gold (I'm very happy about how these turned out).

This is a new, unique 'oval' pendant. Many other designs using the Meshagon FE modeling method are in development.

More to come...