Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions art_source/pixellab_2026-07-19/MANIFEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Pixellab volume generation -- 2026-07-19

Generated via the pixellab MCP to fill the visually-empty office/lab. Grounded in the
locked style from `docs/art/reviews/2026-07-17-overnight-sweep.md` +
`docs/art/PALETTE_AND_DOOM_INTENSITY.md`:

> warm-grime base + heavy-outline heft + deeper shadow, view-locked
> (straight-on/centered) to fix rotation; muted teal-olive-slate palette with warm
> amber as the only saturated accent; screens clearly powered/glowing.

Common prompt suffix on props: *heavy black outline, deep shadow beneath, straight-on
centered symmetrical view-locked, warm-grime lived-in office, muted teal-olive-slate
palette, warm amber accent only.*

Generation params (props / `create_map_object`): view `high top-down`, `high detail`,
`detailed shading`, `single color outline`, transparent bg. Sizes vary per object
(48-144px). One roll each (spares are the tier/variant siblings, not repeat rolls) --
re-roll the weak ones in the review tool.

Tilesets (`create_topdown_tileset`): 32px Wang tiles, `high top-down`, `selective
outline`, `medium shading/detail`. Floors are seamless single-material (lower==upper,
transition 0); walls likewise (the terrain-transition wall variants timed out server-side
and were refired as seamless). Each tileset = `<name>.png` (tile atlas) + `<name>.json`
(Wang metadata for Godot autotiling).

Characters (`create_character`): standard mode, 8 directions, `low top-down`, size 64
(~92px canvas), `single color black outline`, `high detail`. Humanoids + quadruped cats.
Each character = a folder of 8 rotation PNGs (`rotations/{south,east,...}.png`).

NOTE: pixellab map objects auto-delete after 8h; all assets were downloaded to disk here.
The review tool picks these up from `art_source/`.

## Totals
- **48 props** (`props/`) -- office/lab furniture + compute + break-room + decor, in
scummy/decent/mega tiers where relevant.
- **5 seamless tilesets** (`tilesets/`) -- 3 floors + 2 walls, each a png tile-atlas +
a json Wang metadata file for Godot autotiling.
- **10 characters** (`characters/`) -- 8 humanoids + 2 quadruped cats, 8 rotation PNGs each
(80 sprite PNGs).
- **133 PNGs total.** ~96 pixellab generations spent (balance 1591 -> 1495 remaining).

One roll per subject (the "spares" are the tier/variant siblings). Weak ones to re-roll in
the review tool; a few small/simple objects (desk_lamp, floor_lamp, exit_sign, office_phone,
wall_decent tileset) came back sparse and are the first re-roll candidates.

Known re-roll/reruns during this batch: the two office cats and eccentric_genius failed
once with "heavy load" and were refired; the terrain-transition wall tilesets timed out
server-side and were refired as seamless single-material walls.


## Full generated asset list

### Props (props/) -- 48 objects
- armchair_1.png
- bookshelf_1.png
- box_stack_1.png
- cable_spool_1.png
- cardboard_box_1.png
- chair_decent_1.png
- chair_mega_1.png
- chair_scummy_1.png
- coat_rack_1.png
- coffee_machine_1.png
- corkboard_1.png
- couch_waiting_1.png
- desk_decent_1.png
- desk_lamp_1.png
- desk_mega_1.png
- desk_scummy_1.png
- exit_sign_1.png
- filing_cabinet_1.png
- filing_cabinet_tall_1.png
- fire_extinguisher_1.png
- floor_lamp_1.png
- kitchen_bench_decent_1.png
- kitchen_bench_scummy_1.png
- laptop_1.png
- microwave_1.png
- mini_fridge_1.png
- monitor_doomcurve_1.png
- monitor_dual_1.png
- monitor_mega_1.png
- monitor_single_1.png
- office_phone_1.png
- pc_mega_1.png
- pc_scummy_1.png
- plant_dead_1.png
- plant_small_1.png
- plant_tall_1.png
- printer_mega_copier_1.png
- printer_small_1.png
- recycling_bin_1.png
- server_cluster_mega_1.png
- server_rack_single_1.png
- snack_table_1.png
- standing_whiteboard_1.png
- trash_can_1.png
- wall_clock_1.png
- water_cooler_1.png
- whiteboard_blank_1.png
- whiteboard_equations_1.png

