--== READ ME ==--.txt
usage: seamtile [-h] [image]
Seamless tile maker with realtime preview (radial mask, edge blend, edge cut, mirror, offset).
positional arguments:
image image to open
options:
-h, --help show this help message and exit
EXAMPLES:
seamtile
seamtile rock.png
===
Turns an image into a tile that repeats without visible seams. Everything updates live as you change settings.
===
Workflow
1. Open an image (Ctrl+O, or drag it onto seamtile.bat).
2. Crop away any bad edges, vignetting or borders. If the tiles show light/dark bands, tick Match edges.
3. Pick a method and adjust its options while watching the Tiled view.
4. Nudge the tile so the part you care about sits where you want it.
5. Save (Ctrl+S).
===
Match edges
Fixes tiles that show light/dark bands because the photo's lighting is uneven (e.g. bright on one side, dark on the other). It measures the broad brightness and colour along opposite edges and adds a gentle ramp across the image so they meet. Detail is never blurred; only overall levels shift, and the centre line is unchanged. Runs after Crop and before the method, and follows the Repeat setting.
Smoothness - how broad the measured lighting is (blur radius in pixels). Higher corrects only large-scale lighting; too low starts reacting to individual details.
Strength % - how much of the correction is applied.
Also match contrast - evens out haze / washed-out areas too, by scaling detail contrast so opposite edges match.
--== Methods ==--
===
Edge cut (default)
Keeps the image where it is. A band along each edge is overlapped with the band from the opposite side, and the two are joined along the line where they match best. No pixels are mixed, so nothing gets blurred or ghosted. Best for busy textures: rock, brick, gravel, foliage. The tile gets smaller by the overlap.
Overlap X / Y - width of the edge bands in pixels (2-128). Wider gives the cut more room to find a good path; narrower keeps more of the image. Below 2 leaves that axis alone (it will not tile in that direction).
===
Edge blend
Like Edge cut, but the edge bands are faded into each other instead of cut. Smooth joins, but features in the band can look doubled. Best for soft textures: sand, plaster, cloth, cloud. The tile gets smaller by the overlap.
Overlap X / Y - width of the fade in pixels. 0 leaves that axis alone.
Curve - shape of the fade (smoothstep is a good default).
===
Radial mask
Keeps the centre of the original and builds the edges from a half-shifted copy, joined through a soft circular mask with a wobbly edge. Tile stays the cropped size.
Inner radius - where the fade starts. Inside it is 100% original. Measured from the centre: 1.0 = middle of an edge, about 1.41 = corner.
Outer radius - where the fade ends. Beyond it is 100% shifted copy. A wide gap between inner and outer gives a long, gentle fade.
Scatter - how much the circle's edge wobbles, so it does not show as a ring.
Scatter detail - size of the wobbles: low = big lumps, high = fine fringing.
Seed / Re-roll - which random wobble pattern is used.
Curve - shape of the fade.
Hard edge - no fading; each pixel comes wholly from one copy or the other.
Mask centre X / Y - which part of the source is kept untouched in the middle. Keep it modest; large values can pull the source's own edge seam into view.
===
Mirror
Flips the image into a 2x2 mirrored tile. Always seamless, but obviously symmetric, and double the size. No options.
===
Offset only
Shifts the image by half its size and repairs nothing. The seams end up as a cross through the middle, ready to fix by hand in a paint program. No options.
===
Repeat
Both - the tile repeats left-right and up-down (default).
Horizontal - only the left and right edges are joined; top and bottom are left as they are. Good for trims and strips.
Vertical - only the top and bottom edges are joined.
Each method repairs only the chosen direction (Radial mask uses a band instead of a circle; Mirror flips one way; Offset shifts one way). Options for the unused direction are hidden, but their values are kept. The Tiled view and the saved _3x3.png example repeat only in the chosen direction. Nudge works in both directions.
===
Shared settings
Most numbers have a slider and a spinner - drag the slider, or type / click the spinner for exact values. Slider ranges adapt to the loaded image. The mouse wheel scrolls the settings panel if it is taller than the window.
Crop - pixels removed from each side before anything else happens. Shown as a dashed box in the Original view.
Nudge X / Y - slides the finished tile around with wraparound, to re-centre it. It can never break the tiling. Arrow keys nudge 1 px, Shift+arrows 8 px.
Reset positions - zeroes nudge and mask centre.
===
View
Tiled / Single / Original - toggle with the button or V, or press 1 / 2 / 3.
Tiles - 2x2, 3x3 or 4x4 in the Tiled view.
Seam markers - dashed lines on the tile boundaries (Tiled view) or the crop box (Original view).
Overlay - tints in red the pixels that came from the other copy or opposite side, so you can see exactly what each method changed.
Zoom - mouse wheel zooms at the cursor. Fit picks the largest zoom that fits.
===
Files
Save writes three files next to the source image:
name_tile.png - the finished tile
name_3x3.png - a 3x3 tiled example (3x1 / 1x3 strip for one-direction repeat)
name_tile.json - every setting, reloaded automatically when you open that image again
Save as - choose a different name or folder; the json is still written alongside.
Save settings / Load settings - store or apply all settings on their own. Any of the json files above can be loaded.
Reload (Ctrl+R) - re-reads the source from disk, keeping your settings.
Reset settings - back to defaults, keeping the current method and seed.
===
Keys and mouse
Ctrl+O open Ctrl+R reload Ctrl+S save F1 help
1 / 2 / 3 views V toggle view
Arrows nudge 1 px Shift+arrows nudge 8 px
Wheel zoom at cursor Left or middle drag pan
Ctrl+wheel scroll Shift+wheel scroll sideways