PIXEL EDITOR Texture BEST

Introduction

Texture BEST is a pixel editor for tiling game textures. Raster, shape, and image layers live on one canvas. A 3×3 tile view and a rotating cube show how the texture repeats.

The editor runs in the browser. Files are not uploaded. The Replicate key, palettes, theme, and autosave stay on this machine.

What you keep

JSON is the project format: layers, opacity, blend, palette, guides, size. PNG / JPEG / WebP / BMP flatten to a single image. JPEG, WebP, and BMP cannot store transparency — a transparent background is filled with the panel color on export.

Autosave

Each edit writes the project to local storage. Reloading the page restores that snapshot. New starts a blank document and overwrites the autosave on the next edit.

Texture BEST workspace with tools, canvas, and inspector
The editor: tools, canvas, inspector

Workspace

Four strips around the canvas:

  • Top bar — New, Open, Download, Settings, Help, Report a bug, About. The right side shows size, layer count, tool, and brush.
  • Options bar — controls for the current tool, plus Grid, Tiled wrap, Fit, and Generate with AI.
  • Left — tools, split into select, paint, and shape.
  • Right inspector — Color, Properties, Canvas size, Layers, Tile 3×3, 3D repeat.
Labeled layout of the Texture BEST chrome
Bar, options, tools, canvas, inspector

Tool names

Hover a tool for its name and shortcut. Recolor, Dither, Spray, Gradient, Polygon, and Contour have no letter shortcut.

Move V Select M Wand W Lasso O Pencil B Eraser E Fill G Eyedropper I Line L Rectangle U Ellipse Shift+U Recolor Dither Spray Gradient Polygon Contour
Left tool rail from the editor
Left rail — same icons as above

Files

New

Replaces the open document with a 128×128 blank raster. There is no confirm dialog. Undo does not bring the previous file back; history resets.

Open

JSON loads as a project. PNG, JPEG, WebP, GIF, or BMP becomes an image layer, scaled down if it is larger than the canvas. You can also drop a file onto the canvas or paste an image (or JSON text) from the clipboard.

Download

Pick PNG, JPEG, WebP, BMP, or JSON project. Image formats composite visible layers. The filename comes from the document name in Canvas size.

Download modal with PNG JPEG WebP BMP and JSON options
Download — JSON keeps layers

Canvas

Open Canvas size in the inspector. Name is the export filename. Presets are 32, 64, 128, and 256. Width and height go from 1 to 2048.

Inspector with color, properties, filters, and canvas size
Inspector — Canvas size is at the bottom

Pad / crop vs nearest scale

Pad / crop keeps pixels where they are and clips or adds empty space. Nearest scale resamples the whole document. Apply size commits the change; undo can reverse it.

Background

Transparent, panel, black, or white. This is the composite backdrop, not a layer. Opaque exports fill transparency with panel if the background is still transparent.

Layers

Three kinds: raster (pixels), shape (line, rect, ellipse, polygon), and image (placed bitmap). The list is top = front. Drag a row to reorder.

Layers list with visibility, lock, add, duplicate, and delete
Layer stack — drag a row to reorder
Layer name, opacity, blend, and stack actions in Properties
Properties and stack actions for the selected layer

Row controls

Eye hides the layer. Square lock blocks painting and transforms. Double-click the name to rename. Click selects; Properties then edits that layer.

Stack

Opacity is 0–100. Blend: normal, multiply, screen, overlay, add. Duplicate copies the layer above the original. Delete refuses to remove the last remaining layer.

Merge down rasterizes the current layer into the one below. Rasterize turns a shape or image into pixels. Flatten composites everything into one raster named Flattened.

Painting with no raster

Pencil, eraser, fill, and the other paint tools create a new raster if the selection is a shape or image, or if every raster is locked.

Color

Color 1 and Color 2 sit in the inspector. Click a slot to edit it in the picker (HSV, alpha, hex, RGB, HSL, or Transparent). Swap exchanges them. X does the same.