### Tilesets (tilesets/) -- 5 seamless Wang sets (png atlas + json)
- floor_carpet_1.png (+ floor_carpet_1.json)
- floor_concrete_1.png (+ floor_concrete_1.json)
- floor_lino_1.png (+ floor_lino_1.json)
- wall_decent_1.png (+ wall_decent_1.json)
- wall_scummy_1.png (+ wall_scummy_1.json)

### Characters (characters/) -- 10 characters, 8 rotations each
- cat_black/ (8 rotation pngs)
- cat_tabby/ (8 rotation pngs)
- eccentric_genius/ (8 rotation pngs)
- founder/ (8 rotation pngs)
- researcher_labcoat/ (8 rotation pngs)
- worker_blouse_f/ (8 rotation pngs)
- worker_cardigan_older/ (8 rotation pngs)
- worker_headphones_young/ (8 rotation pngs)
- worker_hoodie_m/ (8 rotation pngs)
- worker_shirt_glasses_m/ (8 rotation pngs)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"id":"3790c9f7-d4e6-4dba-868a-d06cfea7ea84","name":"muted teal-grey office carpet, low pile, worn patches, faint stains → muted teal-grey office carpet, low pile, worn patches, faint stains","lower_description":"muted teal-grey office carpet, low pile, worn patches, faint stains","upper_description":"muted teal-grey office carpet, low pile, worn patches, faint stains","transition_description":"","tile_size":{"width":32,"height":32},"transition_size":0.0,"view":"high top-down","style_settings":{"detail":"medium detail","outline":"selective outline","shading":"medium shading"},"generation_parameters":{"tile_strength":1.0,"tileset_adherence":100.0,"text_guidance_scale":8.0,"tileset_adherence_freedom":500},"base_tile_ids":{"lower":"39cf1e3e-43d8-40ac-b036-ce3d2283a3da","upper":"a00e6cf6-efc0-458f-a449-b579bd05dcc4"},"tileset_data":{"tiles":[{"id":"13","name":"wang_13","corners":{"NE":"upper","NW":"upper","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":4},"bounding_box":{"x":0,"y":0,"width":32,"height":32}},{"id":"10","name":"wang_10","corners":{"NE":"lower","NW":"upper","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":6,"row":2},"bounding_box":{"x":32,"y":0,"width":32,"height":32}},{"id":"4","name":"wang_4","corners":{"NE":"upper","NW":"lower","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":1,"row":4},"bounding_box":{"x":64,"y":0,"width":32,"height":32}},{"id":"12","name":"wang_12","corners":{"NE":"upper","NW":"upper","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":5,"row":3},"bounding_box":{"x":96,"y":0,"width":32,"height":32}},{"id":"6","name":"wang_6","corners":{"NE":"upper","NW":"lower","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":5},"bounding_box":{"x":0,"y":32,"width":32,"height":32}},{"id":"8","name":"wang_8","corners":{"NE":"lower","NW":"upper","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":6,"row":3},"bounding_box":{"x":32,"y":32,"width":32,"height":32}},{"id":"39cf1e3e-43d8-40ac-b036-ce3d2283a3da","name":"wang_0","corners":{"NE":"lower","NW":"lower","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":3,"row":6},"bounding_box":{"x":64,"y":32,"width":32,"height":32}},{"id":"1","name":"wang_1","corners":{"NE":"lower","NW":"lower","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":1,"row":1},"bounding_box":{"x":96,"y":32,"width":32,"height":32}},{"id":"11","name":"wang_11","corners":{"NE":"lower","NW":"upper","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":3,"row":2},"bounding_box":{"x":0,"y":64,"width":32,"height":32}},{"id":"3","name":"wang_3","corners":{"NE":"lower","NW":"lower","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":1},"bounding_box":{"x":32,"y":64,"width":32,"height":32}},{"id":"2","name":"wang_2","corners":{"NE":"lower","NW":"lower","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":3,"row":1},"bounding_box":{"x":64,"y":64,"width":32,"height":32}},{"id":"5","name":"wang_5","corners":{"NE":"upper","NW":"lower","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":1,"row":2},"bounding_box":{"x":96,"y":64,"width":32,"height":32}},{"id":"a00e6cf6-efc0-458f-a449-b579bd05dcc4","name":"wang_15","corners":{"NE":"upper","NW":"upper","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":2},"bounding_box":{"x":0,"y":96,"width":32,"height":32}},{"id":"14","name":"wang_14","corners":{"NE":"upper","NW":"upper","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":4,"row":3},"bounding_box":{"x":32,"y":96,"width":32,"height":32}},{"id":"9","name":"wang_9","corners":{"NE":"lower","NW":"upper","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":4,"row":4},"bounding_box":{"x":64,"y":96,"width":32,"height":32}},{"id":"7","name":"wang_7","corners":{"NE":"upper","NW":"lower","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":4,"row":2},"bounding_box":{"x":96,"y":96,"width":32,"height":32}}],"tile_size":{"width":32,"height":32},"total_tiles":16,"terrain_types":["lower","upper"],"spritesheet_url":"https://backblaze.pixellab.ai/file/pixellab-tiles/b4c6d604-8bb9-49ce-a4af-67951efc3145/3790c9f7-d4e6-4dba-868a-d06cfea7ea84/spritesheet.png","spritesheet_grid":{"cols":4,"rows":4},"spritesheet_layout":"tileset15_4x4"},"metadata":{"terrain_prompts":{"lower":"muted teal-grey office carpet, low pile, worn patches, faint stains","upper":"muted teal-grey office carpet, low pile, worn patches, faint stains","transition":""}},"created_at":"2026-07-18T15:58:14.935601+00:00","format":"tileset15","layout":{"type":"tileset15","description":"4x4 grid of 16 unique Wang tiles","grid_size":{"width":4,"height":4},"tile_count":16},"pattern_system":{"type":"4x4_wildcard","description":"4×4 patterns with wildcards for flexible tile matching","wildcard_value":255,"pattern_layout":{"description":"4×4 grid where center 2×2 matches tile corners, outer ring uses wildcards","example":{"row_0":"All wildcards (*)","row_1":"Wildcard + NW corner + NE corner + Wildcard","row_2":"Wildcard + SW corner + SE corner + Wildcard","row_3":"All wildcards (*)"}},"terrain_encoding":{"lower":0,"upper":1,"transition":2,"wildcard":255},"usage":{"description":"Sample 4×4 terrain around tile position, encode as pattern key, lookup in cache","benefits":["O(1) lookup performance","Flexible edge matching","Unified pattern system"]}},"tileset_image":{"filename":"tileset_3790c9f7-d4e6-4dba-868a-d06cfea7ea84.png","format":"PNG","dimensions":{"width":128,"height":128}}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"id":"6e4b6862-f8ec-44a1-8e65-de8c4ab4e5a8","name":"worn grey industrial concrete floor, scuffed, faint cracks, oil stains → worn grey industrial concrete floor, scuffed, faint cracks, oil stains","lower_description":"worn grey industrial concrete floor, scuffed, faint cracks, oil stains","upper_description":"worn grey industrial concrete floor, scuffed, faint cracks, oil stains","transition_description":"","tile_size":{"width":32,"height":32},"transition_size":0.0,"view":"high top-down","style_settings":{"detail":"medium detail","outline":"selective outline","shading":"medium shading"},"generation_parameters":{"tile_strength":1.0,"tileset_adherence":100.0,"text_guidance_scale":8.0,"tileset_adherence_freedom":500},"base_tile_ids":{"lower":"5c3fc800-d57c-48a2-a0db-006c3bbacdaa","upper":"b362d7dc-5831-4784-aed3-36f020d9ef02"},"tileset_data":{"tiles":[{"id":"13","name":"wang_13","corners":{"NE":"upper","NW":"upper","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":4},"bounding_box":{"x":0,"y":0,"width":32,"height":32}},{"id":"10","name":"wang_10","corners":{"NE":"lower","NW":"upper","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":6,"row":2},"bounding_box":{"x":32,"y":0,"width":32,"height":32}},{"id":"4","name":"wang_4","corners":{"NE":"upper","NW":"lower","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":1,"row":4},"bounding_box":{"x":64,"y":0,"width":32,"height":32}},{"id":"12","name":"wang_12","corners":{"NE":"upper","NW":"upper","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":5,"row":3},"bounding_box":{"x":96,"y":0,"width":32,"height":32}},{"id":"6","name":"wang_6","corners":{"NE":"upper","NW":"lower","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":5},"bounding_box":{"x":0,"y":32,"width":32,"height":32}},{"id":"8","name":"wang_8","corners":{"NE":"lower","NW":"upper","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":6,"row":3},"bounding_box":{"x":32,"y":32,"width":32,"height":32}},{"id":"5c3fc800-d57c-48a2-a0db-006c3bbacdaa","name":"wang_0","corners":{"NE":"lower","NW":"lower","SE":"lower","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":3,"row":6},"bounding_box":{"x":64,"y":32,"width":32,"height":32}},{"id":"1","name":"wang_1","corners":{"NE":"lower","NW":"lower","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,1,0,255],"row_3":[255,255,255,255]},"original_position":{"col":1,"row":1},"bounding_box":{"x":96,"y":32,"width":32,"height":32}},{"id":"11","name":"wang_11","corners":{"NE":"lower","NW":"upper","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":3,"row":2},"bounding_box":{"x":0,"y":64,"width":32,"height":32}},{"id":"3","name":"wang_3","corners":{"NE":"lower","NW":"lower","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,1,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":1},"bounding_box":{"x":32,"y":64,"width":32,"height":32}},{"id":"2","name":"wang_2","corners":{"NE":"lower","NW":"lower","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":3,"row":1},"bounding_box":{"x":64,"y":64,"width":32,"height":32}},{"id":"5","name":"wang_5","corners":{"NE":"upper","NW":"lower","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,0,0,255],"row_3":[255,255,255,255]},"original_position":{"col":1,"row":2},"bounding_box":{"x":96,"y":64,"width":32,"height":32}},{"id":"b362d7dc-5831-4784-aed3-36f020d9ef02","name":"wang_15","corners":{"NE":"upper","NW":"upper","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,1,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":2,"row":2},"bounding_box":{"x":0,"y":96,"width":32,"height":32}},{"id":"14","name":"wang_14","corners":{"NE":"upper","NW":"upper","SE":"lower","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,1,0,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":4,"row":3},"bounding_box":{"x":32,"y":96,"width":32,"height":32}},{"id":"9","name":"wang_9","corners":{"NE":"lower","NW":"upper","SE":"upper","SW":"lower"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,1,1,255],"row_3":[255,255,255,255]},"original_position":{"col":4,"row":4},"bounding_box":{"x":64,"y":96,"width":32,"height":32}},{"id":"7","name":"wang_7","corners":{"NE":"upper","NW":"lower","SE":"upper","SW":"upper"},"pattern_4x4":{"row_0":[255,255,255,255],"row_1":[255,0,0,255],"row_2":[255,0,1,255],"row_3":[255,255,255,255]},"original_position":{"col":4,"row":2},"bounding_box":{"x":96,"y":96,"width":32,"height":32}}],"tile_size":{"width":32,"height":32},"total_tiles":16,"terrain_types":["lower","upper"],"spritesheet_url":"https://backblaze.pixellab.ai/file/pixellab-tiles/b4c6d604-8bb9-49ce-a4af-67951efc3145/6e4b6862-f8ec-44a1-8e65-de8c4ab4e5a8/spritesheet.png","spritesheet_grid":{"cols":4,"rows":4},"spritesheet_layout":"tileset15_4x4"},"metadata":{"terrain_prompts":{"lower":"worn grey industrial concrete floor, scuffed, faint cracks, oil stains","upper":"worn grey industrial concrete floor, scuffed, faint cracks, oil stains","transition":""}},"created_at":"2026-07-18T15:55:42.450108+00:00","format":"tileset15","layout":{"type":"tileset15","description":"4x4 grid of 16 unique Wang tiles","grid_size":{"width":4,"height":4},"tile_count":16},"pattern_system":{"type":"4x4_wildcard","description":"4×4 patterns with wildcards for flexible tile matching","wildcard_value":255,"pattern_layout":{"description":"4×4 grid where center 2×2 matches tile corners, outer ring uses wildcards","example":{"row_0":"All wildcards (*)","row_1":"Wildcard + NW corner + NE corner + Wildcard","row_2":"Wildcard + SW corner + SE corner + Wildcard","row_3":"All wildcards (*)"}},"terrain_encoding":{"lower":0,"upper":1,"transition":2,"wildcard":255},"usage":{"description":"Sample 4×4 terrain around tile position, encode as pattern key, lookup in cache","benefits":["O(1) lookup performance","Flexible edge matching","Unified pattern system"]}},"tileset_image":{"filename":"tileset_6e4b6862-f8ec-44a1-8e65-de8c4ab4e5a8.png","format":"PNG","dimensions":{"width":128,"height":128}}}
Loading
Loading