Skip to content
Open the app

Prepare your layers

Give KURV a folder of layers and it builds every piece for you. Get the folder shape right and the import goes smoothly. If something is off, the import tells you what it had to decide before you go on.

This page is the layers route: KURV builds every piece from your layers. You can still choose the exact traits of any piece, or draw a piece yourself (see below). Already made the pieces one image at a time? Take them straight in: see Bring art you already made.

my-collection/
layers.json optional
rules.json optional
layers/
01_Background/
Dunes#40.png
Night#10.png
03_Body/
12_Headwear/
None#40.png
Cap#30.png
Visor#25.png
Crown#5.png
uniques/ optional
001 The Golden Fox/
03_Body/
The Golden Fox.png
12_Headwear - Crown of Ash.png

(03_Body/ is shown empty only to keep the tree short. Every layer folder needs its own trait images.)

  • Make one folder per layer. Put transparent PNG images inside. Each file is one trait: one option for that layer.
  • A trait can also be an animated GIF. Then every piece is published as an animated GIF. See Moving layers (GIF).
  • The number in front of the folder name sets paint order, bottom to top. 01_Background goes on first.
  • The name after the number is the layer name collectors see. The file name before # is the trait name.
  • Give every folder its own name. If two folders share a name after the number, the second one keeps its full folder name, and collectors see that.
  • You can reorder layers later in the Studio by dragging.
  • The number after # is the trait’s weight. It only counts against the other files in the same folder. Dunes#40 shows up four times as often as Night#10.
  • A file with no number counts as 1. A folder with no numbers starts out evenly split.
  • #0 means the trait is never picked at random. Use it for a trait only a pinned piece wears.
  • Collectors never see the number.
  • Tip: make each layer add up to 100 so anyone can read it at a glance.

You never have to rename a file to tune rarity. In the Studio, each layer has a slider per trait.

Need exact counts? In the Studio, open a trait and set Exactly, At least or At most. For example, Gold = exactly 6. A count wins over the slider.

Put one empty None file in that folder, with a weight like any other. The None weight is drawn from the same pool as the traits. So None#40.png beside Cap#30, Visor#25 and Crown#5 means about 40 in 100 pieces have no headwear. Pieces without the layer show it as “None”.

  • None.png, none.png, None#40.png and None #40.png all count. Blank, Empty or No Hat do not. They become traits with those names.
  • Leave it blank. Anything drawn in it is thrown away, and the import tells you so.
  • Use one per folder. A second None file in the same folder is not used.
  • Never put one on the bottom layer.
  • A folder that holds only a None file has nothing to draw, so it is left out.

You can also turn on Optional layer for that layer in the Studio. It does the same thing.

Every image is the same square. We recommend 1000 × 1000. If you set the size in layers.json, it must be a whole number from 1000 to 4096.

Each trait is a full-size transparent image with its part drawn in place. An Eyes file is 1000 × 1000 with eyes on it, not a small picture of eyes. The bottom layer fills the frame.

Without layers.json, the first trait image sets the canvas. An image of a different size lands small or cropped on every piece that wears it, and the import warns you. Bigger images mean a slower build and a bigger upload.

LayoutWhat it is
PersonA bust portrait with 12 fixed seats, from 01 Background to 12 Headwear. Each seat has its own paint area.
CardA trading card: Background, Frame, Art, Badge, Gem and an optional Foil overlay. Never draw lettering into a trait.
PlainAnything else. No fixed seats. Number layers in tens (10, 20, 30) so you can slip one in later.

In the person layout, the seat numbers never move. Leave gaps for seats you do not use. A five-layer person collection is 01, 03, 07, 08, 12, not 01 to 05.

  • layers.json names the layout (person, card or generic for plain), the canvas size and the number of pieces (supply). If you type a number of pieces on Create, that number wins.
  • rules.json lists rules of two kinds: Never combine (two traits never meet) and If … then (when one trait shows up, another layer is limited to the traits you list). Give each a note saying why. A rule that names a layer or trait the folder does not have stops the import.
  • uniques/ holds pieces you draw yourself. Use one folder per piece, like 001 The Golden Fox/. The number is the piece number it is pinned to; leave it off and the shuffle places it. Split the art by layer, one image per layer. Two shapes both import. A folder named exactly as that layer’s folder holds the one image, like uniques/001 The Golden Fox/03_Body/The Golden Fox.png. The image’s name is the trait. None means that layer is absent on this piece. A name already on the layer wears that trait. A new name is art only this piece can wear. An image named like the layer folder means the trait is the piece’s name. A file sitting in the piece folder still imports too: <layer folder> - <trait name>.png, like 12_Headwear - Crown of Ash.png, or 03_Body.png when the trait is the piece’s name. A file that names no layer is refused, including one flat picture of the whole piece. A piece can also carry its own song or video: put one file in its folder, like song.mp3, and the piece the layers draw is its cover.

A phone cannot pick a folder. So:

  1. Zip your layers folder.
  2. Open Create.
  3. Press Pick a ZIP and choose the file.

Give a model or agent this page, as its link or as the text from The folder down to Optional files. It has the folder shape, the file names, the rarity and None rules, the canvas size and the format for pieces you draw yourself. Then check what it made against the list below before you import.

  1. Check that every image is the same square size.
  2. Check that every layer folder is numbered, back to front.
  3. Check that each layer some pieces go without has exactly one blank None file, and the bottom layer has none.
  4. Stack one random trait from each layer in an image editor. It should look finished and lined up.

Next: Studio, rules and generate.

Nothing here is financial advice. Read Risks and disclaimer before you mint, buy or sell back. Back to kurv.fun. Privacy policy. Terms of use. .