📐 Set this before you start, and write it down. Every map atlas in a texture set has to
share the same dimensions. If you export some maps now and the rest in a later pass, use the same tile
size and layout both times or Tomb Engine cannot line them up. Opening a saved project uses whatever
size it was built at.
📤 Upload an atlas
Got a texture atlas already? Drop it in and cut it into tiles you can work on one by one.
📁
Drop atlas here or browse
PNG · JPG · BMP · WebP · TGA · PSD
Slice Atlas cuts the whole image on an even grid. Pick tiles… lets you
set the grid and choose only the cells you want, which is handy for ripping a single texture or
stitching one atlas together from several.
🆕 Create a new atlas
No atlas yet? Start with an empty one and drop textures into it a tile at a time. Good for building a set from loose images.
You get one row of empty slots at the tile size above. Click a slot to add an image, drop files
on it, or point at it and paste.
📂 Load existing atlas project
Been here before? Open the ZIP you exported last time, or a saved .atlasproj.json, and pick up where you left off with every tile, material and transition intact.
Export ZIPs carry the project file inside them, so the ZIP the tool gave you is all you need. Keep
Include project file in ZIP ticked on export and every export stays re-openable.
Working in a folder?
reopens the project that lives there and keeps the folder linked.
🎇 Make sprites
Sparks, twinkles, flares and glows for Tomb Engine's sprite slots. No atlas needed.
Exports a ZIP of numbered frames to add in WadTool, plus a small .atlassprites.json
settings file you can open again later.
2️⃣ Atlas Elements
🖱️Right-click an element: Make Seamless · Make Transition with Texture · Set Material.
Drag a tile onto another to swap, or into a gap to insert. Click an empty slot to add an image.
Drag a box to select, Ctrl/Cmd+click to add or remove one, Shift+click for a run in atlas order.
Transition tiles inherit their parents' materials.
🔒 Base texture locked, now click a second element to build the transition
0 selected
Layout×
3️⃣ Export Atlas + Material Maps
⚠️ Height (parallax) maps are expensive in Tomb Engine, and they change more than performance.
A height map also switches SSAO off for that material and disables bullet holes,
explosion marks and other decals on it. Parallax is also incompatible with animated, double-sided
and mirror textures. Prefer applying height to individual textures rather than a whole
atlas, so you can judge each one and drop it where it isn’t worth the cost.
⚠️ Some of your tiles have transparency.
Their holes are kept flat in the height map, but parallax shifts the texture before the holes are
cut, so a cutout’s edges move with the relief and can be eaten away or show through. Check fences,
grates and foliage in game, and drop Height for those textures if it looks wrong.
📐Every map atlas must share the same dimensions.
Texturetool guarantees this automatically when you export all maps together here.
But if you export maps in separate passes, e.g. just the normal map now, other maps
elsewhere or later, make sure the tile size and layout match every time,
or Tomb Engine will throw an error and not load your material maps!
💡
📁 Or work in a folder
Skip the download and unzip. Pick your working folder and the tool writes the atlas and its maps straight into it. Your browser asks for permission to that one folder, and only after you click Link working folder.
● unsaved changes
Empty slot
🔄 Make Seamless, Tile
🔀 Make Transition, Tile → Tile
Base (A)
→
Overlay (B)
For building an island or a hole by hand from single tiles. Ticked, the corner buttons (↖ ↗ ↙ ↘ ◤ ◥ ◣ ◢) and the four full-edge buttons make tiles whose corners meet the edges exactly, the same shapes the Full Set's Seamless corner style uses. Unticked keeps the original shapes.
Paint white where the overlay (B) should show through. The mask is softened automatically. One tile is added.
🌿 Organic edge (blobs, spikes, drips…)
Off at Amount 0. The detail is faded out at each tile border, so the tile still meets its neighbours exactly where it did before, a Top transition laid in a row stays seamless left-to-right however high you push it.
Applies to the Directions presets. A hand-painted Custom mask is already whatever shape you drew, so the panel is hidden for it.
The whole arrangement is added to the atlas laid out exactly like the preview, so it reads as one connected terrain patch when picking in Tomb Editor. Pivot & Hardness above shape every edge; plain cells stay linked to their source tiles.
🌿 Organic edge (blobby, hand-painted boundary)
Off by default, Amount at 0 gives the clean geometric boundary. Raising it keeps the set exactly seamless; the detail is faded out at each tile border, which is the only place a neighbouring tile's pixels would be needed.
0 = on the base, 100 = on the overlay. A pale colour on Tint near 100 gives a lit rim instead of a shadow.
Softens only where the style moved the boundary, the teeth, the flecks, the deepest lobes. Hardness above widens the blend across the whole tile instead, which flattens the shape.
Adds the set more than once, each with a different noise draw. Cycle them along a boundary so a run of the same tile doesn't read as a repeating motif. They stay seamless with each other.
🩹 Heal / Fill, Tile
Raise Edge softness to feather the selection so the fill blends out instead of stopping at a line. 🪄 Wand grabs a watermark or logo by colour.
BeforeAfter (updates as you paint)
🫥 Fade to Transparent, Tile
Fades part of the tile to nothing (alpha → 0). Great for decals, cobwebs, dust, leaves, foliage, that should blend into the surface instead of ending at a hard edge.
🌿 Organic edge (blobs, spikes, drips…)
Off at Amount 0. Breaks the fade's outline up so leaves, moss and grime stop ending on a mathematically straight edge.
On Direction / slope the detail is faded out at each tile border, so a slope-faded tile still joins up. On Edges (vignette) it is not, because a vignette takes all four borders to nothing and the tile cannot repeat anyway.
Paint where the tile should fade to transparent.
🏔️ Make Height Map, Tile
A height map drives real parallax in Tomb Engine: high points shift in front of
low ones as you move, so joints and carvings genuinely recede. White is the surface, black is deepest.
⬜ Edges, fade to white
Nothing happens until you paint something. This scales every painted region at once, for a shallow dent and a deep alcove on one tile, paint them at different Depths.
Grab it and turn it. The relief flattens as you rotate away, that is parallax doing what it does in game, not a fault in the map.
✨ Make Emissive, Tile
Authors a glow (emissive) map for this tile, areas that shine on their own, independent of scene lighting. Pick what glows, then how it's coloured. Black = no emission.
Tip: click the source preview to eyedrop the target colour from the tile.
Tip: click the source preview to set the hue from a pixel. Good for lava, poison, crystal, neon.
Paint on the source preview, on the right, where the tile should glow.
These scale the whole glow map, painted areas included. To make one region dimmer than another, paint it at a lower Brightness.
🖼 Overlay, Tile under Tile
Lays the overlay texture on top of the base instead of blending between them. A texture that already has transparency needs nothing here; for an opaque one, pick out what should show through by colour, by hue, or by painting it.
Click the source preview to eyedrop the target colour.
Click the source preview to set the hue from a pixel.
Paint on the source preview, on the right, where the overlay should show.
Select the part you want to remove, then tick this, usually easier for keying a decal off a flat background.
Blend affects the colour only. The generated normal / AO / roughness maps follow the coverage, so they describe whatever is actually on top.
📐 Anchored Transition, Tile → Tile
The border between the two textures is a chain of anchors. Start from a preset, then drag anchors to bend the border, drag the line itself to slide the whole border across, click empty space to add an anchor, or right-click an anchor to remove it. Overlay (B) fills one side.
🌿 Organic edge (blobs, spikes, drips…)
Off at Amount 0. Breaks the drawn boundary up into a ragged, hand-painted one. It fades out toward the tile border, so the boundary still meets the edge exactly where your anchors put it and a neighbouring tile lines up.
This is not the 🌊 Border warp above: that bends the whole line into a slow wave, this roughens its edge. They can be used together.
2 anchors, drag / drag the line to move them all / click to add / right-click to remove / scroll or middle-click to smooth
🏔️ Height Transition, Tile → Tile
Drive the blend by a height map instead of a drawn line: the overlay settles into the low ground (mortar joints, cracks) or caps the high ground (stones poking through). Works best on textures with real relief, e.g. cobble flooring.
⛰️ Height field
🌊 Border warp (bends the fill edges into a slow wave)
📈 Response curve (reshape height → fill)
Left→right = height; up = more fill. Drag anchors / drag the line to move them all / click to add / right-click remove / scroll or middle-click to smooth.
🗺️ Spatial drift (bias the fill across the tile)
Fill drifts toward the high side. Drag anchors / drag the line to move them all / click to add / right-click remove / scroll to smooth.
🗺️ Transition Grid, Tile → Tile
Design one continuous A→B border across a whole wall, then slice it into tiles. Set the grid size, drag the anchors (drag the line itself to move the whole border, click empty space to add, right-click to remove). Scroll the wheel or middle-click an anchor to cycle its smoothness (corner → smooth → rounder); the border curves smoothly through the anchors. It flows across cell edges so the tiles connect seamlessly. Add drops one transition tile per cell into the atlas.
Tool:
With a patch tool active, drag from a point to drop a circular patch of the overlay (scroll over one to resize, right-click to remove). Patches work on top of, or instead of, the boundary, so you can put a circle of texture inside any single cell.
🌿 Organic edge (blobs, spikes, drips…)
Off at Amount 0. Roughens the boundary across the whole wall, stamps included, before it is cut into tiles, so the tiles still join each other exactly. It fades out at the edge of the wall, where the tiles meet whatever sits around the grid.
This is not the 🌊 Border warp above: that bends the whole line into a slow wave, this roughens its edge. They can be used together.
🌿 Organic Transition, Tile → Tile
Scatter the overlay into the base as organic, noise-driven patches, or pick a Direction to make a patchy transition (top, a corner, a slope…) that joins plain tiles and Wang sets exactly. Optionally brush a hint for where the overlay should land, then create seeded variations. Every slider is yours to tune.
Click a preview to toggle it in/out of the export set.
🎞️ Animated Texture
Generate a procedural, seamlessly-looping animation (water, lava, clouds…). Each frame also tiles on its own. Pick a preset, tweak, and add the frames to the atlas as a group. In Tomb Editor, select the frames as an animated range, or use Single seamless tile for UV-rotate.
💡Made for Additive blending in Tomb Editor: black adds nothing, so only the light lands. Over another animation, use Background Transparent on the second Animation Layer.
💡This preset glows, enable the Emissive export map (and set the matching material) so it lights up in-engine.
📼 Glitch (corrupted blocks, torn rows, split colour, collage)
Off while every slider below is at its left end and Noise is at 100%. Every block and tear wraps round the tile edges, so the tile still repeats.
How much of the frame a burst damages.
Collage cells across the tile. Also sets how big the damage is.
Share of bursts that hold still, so the damage comes in fits.
100% is the noise field untouched. 0% is a collage of flat, striped and graded blocks with no noise at all.
0 = round particles (snow, bubbles). 1 = a trail as long as one frame of travel.
Side to side drift as it travels. Snow and ash, not rain.
Waves of heavier and lighter fall over the loop.
Each particle flashes on its own beat. Sparks, glitter, stars.
How far the light travels under the surface: short is soft, long focuses into sharp folds.
🌬️ Wind and light (wave direction, softness, black level)
Light dimmer than this adds nothing, so the floor shows through.
How quickly bright light runs to white.
〰️ Lines (the bright network)
How far each cell moves over the loop.
0 is a near-regular grid.
🔅 Underglow (a soft, deeper layer beneath)
Underglow lifts the whole tile a little, so under Additive it brightens the floor everywhere. Keep it dim.
🌊 Ripple (wiggle, choppy surface, shimmer)
Click the bar to add a stop · drag a handle to move it · click a handle to edit its colour & alpha.
Evens out the noise so a gradient uses all its colours (best for Rainbow / Aurora). Relaxes contrast as it rises.
Bakes a per-frame emissive map so the texture lights up in the dark. Each frame's glow is derived from that frame, so it animates with the motion. Ships an Emissive atlas aligned to the animation.
Pulse dims the glow on a sine over the loop (seamless). Depth 0% = steady, 100% = fully off at the trough. Combines with the per-frame motion.
Bakes a static texture into every frame: a well rim around the water, stepping stones on lava, a grate the liquid shows through, a window behind the rain. The texture stays live, editing it updates every frame.
💡Single seamless tile is off while an overlay is set. UV-rotate scrolls the whole texture, so the rim would slide around with the water.
🏔️This texture already has a height map from Make Height Map, so that one is used and Detail and Contrast are read from it. Edit it there to change the shape.
🌊 Moving level (lava climbing out of a grate, water rising and falling)
Off at Off. Sweeps a line across the tile over the loop and hides the texture behind it, so the animation floods over the top and drains back. The line is periodic in the loop, so the last frame meets the first exactly.
💡A straight level line cannot repeat across the edge it travels towards: stack two copies and the liquid at the bottom of one meets dry texture at the top of the next. Fine for a single tile (a grate, a pool, a well). Use Spreads out from the shape if the tile has to repeat.
🌿 Organic edge (a ragged water line, creeping grime)
Off at Amount 0. Roughens whichever contour the overlay has: the edge of Where it shows, and the moving level line. Unlike a transition set, the detail keeps its full strength right up to the tile border, and the tile still repeats, because both the noise and the distance it displaces wrap over the tile.
The material maps follow where the texture shows, not the blend mode: a multiply pass changes how a surface looks, not what it is. Painting a region is not offered here, use 🖼 Overlay Texture on a plain tile for that.
Preview only: the frames added on top of a texture, clipped at white, the way Additive blending lays them in the engine. Nothing is saved or exported.
🎇 Sprites
Make a sprite or a sprite sequence (sparks, twinkles, flares, fire, smoke, dust) for WadTool. Pick the Target slot it will replace, shape it, then Export ZIP and add the frames to that slot in WadTool, one at a time, in order.
🎨
🎚 Adjust Colours, Tile
Non-destructive colour grade for the whole tile. Handy for rebalancing presets that blow out, or matching a texture to a level's mood.
1 · Paint the region
2 · What happens inside it
Press anywhere on the graph to add a point and drag it. Drag an existing point to move it, right-click a point to remove it, double-click a point to switch it between a smooth bend and a sharp corner. The Red, Green and Blue curves apply first, RGB on top of them.
🕹️ Classic Look, Tile
Makes an HD texture look low-res at the same tile size, so it sits with classic textures without shrinking its texture page. Nothing changes until you press Apply.
🔎 HD Look, Tile
Makes a low-res texture look HD at the same tile size. Nothing changes until you press Apply.
Regions
Each region takes its own class. The settings above apply to the rest of the tile.
🖼 The image size differs from the tile
Smaller than the tile
Bigger than the tile
💧 Slope Blur, Tile
Smears or erodes the texture along a slope, so wear runs downhill and edges chip and crumble instead of staying machine-perfect. The slope comes from the tile's own relief, its brightness, a noise field or another tile. Nothing changes until you press Apply.
🍂 Scatter, Tile
Stamps soft, random patches of a texture over this tile: moss, dirt, plaster, chips. The patches are cut from this tile or from another one. Nothing changes until you press Apply.
A tile with transparency stamps only its solid parts, so leaves and decals keep their outline.
⤡ Free Transform, Tile
Rotates, scales, skews and moves the texture inside its tile. Drag the After preview to move it. Nothing changes until you press Apply.
📐 Perspective, Tile
Drag the four numbered corners. Straighten makes the area you mark the whole tile, so a wall photographed at an angle comes out flat. Distort moves the tile's own corners. Nothing changes until you press Apply.
〰️ Distort, Tile
Pushes the texture's pixels around: a regular wave, small random ripples, or a shift read from another tile. Nothing changes until you press Apply.
The effect fades to nothing at the edge of its circle, and the centre wraps round the tile, so a twirl over an edge still tiles. Keep the radius at 100% or less.
Red shifts sideways, green up and down; mid-grey (128) leaves a pixel where it is. A map tile that tiles keeps the result tiling.
🌗 Dodge & Burn, Tile
Paint to lighten (Dodge), darken (Burn), saturate or desaturate (Sponge), soften (Blur) or sharpen. The brush is Draw's brush engine. Each tool you paint with becomes its own layer, so you can hide it or change it later. Nothing changes until you press Apply.
Drag to paint. The Eraser takes paint back off. [ and ] change the size.
Discard these strokes?
🖼 Oil Paint, Tile
Smears the colours along the texture's own edges into brush strokes. Lighting is off: it would bake shading into the colour, which De-light then has to take out again. Sizes are written for a 256 px tile and scale with it. Nothing changes until you press Apply.
🫠 Liquify, Tile
Push, twirl, pinch and bloat the texture with a brush. Everything on the tile moves with it: text, drawings, glow, regions and imported maps. Nothing changes until you press Apply.
Drag to push. Brush strokes wrap across the tile edges. [ and ] change the size.
Discard these strokes?
🔤 Text,
Letters on the texture. Drag them on the preview to place them. Nothing changes until you press Apply.
✨ Layer effects (shadow, glow, stroke, overlay)
Added to the whole lettering, Outline and Shadow above included. Shadows and glows are colour only; a stroke counts as part of the letters for the material and relief.
A preset gives the letters their own material (gold leaf, polished metal) as a region of the tile, the way Draw's material does.
Carves the letters into the normal, AO and height maps. Roughness and specular keep following the colours.
Installed on this computer
Type its name in the Font field on the Text tab, or list them here.
A font file
Online library
The Google Fonts families, served by Fontsource from cdn.jsdelivr.net. Nothing is requested from Google. Each name below is drawn in its own font. Rest on one to see your text in it (that one file is fetched from jsDelivr), then double-click or press Load to use it.
🖌 Draw,
Paint on a layer over the tile. Nothing changes until you press Apply.
Tool
Colour
Brush
🎛 Brush dynamics (shape, tip, texture, stroke…)
Brush
100%
Layer
✨ Layer effects (shadow, glow, stroke, overlay)
Added to this drawing layer on Apply. Shadows and glows are colour only; a stroke counts as part of the drawing for its material.
B brush · E eraser · I pick, or hold Alt · X swap colours · D black and white · [ ] size · Shift+[ ] hardness · 1 to 0 opacity, with Shift for flow · Space+drag to pan · wheel to zoom · Shift+click for a straight line · Ctrl+Z undo
Discard this drawing?
🖌 Recolor, Tile from Tile
Samples the colour palette of the reference tile and shifts this tile's colours toward it (mean/standard-deviation transfer). Adjust the strength and fine-tune below.
☀ De-light, Tile
Flatten baked lighting so the texture reacts to Tomb Engine's dynamic lights. De-light the whole texture, or paint over a single baked shadow and inpaint it away from the surrounding texture.
Mode:
Paint over the whole shadow so the selection touches clean texture on every side, then Preview.
🗺️ Import Tiles
Set the grid that matches the source image, then click cells to choose which tiles to import. Selected cells are added to your atlas (each resized to 256²).
,
⚠️ Are you sure?
🔍 View
🏷️ Add Stickers,
Click a sticker in the strip to place it, or drag it onto the texture. Click a placed sticker to select it and drag its handles. Nothing changes until you press Apply.
Nothing selected. Click a sticker on the texture to change it.
Changes this placed sticker only; the gallery keeps the original.
Replace range 0 is off. Colours near the first swatch move toward the second and keep their shading.
Presses the sticker's shape into the normal, AO and height maps.
The sticker's own colours go into the emissive map. Export it with the Emissive map ticked.
Drawn around this sticker. Shadows and glows stay out of its material and relief; with Wrap on they carry over the edge.
Repeated 2 × 2, to check the edges.
Discard these changes?
✂️ Make Sticker, Tile
Select what to cut: Rect, Lasso, 🪄 Wand or the brush. The tile itself does not change unless you lift it off.
Nothing selected yet.
📚 Sticker Gallery
Images to lay over your textures. They are saved with this project; to use them in another project, save a pack here and load it there. Paste an image, or drop files or a folder anywhere in this window.
PNG, JPG, WebP, TGA, a PSD (one sticker per visible layer) or a pack. A file named like bolt_normal.png beside bolt.png becomes that sticker's normal map. Images over 2048 px are shrunk.
Delete it from the gallery?
Stickers already placed on a texture keep their own copy.
🗂 Layers
🔲 Empty slots in the atlas
Your choice is saved with this project and used for the next export too. One Undo reverts it.
📁 Which project?
This folder holds more than one project file, newest first.
🧩 Wang Set, Tile → Tile
Creates an edge set so the overlay terrain connects on every side. Pick how the tiles are arranged in the atlas below, a readable grid makes them easy to place in the editor. Tiles inherit materials from the two sources.
How many of each kind. Spare cells get extra patchy variations; tiles past the grid are left out.
🌿 Patches (organic transitions, tune everything)
🌿 Organic edge (blobs, spikes, drips…)
Off at Amount 0. The detail is faded out at each tile border, so the set joins up exactly as well as it did without it.
A Wang set is reused far more heavily across a level than a single island, so a strong organic edge here shows its repeat sooner. Keep Amount modest, or use it where the boundary is only laid a few times.
🧱 Borders & Corners: Tile + trim Tile
🪞 Origami mode, one texture only. The trim is the same texture rotated so its detail runs parallel to each edge and folds through the corners, so a ridge/plank texture reads as a continuous concentric frame.
Builds a reusable border tile set: the trim texture runs along the boundary of areas filled with the base texture. Place the tiles in the editor like a frame, edges, corners and fill all connect. Click any slot in the preview to change how it's made (own mask → rotated ↻ → mirrored ↔/↕ → an atlas tile 🖼), handy when baked lighting makes a rotated edge look wrong. Tiles inherit materials from the two sources and stay editable (change a source tile and the set follows).
Rotates the trim texture along vertical borders (mitred corners).
🌿 Organic edge (ragged, hand-painted trim edge)
Off at Amount 0. Only the inner contour moves, the edge sitting on the tile border stays flush, so the set still joins up exactly. A border down the left of a tile therefore goes ragged on its right.
Seamless here comes from the noise repeating over the tile, not from fading it out at the borders, so unlike a transition set, the detail keeps its full strength right up to the edge.
📦 Pushable Markings
The scrape marks a pushed block leaves on the floor, as a set of tiles whose tracks join up across tile borders. The marks are carved into the height, normal and AO maps as grooves. Untick a slot to leave it out; give a slot more copies for variety (same edges, different scratches inside).
Drips running down a wall from a leak, as a column of tiles that join up top to bottom. They stand out of the height, normal and AO maps, and each preset gives them its liquid's material. Untick a slot to leave it out; give a slot more copies for variety (same edges, different drips inside).
Carved into height, normal and AO whatever the colour; 0 is colour only.
Laid out as they tile: every track meets its neighbour. The empty slot is your tile unchanged, so it starts unticked.
✨ Create Variations, Tile
Creates jittered copies (hue / brightness / saturation / contrast / grain / rotation / wrap shift) appended to the atlas, handy for breaking up obvious tiling repetition. Same seed reproduces the same set.
🪞 Origami Frame, Tile
Folds the texture like paper. Frame wraps it into nested rings, Pleats fold it in parallel strips, Kaleidoscope mirrors it into a grid of cells and Fan folds it around a point. Every fold seams continuously, and the result is added as a new tile.
A fan with an odd number of folds or an off-centre origin is a single panel: it does not repeat across tiles.
🏗️ Build Pattern, Tile
Arranges this texture into a built surface, brick, coursed / cobbled stone, tile, herringbone, planks, a plank floor, shingles or pipes, by laying it into cells split by recessed joints, each cell a jittered sample so it doesn't read as repeats. The result is a fresh, seamlessly tiling tile; the dark joints become real depth in the material maps.
🏚️ Age & deformation
Breaks up the machine-perfect grid for ruins and old stonework. Everything here is seeded and stays seamless, a flush city wall is all zeroes.
🧱 Behind the cells
What shows through the joints, and through anything Missing pieces takes out. Pick another atlas tile here to lay blocks over a wall, instead of over a blur.
🌾 Surface noise , off
Grain, pitting and grain-direction laid over the pattern itself. Your texture probably has its own already, this is for flat or over-cleaned sources.
🌧️ Weather , off
Wear on the finished pattern: Slope Blur runs edges and dirt downhill, Scatter stamps soft patches of this or another texture. Seeded, and it stays seamless.
🌾 Surface Noise, Tile
Lays procedural grain into the texture itself, seamlessly. Material maps are generated from the diffuse, so this is what gives a flat or over-cleaned texture something for them to read.
🪟 Stained Glass, Tile
Splits the tile into glass cells separated by lead came. Cell colours come from the texture itself or a palette. The result carries a glass + metal multi-material and an emissive map, so the window glows in the dark.
Rose windows are centred, the tile won't repeat seamlessly.
🎨 Set Material
⭐ My presets
Material Layers stack bottom → top: the Base covers the whole tile, then each Material Layer paints its material over the ones below. Order matters, e.g. Base = Brick → Wooden door → Metal knob. The selected Material Layer is the one the material controls below edit.
Material Layers
Select the area where the active Material Layer's material applies.
Show:
⚙️ Advanced editor (tweaking creates a custom material)