Random Mesh Pattern Synthesizer

Random Mesh Pattern Synthesizer

December 14, 2018
Steve DiBartolomeo
Applications Manager

RandGen is a customized program used for generating a photo mask of a mesh pattern. What makes this pattern unusual is that it must be randomized in order (I assume) to eliminate (or reduce) resonances that would otherwise arise if the geometries were uniformly spaced.

Basic Pattern

We start with a number of "hubs" that are placed equidistant from each other based on a hexagonal (honeycomb) pattern.

hubs placed using a hexagonal pattern


Each hub is connected to its 6 neighbors with a spoke. The line width of the hub and spokes is the same.

spokes connect each hub to its 6 neighbors

Randomized Placement

If this was our final pattern then generating it would be a very simple exercise in geometry. However, knowing that the application is related to RF shielding, we would be concerned about resonances -- i.e. where the wavelength of the signal hitting the mesh is a multiple (or maybe the 1/4 or 1/2 wavelength is a multiple) These resonances might produce directional reflections or even make the mesh "transparent" at certain frequencies.

One can reduce resonances by avoiding uniformly spaced repeating structures.

So a second requirement is set:

  1. perturb the location of each hub by a random value and direction. (Obviously the value needs to be limited)
  2. the position of each hub is perturbed in any direction and with magnitude ranging from 0 to P - where P is the maximum allowed magnitude.

  3. perturb the angle of the spokes connecting the hubs. This will also affect their length.
  4. the angle of the spokes connecting the hubs is also randomized -- contraints are used to insure no spokes cross or touch each other.

Computation Issues

There are a number of ways to approach the problem but they need to be selected knowing that the number of hubs can be quite large. Requested extents have varied from about 6 x 6 inches up to 32 x 32 inches.

Since for many applications the pitch from hub to hub is around 200 um, a 6 x 6 inch pattern would require:

                        [6 x 25,400]2
                        ------------  =  580,000 hubs

and for a 32 x 32 inch pattern the number of hubs increases to:

                        [32 x 25,400]2
                        -------------  =  16,400,000 hubs

While generating and keeping track of 16 million hubs is certainly something we can do, generating the spokes and clipping to the edges of the random hubs is a more difficult exercise. It is here where better algorithms and memory management come into play.


As we needed to deliver the random program very quickly, we decided to use a lot of existing infrastructure. We did this by implementing the software as a plug-in to AutoCAD.

  1. AutoCAD for the user interface
  2. Our existing AutoCAD Library for computations
  3. AutoCAD to Generate the Primitives
  4. AutoCAD to export a DXF file


There are a couple of downsides to this approach:

AutoCAD starts behaving poorly when the database contains a large number of entities. This limits the size of the pattern that can be generated.

AutoCAD's DXF file is rather inefficient and gets very large as the entity count grows.

User Interface

RandGen is installed into AutoCAD and is started from a drop down menu. The user only has to select the option: Generate Random and a dialog will open that accepts the parameters. Once the parameters have been filled in and the Run button clicked, the program will generate the pattern.

Most users will then export the DXF file and pass it to the CAD department. The DXF file will likely be converted into GDSII (or Gerber) and it may be stepped once in those formats.