Color slots, Swap, earth palette swatches
Color 1, Color 2, and the active palette
HSV color picker with hex RGB HSL and Transparent
Picker — hex, RGB, HSL, alpha, Transparent

Swatches

Left-click a palette chip to set Color 1. Right-click: Use as Color 2, and on a custom palette Edit or Delete.

Sampling

Eyedropper, or Alt-click with most tools, reads the composite (not just the active layer). Left button → Color 1, right button → Color 2. Alt is ignored on Select, Wand, and Lasso because those tools already use Alt to subtract.

Shape colors

New shapes take Color 1 as fill and Color 2 as stroke. Lines use Color 1 as the stroke. A fully transparent slot is skipped, so a transparent Color 2 means no stroke.

Palettes

Built-ins: earth, sand, stone, wood, moss. The dropdown only lists palettes that are not hidden. The active palette is stored on the document and used by Palettize and by AI “Current palette”.

Palettes manager with earth sand stone wood moss
Palette manager — hide, duplicate, delete

Manage

The cog opens Palettes. New palette starts from Color 1. Dup copies any row. Custom rows can be renamed or deleted; presets cannot. Hide (○) removes a palette from the dropdown; at least one must stay visible.

Custom palettes persist in local storage, separate from the project JSON.

Selections

Marquee (M), Wand (W), Lasso (O). The marching outline is a mask: paint, fill, filters, copy, and cut stay inside it.

Select M Wand W Lasso O Move mask V
Selection tools on the left rail: move, marquee, wand, lasso
Select tools sit at the top of the rail

Add and subtract

Shift adds to the current mask. Alt subtracts. Escape clears it.

Wand

Click floods a connected region using 4-conn or 8-conn and Tolerance from the options bar. Shift+click selects every pixel of that color on the canvas (and also adds if a mask already exists).

Edit

⌘/Ctrl+A selects the whole canvas. ⌘/Ctrl+I inverts the mask. Copy copies the masked pixels (or the full composite if there is no mask). Cut copies then clears those pixels on a raster. Delete / Backspace clears the mask on a raster; with no mask it deletes the layer. Move drags a raster selection.

Paint

These tools write into a raster. Size is 1–16; [ and ] change it. Sym H / Sym V mirror strokes across the canvas. Right-click paints with Color 2.

Pencil B Eraser E Fill G Recolor Eyedropper I Dither Spray Gradient
Brush size, Pixel perfect, and symmetry toggles on the options bar
Size, Pixel perfect, Sym H / Sym V

Pencil and eraser

Pencil at size 1 can run Pixel perfect, which drops corner pixels on diagonal runs. Right-click with a transparent Color 2 erases. Eraser always clears to transparent.

Fill and recolor

Fill floods from the click, with the same 4/8-conn and Tolerance as Wand. Recolor replaces that color everywhere on the layer (still clipped by a selection). Neither tool uses brush size.

Dither, spray, gradient

Dither stamps a Bayer 2×2 or 4×4 pattern. Spray scatters dots in a radius from brush size. Gradient drags Color 1 to Color 2; Radial and Dither are on the options bar. Shift constrains a linear gradient to 45° steps.

Shapes

Line, Rectangle, Ellipse, Polygon, and Contour create live shape layers, not pixels. Click an existing shape with a shape tool to select it; drag empty canvas to draw a new one.

Line L Rectangle U Ellipse Shift+U Polygon Contour
Color 1 and Color 2 used as shape fill and stroke
Color 1 is fill, Color 2 is stroke

Drawing

Shift squares a rect or ellipse, and locks a line to 45°. Polygon: click corners, Enter or double-click to close. Contour records a freehand path on drag and stores it as a polygon.

Afterward

Properties can toggle fill and stroke, change their colors, set stroke width, and type X/Y/W/H. Handles on the canvas move and resize. Rasterize when you want to paint into the shape.

Transform

Move (V) selects a layer under the cursor. Shift-click adds or removes from the selection. Raster layers have no handles — drag a selection mask instead.

Move V
Flip H, Flip V, Rot 90 and other transform actions in Properties
Flip, rotate, merge — Properties panel

