STL Surface Texture

To add texture to a 3D print, drop your STL, OBJ or 3MF below and pick a pattern: knurl, wood grain, leather, hexagons, carbon weave, bricks, stone, fine grain or your own height image. Set the depth in millimetres (positive raises it, negative engraves it) and the size, and the tool splits the surface into small triangles and moves them, so the texture is real geometry your slicer prints. Top and bottom faces can stay flat. Download a watertight STL or 3MF. It runs in your browser and is free.

Free · no signup · your model stays in your browser

Loading the tool...

How to add a surface texture to an STL

  1. 1

    Drop your model

    STL, OBJ or 3MF, read on your device and never uploaded. No model at hand? Try the 20 mm cube or the cylinder.

  2. 2

    Pick a pattern and projection

    Choose a built-in pattern or upload a black and white height image. Triplanar fits most shapes; use cylindrical for knobs, handles and vases.

  3. 3

    Set depth and size, then download

    Watch the live preview, keep the top and bottom flat if the part sits on the bed, and download the textured model as STL or 3MF.

What each setting does

SettingWhat it doesGood start
DepthHow far the surface moves, in mm. Positive raises the pattern, negative engraves it into the part.0.4 to 0.8 mm for FDM with a 0.4 mm nozzle
SizeThe size of one feature: one diamond of knurl, one hexagon, one brick, or one whole image tile.The default of each pattern
RotationTurns the pattern on the surface, for example to angle knurl or run wood grain sideways.0 degrees
ProjectionHow the flat pattern is laid onto the 3D shape: triplanar, cylindrical, spherical or planar.Triplanar, or cylindrical for round parts
DetailHow small the triangles get. Fine is sharper but makes more triangles; Draft is quicker.Normal
Skip top / bottomFaces within the angle of flat are left untouched, so the part sits flat on the bed.Both on, 20 degrees

Real texture vs fuzzy skin

Fuzzy skin in the slicer jitters the nozzle at random as it prints the outer wall. It is quick, but it only works on walls, the look is random noise, and it is hard to control. A surface texture changes the model itself: the pattern is in the STL, so you choose exactly what it looks like, how deep it is and where it goes, and every slicer prints it the same way.

Use it for grip on knobs, handles and tool parts (knurl, carbon weave), to hide layer lines on vases and covers (wood grain, leather, fine grain), or to make a plain model look finished (hexagons, bricks, stone). Upload your own height image for a logo, a pattern from a photo, or anything else: light areas rise, dark areas stay low.

How it works, and what to expect

The tool first joins the triangles of your file into one connected surface. Then it splits every triangle edge that is longer than a small share of one pattern feature (a third of it or less), again and again, until the surface is fine enough to carry the pattern. Each point then moves along the surface direction by the height of the pattern at that spot, times your depth. Shared points move once, so a watertight model stays watertight, and the page checks every edge and tells you.

Small features on a big part need many triangles. The tool stops at 2 million triangles on a computer and 600,000 on a phone, and says so when it hits the limit; make the Size bigger or pick Draft if that happens. Very deep engraving on thin walls can break through, so keep the depth under half the wall thickness. The code was written for this page and runs in a background thread in your browser.

Make it, texture it, colour it

Start from an image, add a printable texture here, or paint it in colour with AI. The guide texture an STL for 3D printing covers the colour route.

Frequently Asked Questions

Drop the STL on this page, pick a pattern such as knurl or wood grain, set the depth (0.6 mm is a good start) and the size, check the live 3D preview and download the textured STL or 3MF. There is nothing to install, no Blender and no signup.
It is different. Fuzzy skin is random nozzle jitter added by the slicer, only on outer walls. This tool puts a pattern you choose into the model itself, at the depth and size you set, on any face you want, so the result looks the same in every slicer and on every printer.
Yes. Click Upload image and pick a PNG, JPG or WebP. Light areas are raised and dark areas stay low (tick Invert for the opposite). The image repeats across the surface; Size sets the width of one copy in mm. Seamless, tileable images give the cleanest result.
For FDM with a 0.4 mm nozzle, 0.4 to 0.8 mm raised is easy to see and feel, and about 0.3 mm is the least that shows clearly. Engraving (negative depth) works too; keep it under half the wall thickness. Print a small test piece first.
Yes, if Skip bottom faces is on (it is by default). Faces within the angle you set of flat are left exactly as they were, so the part still sits flat on the bed. Skip top faces does the same for the top.
Triplanar works for almost anything and is the default. Cylindrical wraps the pattern around the up axis with no seam, which is best for knobs, handles, cups and vases. Spherical is for balls and domes. Planar stamps the pattern straight down, which suits flat plates and tiles. If your OBJ lies on its side, change the up axis.
Yes, if your file was. The surface is joined before it is split, shared points move once, and the page checks that every edge is shared by exactly 2 triangles. If your model already has holes, the result will too: fix it with STL repair first.
A fine pattern on a big part needs a lot of small triangles. To stay fast and fit in memory, the tool stops at 2 million triangles on a computer and 600,000 on a phone. Make the Size bigger, pick Draft detail, or texture a smaller part.
No. The model is read, textured and written by code running in your browser, so it never leaves your device. It’s free, with no account.