How can I create a geometric pattern texture like this in blender?

geometric pattern

  • 5
    $\begingroup$ This site is more gered towards learning from each other. If you just want someone to do it for you there is a payed work section at Blender artists forum $\endgroup$ Aug 4, 2018 at 15:09
  • 3
    $\begingroup$ Related Welcome to bse,., albeit an inauspicious start lol. Try re-working question into a how-to , rather than a request. Include what you have tried, or found so far etc... . $\endgroup$
    – batFINGER
    Aug 4, 2018 at 18:04
  • 1
    $\begingroup$ Start by creating each glyph/character as individual Mesh/Curve/Text object. Then group them together with CTRL+G. Now you can create the base mesh and add a Particle Emitter set to Hair with the Render panel set to Group and select your group. This will create a scattering of the Glyphs across your mesh. There are lots of settings to be tweaked when using Particle systems so have fun and if it does not create the results come back with what you tried. The more information you can give us and the more things you try the easier a complete solution can be proposed. $\endgroup$
    – rob
    Aug 6, 2018 at 12:31
  • 1
    $\begingroup$ I did a little experiment creating the texture using blender. It got this result: i.sstatic.net/GWnZm.png (blend file: blend-exchange.giantcowfilms.com/b/5087). I could write an answer explaining how I did it, but we'd need to edit this question to get it re-opened. $\endgroup$ Aug 6, 2018 at 22:27
  • 2
    $\begingroup$ I've re-opened this question, and I apologize for all the miscommunication happening here. Generally speaking we prefer questions arise out of an effort to achieve the desired effect/solve the problem. This usually ensures that the question is about a well defined topic which can be well addressed in a short answer. That said, trying it first, though highly encouraged, isn't necessarily required. Given the question is now asking how to do something, rather than for something to be done, it's now on topic. Sorry about the delay, and thanks for your patience :) $\endgroup$
    – gandalf3
    Aug 13, 2018 at 22:07

1 Answer 1


I think the best way to create this pattern is by using an image texture. The procedural texture tooling blender provides is simply not equipped to create shapes like that.

Fortunately, we can stil create our shapes in blender, and render them out.

The shapes in the provided image are quite simple, and we can create them using curves.

Creating the Shapes

To add a curve, use ShiftA>Curve>Bezier. Hit Tab to go into edit mode. You can now edit the curve by transforming the handles. In order to keep your shapes flat, I recommend editing in top down orthographic view (Numpad 7).

To get the rings like in the picture above, you can add a Bezier Circle (ShiftA>Curve>Circle).

We will need to give them thickness. Change to the curve properties window, and replicate the circled settings:

enter image description here

You can adjust the Bevel Depth to change the thickness. This will turn our curve into a 3D tube.

Rendering the Shapes

We will start off by setting the materials. Add an emission shader to your shape, with the strength set to 1. You can set the emission color to set the color of your shapes. I chose #E79F69. An emission shader with the strength set to one will have a uniform color no matter what lighting or camera position is used.

enter image description here

The reference has a black background. We can recreate this by setting the world color to black:

enter image description here

Now we need to setup a camera to render this. Since are shapes are supposed to appear 2D, but are infact tubes, we will have to get rid of the perspective. Otherwise the shapes further from the center will have funny shaped ends, rather than the flat lines we desire.

enter image description here

Left: With Perspective, Right: Without.

To fix this, we can use an orthographic camera. To set a camera as orthographic, go into the camera properties, and change it to orthographic. to "zoom" in and out, you can change the Orthographic Scale.

enter image description here

You will also want to position your camera so that it faces top down, and is centered. With your camera selected, go into the object properties panel. Set the X and Y values to 0, and all three rotations values to 0 (Shortcut: AltR).

enter image description here

Lastly, set the image to be square, this makes working with textures much easily. This can be done in the render panel, by setting the resultion. I recommend 2048 x 2048.

Scattering the Shapes

Now that we have setup our scene, and modeled all the shapes, its time to scatter them.

There are two ways to do this. Manual instancing, and particle instancing.

Particle instancing will automatically distribute the shapes over a plane. However, it has some drawbacks. It can take work to setup, and it will be difficult to get the shapes to pack tightly without intersections. Its also extremely difficult to get the shapes to tile.