Handles

Shapes and images show eight resize handles and a rotate handle. Shift while rotating snaps to 15°. Shift while resizing keeps a square. Edges snap to the canvas, other layers, and guides.

Flip and rotate

Flip H / Flip V and Rot 90 are in Properties. Rot 90 on a raster only runs when width equals height. On shapes and images it adds 90° to Rotation.

Guides

Guide X / Guide Y drop a line at the layer center (or canvas center). Clear guides removes them. They are stored in the JSON.

Filters

Only on a raster, and only inside the current selection if one exists. Each click is a step you can undo.

  • Invert — RGB invert; transparent pixels stay untouched.
  • Outline — 1px outline in Color 1 around opaque pixels.
  • Posterize — four levels per channel.
  • Palettize — nearest color in the active palette.
  • Bright + contrast — fixed +20 brightness / +12 contrast.
  • Hue shift — +30° hue, saturation unchanged.

There are no extra sliders. Run the filter twice or undo if the step is too much.

Filter buttons Invert Outline Posterize Palettize Bright contrast Hue shift
Filters — one click each, undoable

Previews

Tile 3×3 is the flattened texture repeated. 3D repeat is the same map on a cube, nearest-neighbor, wrapping twice per face. Neither is saved; they follow the document as you edit.

Turn on Tiled wrap on the canvas when you are fixing a seam — the cube will still show the repeat even with wrap off.

Tile 3×3 checkerboard preview and 3D repeat cube in the inspector
Tile 3×3 and 3D repeat — under Layers. They fill as you paint.

Generate with AI

Opens from the options bar. Generation goes through this app’s Replicate proxy. Put a token in Settings first; it never leaves this machine except as a request header to that proxy.

Generate with AI dialog with model, chips, prompt, and history
Generate with AI — chips rebuild the prompt

Prompt

Subject is free text. Image type, style, palette, and extras are chips that rebuild the prompt. Edit the prompt by hand if you want; Rebuild from chips throws that away and uses the chips again. Palette can be none, the current editor palette, a preset, or a custom one.

Models

FLUX Schnell is the default. Also listed: FLUX Dev, FLUX.2 Klein, FLUX.2 Pro, Nano Banana 2, Imagen 4 Fast, Imagen 4, Seedream 4.5, Recraft V3, Ideogram v3 Turbo, Z-Image Turbo, Grok Imagine. The last choice is remembered.

Result

Add as layer places a fitted image layer and switches to Move. History keeps the last 40 generations in IndexedDB on this browser. Click a thumb to preview. Right-click: add as layer, open in a tab, download, or delete.

Settings

Theme is Dark or Light. The sun / moon control in this help header uses the same setting. Changing it in either place updates the other after a reload.

Settings modal with theme dropdown and Replicate API token fields
Settings — theme and Replicate token

Replicate

Paste a token from replicate.com/account/api-tokens. Show, Save, Test key (calls the account endpoint), Clear. Test also saves a valid key. Without a key, Generate with AI stays disabled and points here.

Shortcuts

Ignored while a text field is focused. is Control on Windows and Linux.

Move V Select M Wand W Lasso O Pencil B Eraser E Fill G Eyedropper I Line L Rect U Ellipse Shift+U
Key
V M W OMove, Select, Wand, Lasso
B E G I LPencil, Eraser, Fill, Eyedropper, Line
U / Shift+URectangle / Ellipse
XSwap Color 1 and Color 2
[ ]Brush smaller / larger
= −Zoom in / out
Space (hold)Pan
⌘Z / Shift+⌘Z / ⌘YUndo / Redo
⌘C ⌘X ⌘DCopy / Cut / Duplicate layer
⌘A ⌘ISelect all / Invert selection
DeleteClear selection, or delete layer
EnterClose polygon
EscClose modal or popover; else clear selection
Alt-clickEyedrop (not on select tools)
Shift / Alt (select)Add / subtract from mask

On this help page, ⌘K or Ctrl+K opens search. / does too if you are not typing in a field.