#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
- 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.
- 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.
- 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.
- 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
- Export → Recipe JSON saves name.pxexa.json: the material, every layer and its settings, ramps, overlays, animation and the Seed.
- The same recipe always regenerates exactly the same pixels, so keep the recipe next to your assets and regenerate at any size later.
- Open it again with Open a recipe file…. A file from another app is refused ("That is not a Pixxexa recipe").
- Cloud saves a zip with recipe.json, the tile and its normal map. Your current recipe is also kept on this device automatically.
- 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
- Edge set → Corner 16 → Download gives corner-set.png and corner-set.json in a zip.
- Texture A is your current texture; texture B is the Other texture.
- 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.
- The JSON lists kind (corner-wang-16), tile (width, height), columns, the index rule, and for each tile its index, corners, x and y.
- 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
- Blob 47 treats your current texture as the terrain and the other texture as what surrounds it.
- 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.
- 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.
- 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:
| File | What it is |
|---|---|
| ground.png, wall.png, accent.png, detail.png … | One seamless tile per role |
| role-normal.png | A normal map for each role |
| role-animated.png | A frame sheet for the animated role |
| recipes/role.pxexa.json | The recipe of each texture, to edit or regenerate |
| transitions/…png | Wall top, floor edge and trim strips |
| sets/corner-wang-16.png + .json | Corner 16 transitions between the ground and the wall |
#How to export frames for an engine
- 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.
- Or export APNG for full colour with soft alpha, or GIF (at most 256 colours and on/off transparency).
- In the engine, play the frames in order at fps; every texture loops by construction.
#Workflows
#Autotiled terrain in Pixxori or a map editor
- Make the ground and the surrounding texture, then export Blob 47 (or Corner 16 for a simpler set).
- Import the sheet into your map editor's terrain or autotile setup, using the JSON's bit or corner layout to assign each tile.
- 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
- Export the tile and its Normal map at the same scale. The normal map is made from the texture's height (its brightness pattern).
- Use both in your engine's 2-D lighting (Godot, Unity), or light the tile in Pixxura.
#A texture library shared across a team
- Save every texture as a Recipe JSON and keep them in your project, or save them to the Cloud.
- 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.