Manual instancing Each shape is manually instanced (a fancy duplication method). The advantage is that the layout can be customized and tiled relatively easily, the downside is that for large areas it can become tedious and time consuming to setup.

For this demo, I will stick to manual instancing.

To instance a shape, select it and hit AltD. This will act like ShiftD, but with one key difference. The shapes are linked. If you edit one of the shapes, all its instances will have the edits applied. This also saves computer memory when rendering.

To spread the shapes out, select a random shape, instance it, and place it randomly. Rinse and repeat.

enter image description here

Tiling the Shapes

Now comes the really fun bit. We want to cover a large surface area in shapes, and we want the shapes to be sharp in the picture, but we don't want to have to use a massive image. We can get around this by tiling the shapes.

Tiling is when the edges of an image line up so there is no visible gap. This means the shapes on all four edges of our spread will need to be identical, and positioned identically relative to the camera.

Because we need the edges to line up, certain areas of the image will need to be identical. All four corners will need to match up (red), and the edges will need to match their opposite:

enter image description here

Basically, we will need to replicate a roughly square shaped patch of pattern to all the corners, and two roughly rectangular slices of pattern across the edge.

Positioning the patches

To start, we need to get the repetition interval. This is how often our pattern needs to repeat. In this case, our repeat interval is the same as the height/width of the scene. This number is the same as the orthographic scale mentioned above, which in my scene is 22.7.

For simplicity sake, I will refer to the repeat interval from here on out as ri, and half the repeat interval as ri/2.

To make lining things up simple, the patchs should not be too thick, or two thin. I recommend making them about 2.5 times the average size of a shape. Since my shapes are about two blender units across, I made my patches by 7 units wide. This means the corners will be 7x7 squares. The edge patches will now be ri - patch width in length (and path with in height).

using my numbers:

22.7 - 7 = 15.7 therefore the edge patches in the example will be 15.7x7.

In order to get our shapes to roughly line up with the edge patches, we can make some planes to use as reference. Add a plane (ShiftA>Mesh>Plane) in the properties sidebar (Toggle with N) set the x dimention to be 15.7 and the y to be 7. Duplicate the plane ShiftD and set its location to be ri/2 (11.35) on the y axis. It should now be in position like so:

enter image description here

We can now take our other plane (not visible in the above screenshot), and rotate it by 90 degrees (R90) and set its X location to 11.35.rx

enter image description here

I'll skip adding a reference plane for the corner since it is pretty easy to see where the corner is.

Filling in a Patch

We will start by filling in the horizontal patch. Instance (AltD copies of your shape and spread them around inside the patch. Its okay (acutally good) if the shapes stick out a little (especially on the long edges) so there is no seam. We can tweak the patches later if they overlap.

enter image description here

Instancing the patches.

We now have the horizontal patch. However, we will need to replicate it. Duplicating it would make tweaking hard later, since every patch needs to be fully identical. Therefore, it would be much better to instance the patch.

The bad news is that AltD won't work for us. That only replicates the mesh data, we want to copy the object transforms as well. So instead of instancing the mesh, we will instance a group of objects.

Begin by selecting all the objects in your patch. Then hit ⎈ CtrlG to group them. Hit F6 and name the group "Horizontal".

With the objects all selected, go into the object properties panel, and set the groups Y offset to half the repeat interval (11.35).

enter image description here

Now we can create a new instance of the group, ShiftA>Group Instance>Horizontal. Set Y transform of this new group instance to negative half of the repeat interval (-11.35).

We now have one edge done. Repeat for the other edge.

For the corner, you must add three additional instances, one at (x=ri/2,y=-ri/2), one at (x=-ri/2,y=ri/2), and one at (x=-ri/2,y=-ri/2).

The end product should look like this

enter image description here


There are some ugly gaps, and some of the shapes seem to have collided, or are too close. We can now select and move shapes that are parts of the original groups, to fill gaps and separate collisions. Because they are instances, all the corresponding groups will remain identical, and will therefore tile correctly.

Fill in the middle

the middle can be haphazardly filled in as described in the section on scattering the shapes.


In the end we get this:

enter image description here


enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .