Skip to the guide
Pixx Suite

Build · Texture & pattern generator · Advanced

Pixxexa — Advanced

Pixxexa in depth: why tiles are seamless by construction, recipe files, Corner 16 and Blob 47 autotile data, biome pack contents, frames timing and engine use.

Open Pixxexa

#What you'll learn

  • Why every Pixxexa texture and animation tiles and loops, and what the seam check really measures.
  • How recipes make textures reproducible, and how to keep them with your assets.
  • The exact layout and index rules of Corner 16 and Blob 47 sets, for autotiling.
  • What's inside a biome pack zip and a frames zip.
  • How to get textures into Pixxori, Pixxura and game engines without losing quality.

#Before you start

  • Work through Pixxexa — Intermediate: ramps, masks, animation and edge sets.
  • You need a plan that includes Pixxexa.
  • For autotiling: know how your map editor or engine numbers its terrain tiles.

#How-tos

#How to rely on seamless tiling

  1. Pixxexa doesn't patch seams after the fact: every pattern is generated so that its right edge continues into its left edge and its bottom into its top. Bricks, tiles and cells count in whole repeats; checker-like patterns use even counts.
  2. Animations loop the same way: scrolling moves whole tiles per loop, Boil (morph and back) morphs between two seeds and back, and Colour cycling turns the ramp whole times.
  3. The Seams check is a statistic: it compares the change across the tile's edge with the changes inside it. Patterns whose cells meet the tile edge (bricks, checkers) still pass; a real seam shows clearly.
  4. One exception to watch: the warp operator distorts through a fixed field, so a scrolling layer under it flows through the warp. It still loops, but the warp itself doesn't move.

#How to keep textures reproducible with recipes

  1. Export → Recipe JSON saves name.pxexa.json: the material, every layer and its settings, ramps, overlays, animation and the Seed.
  2. The same recipe always regenerates exactly the same pixels, so keep the recipe next to your assets and regenerate at any size later.
  3. Open it again with Open a recipe file…. A file from another app is refused ("That is not a Pixxexa recipe").
  4. Cloud saves a zip with recipe.json, the tile and its normal map. Your current recipe is also kept on this device automatically.
  5. Imported images are stored in the recipe as brightness values at the tile size, so recipes stay small. Colour images are available as a download from the Import dialog instead.

#How to read Corner 16 set data

  1. Edge set → Corner 16 → Download gives corner-set.png and corner-set.json in a zip.
  2. Texture A is your current texture; texture B is the Other texture.
  3. The 16 tiles are laid out 4 per row. A tile's index is tl×1 + tr×2 + br×4 + bl×8, where each corner is 1 if it's texture B.
  4. The JSON lists kind (corner-wang-16), tile (width, height), columns, the index rule, and for each tile its index, corners, x and y.
  5. Any two tiles whose touching corners agree join without a seam, so you can paint a terrain map by corners.

#How to read Blob 47 set data

  1. Blob 47 treats your current texture as the terrain and the other texture as what surrounds it.
  2. The 47 tiles are laid out 8 per row. Each tile's mask adds up the neighbours that are also terrain: N 1, NE 2, E 4, SE 8, S 16, SW 32, W 64, NW 128.
  3. A corner bit only counts when both of its sides are set, which is why 47 tiles cover every case. This is the "blob" or "mixed" layout used by RPG Maker-style autotiles and Tiled.
  4. The JSON (blob-47) lists tile, columns, bits and each tile's mask, x and y, so a script can map your engine's terrain rules onto the sheet.

#How to unpack a biome pack

Biomes → Export pack (.zip) contains:

FileWhat it is
ground.png, wall.png, accent.png, detail.png …One seamless tile per role
role-normal.pngA normal map for each role
role-animated.pngA frame sheet for the animated role
recipes/role.pxexa.jsonThe recipe of each texture, to edit or regenerate
transitions/…pngWall top, floor edge and trim strips
sets/corner-wang-16.png + .jsonCorner 16 transitions between the ground and the wall

#How to export frames for an engine

  1. For an animated texture, Export → Frames ZIP writes one PNG per frame (name_000.png …) and timing.json with frames, fps, delayMs, w and h.
  2. Or export APNG for full colour with soft alpha, or GIF (at most 256 colours and on/off transparency).
  3. In the engine, play the frames in order at fps; every texture loops by construction.

#Workflows

#Autotiled terrain in Pixxori or a map editor

  1. Make the ground and the surrounding texture, then export Blob 47 (or Corner 16 for a simpler set).
  2. Import the sheet into your map editor's terrain or autotile setup, using the JSON's bit or corner layout to assign each tile.
  3. Or send the tiles to Pixxori and build the level there, then send the level on as a tilemap.

#Normal-mapped walls with real-time lights

  1. Export the tile and its Normal map at the same scale. The normal map is made from the texture's height (its brightness pattern).
  2. Use both in your engine's 2-D lighting (Godot, Unity), or light the tile in Pixxura.

#A texture library shared across a team

  1. Save every texture as a Recipe JSON and keep them in your project, or save them to the Cloud.
  2. In Flow, make Pixxexa the first step of a level pipeline: textures → Pixxovo props → Pixxori level → Pixxizi package.

#Tips and shortcuts

  • Tile size: 16, 32, 64 or 128 quick buttons, or any W / H; export Scale 1× to 8× (nearest neighbour).
  • 8 variants is a 4 × 2 sheet of eight seeds of the same recipe, all the same size: mix them in a tilemap to break up repetition.
  • Every output colour comes from the recipe's ramps (the main ramp plus each overlay's ramp), so a texture never invents colours.
  • Detach keeps hand-edited layers but drops the link to the material, so its sliders no longer rebuild them.
  • Send to App sends the tile, the variants sheet, the ramp, or the animation as frames.

#Troubleshooting

  • The seam check fails on a gradient I added. A plain gradient can't tile; use a noise or pattern layer, or a mask, instead.
  • Blob 47 tiles look swapped in my engine. Engines number blob tiles differently; map them by the mask values in the JSON rather than by sheet position.
  • A biome pack takes a while. It builds several textures, normal maps, transitions and a Corner 16 set; wait for the thumbnails.
  • A regenerated recipe looks different. Check the Seed and the tile size: a different size reshapes the pattern.
  • Colour images lose their colour when used as a layer. Layers store brightness only; recolour them with the layer's ramp, or download the colour version from Import.