# atlas Demos
## Godot Atlas Export
Export atlas metadata to Godot .tres resource files for game character sprites.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "game", "colors": {"{_}": "#00000000", "{b}": "#2c3e50", "{s}": "#e74c3c", "{h}": "#f1c40f"}}
{"type": "sprite", "name": "player_idle", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_1", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{b}{_}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_2", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "coin", "palette": "game", "grid": ["{_}{h}{h}{_}", "{h}{h}{h}{h}", "{h}{h}{h}{h}", "{_}{h}{h}{_}"]}
{"type": "animation", "name": "walk", "frames": ["player_walk_1", "player_walk_2"], "duration": 200}
```
</div>
<div class="demo-container" data-demo="godot">
</div>
## Godot Export File Generation
Generates AtlasTexture, SpriteFrames, and AnimationLibrary .tres files.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "game", "colors": {"{_}": "#00000000", "{b}": "#2c3e50", "{s}": "#e74c3c", "{h}": "#f1c40f"}}
{"type": "sprite", "name": "player_idle", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_1", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{b}{_}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_2", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "coin", "palette": "game", "grid": ["{_}{h}{h}{_}", "{h}{h}{h}{h}", "{h}{h}{h}{h}", "{_}{h}{h}{_}"]}
{"type": "animation", "name": "walk", "frames": ["player_walk_1", "player_walk_2"], "duration": 200}
```
</div>
<div class="demo-container" data-demo="godot_files">
</div>
## Godot Export Content Verification
Verify AtlasTexture contains correct Rect2 and resource references.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "game", "colors": {"{_}": "#00000000", "{b}": "#2c3e50", "{s}": "#e74c3c", "{h}": "#f1c40f"}}
{"type": "sprite", "name": "player_idle", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_1", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{b}{_}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_2", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "coin", "palette": "game", "grid": ["{_}{h}{h}{_}", "{h}{h}{h}{h}", "{h}{h}{h}{h}", "{_}{h}{h}{_}"]}
{"type": "animation", "name": "walk", "frames": ["player_walk_1", "player_walk_2"], "duration": 200}
```
</div>
<div class="demo-container" data-demo="godot_content">
</div>
## Godot Export with Sprite Origins
Sprites with origin metadata preserve positioning information.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "game", "colors": {"{_}": "#00000000", "{b}": "#2c3e50", "{s}": "#e74c3c", "{h}": "#f1c40f"}}
{"type": "sprite", "name": "player_idle", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_1", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{b}{_}{_}{b}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "player_walk_2", "palette": "game", "grid": ["{_}{b}{b}{_}", "{b}{s}{s}{b}", "{b}{b}{b}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "coin", "palette": "game", "grid": ["{_}{h}{h}{_}", "{h}{h}{h}{h}", "{h}{h}{h}{h}", "{_}{h}{h}{_}"]}
{"type": "animation", "name": "walk", "frames": ["player_walk_1", "player_walk_2"], "duration": 200}
```
</div>
<div class="demo-container" data-demo="godot_origin">
</div>
## libGDX Atlas Export
Export atlas metadata to libGDX TextureAtlas format for RPG game items.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx">
</div>
## libGDX Atlas Format
Verify the text-based .atlas format structure.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_format">
</div>
## libGDX Animation Indices
Animation frames get sequential index values for sprite sheet animation.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_animation">
</div>
## libGDX Export with Offsets
Sprites with origin metadata export as offset values.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_origin">
</div>
## libGDX Export File Generation
Generate .atlas file to disk.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_file">
</div>
## libGDX Filter Modes
Configure texture filtering for different rendering styles.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_filter">
</div>
## libGDX Repeat Modes
Configure texture wrapping for tiling textures.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_repeat">
</div>
## libGDX Export via Trait
Use the Exporter trait for generic export handling.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "rpg", "colors": {"{_}": "#00000000", "{b}": "#5D4E37", "{m}": "#8B4513", "{s}": "#C0C0C0", "{g}": "#FFD700"}}
{"type": "sprite", "name": "sword", "palette": "rpg", "grid": ["{_}{_}{s}{_}", "{_}{s}{s}{_}", "{b}{s}{_}{_}", "{m}{_}{_}{_}"], "metadata": {"origin": [0, 3]}}
{"type": "sprite", "name": "shield", "palette": "rpg", "grid": ["{b}{b}{b}{b}", "{b}{g}{g}{b}", "{b}{g}{g}{b}", "{_}{b}{b}{_}"], "metadata": {"origin": [2, 2]}}
{"type": "sprite", "name": "potion_1", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{g}{g}{g}", "{_}{g}{g}{_}"]}
{"type": "sprite", "name": "potion_2", "palette": "rpg", "grid": ["{_}{s}{s}{_}", "{_}{b}{b}{_}", "{g}{_}{_}{g}", "{_}{g}{g}{_}"]}
{"type": "animation", "name": "potion_shimmer", "frames": ["potion_1", "potion_2"], "duration": 300}
```
</div>
<div class="demo-container" data-demo="libgdx_trait">
</div>
## Unity Atlas Export
Export atlas metadata to Unity JSON format for UI sprite components.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "ui", "colors": {"{_}": "#00000000", "{w}": "#FFFFFF", "{g}": "#4CAF50", "{r}": "#F44336", "{d}": "#212121"}}
{"type": "sprite", "name": "button_normal", "palette": "ui", "grid": ["{d}{d}{d}{d}{d}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{d}{d}{d}{d}{d}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_hover", "palette": "ui", "grid": ["{g}{g}{g}{g}{g}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{g}{g}{g}{g}{g}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_pressed", "palette": "ui", "grid": ["{r}{r}{r}{r}{r}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{r}{r}{r}{r}{r}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "icon_check", "palette": "ui", "grid": ["{_}{_}{_}{g}", "{_}{_}{g}{_}", "{g}{g}{_}{_}", "{_}{g}{_}{_}"]}
```
</div>
<div class="demo-container" data-demo="unity">
</div>
## Unity Export File Generation
Generates JSON metadata, .meta import settings, and .anim clips.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "ui", "colors": {"{_}": "#00000000", "{w}": "#FFFFFF", "{g}": "#4CAF50", "{r}": "#F44336", "{d}": "#212121"}}
{"type": "sprite", "name": "button_normal", "palette": "ui", "grid": ["{d}{d}{d}{d}{d}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{d}{d}{d}{d}{d}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_hover", "palette": "ui", "grid": ["{g}{g}{g}{g}{g}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{g}{g}{g}{g}{g}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_pressed", "palette": "ui", "grid": ["{r}{r}{r}{r}{r}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{r}{r}{r}{r}{r}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "icon_check", "palette": "ui", "grid": ["{_}{_}{_}{g}", "{_}{_}{g}{_}", "{g}{g}{_}{_}", "{_}{g}{_}{_}"]}
```
</div>
<div class="demo-container" data-demo="unity_files">
</div>
## Unity JSON Metadata Content
Verify JSON contains sprite rects with Unity coordinate system (Y-flipped).
<div class="demo-source">
```jsonl
{"type": "palette", "name": "ui", "colors": {"{_}": "#00000000", "{w}": "#FFFFFF", "{g}": "#4CAF50", "{r}": "#F44336", "{d}": "#212121"}}
{"type": "sprite", "name": "button_normal", "palette": "ui", "grid": ["{d}{d}{d}{d}{d}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{d}{d}{d}{d}{d}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_hover", "palette": "ui", "grid": ["{g}{g}{g}{g}{g}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{g}{g}{g}{g}{g}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_pressed", "palette": "ui", "grid": ["{r}{r}{r}{r}{r}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{r}{r}{r}{r}{r}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "icon_check", "palette": "ui", "grid": ["{_}{_}{_}{g}", "{_}{_}{g}{_}", "{g}{g}{_}{_}", "{_}{g}{_}{_}"]}
```
</div>
<div class="demo-container" data-demo="unity_json">
</div>
## Unity Texture Meta File
Verify .meta file contains TextureImporter settings with sprite slices.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "ui", "colors": {"{_}": "#00000000", "{w}": "#FFFFFF", "{g}": "#4CAF50", "{r}": "#F44336", "{d}": "#212121"}}
{"type": "sprite", "name": "button_normal", "palette": "ui", "grid": ["{d}{d}{d}{d}{d}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{d}{d}{d}{d}{d}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_hover", "palette": "ui", "grid": ["{g}{g}{g}{g}{g}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{g}{g}{g}{g}{g}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_pressed", "palette": "ui", "grid": ["{r}{r}{r}{r}{r}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{r}{r}{r}{r}{r}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "icon_check", "palette": "ui", "grid": ["{_}{_}{_}{g}", "{_}{_}{g}{_}", "{g}{g}{_}{_}", "{_}{g}{_}{_}"]}
```
</div>
<div class="demo-container" data-demo="unity_meta">
</div>
## Unity Export with Pivot Points
Sprites with origin metadata are converted to Unity pivot points.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "ui", "colors": {"{_}": "#00000000", "{w}": "#FFFFFF", "{g}": "#4CAF50", "{r}": "#F44336", "{d}": "#212121"}}
{"type": "sprite", "name": "button_normal", "palette": "ui", "grid": ["{d}{d}{d}{d}{d}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{d}{d}{d}{d}{d}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_hover", "palette": "ui", "grid": ["{g}{g}{g}{g}{g}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{g}{g}{g}{g}{g}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_pressed", "palette": "ui", "grid": ["{r}{r}{r}{r}{r}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{r}{r}{r}{r}{r}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "icon_check", "palette": "ui", "grid": ["{_}{_}{_}{g}", "{_}{_}{g}{_}", "{g}{g}{_}{_}", "{_}{g}{_}{_}"]}
```
</div>
<div class="demo-container" data-demo="unity_pivot">
</div>
## Unity Export Filter Modes
Configure texture filtering for different use cases.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "ui", "colors": {"{_}": "#00000000", "{w}": "#FFFFFF", "{g}": "#4CAF50", "{r}": "#F44336", "{d}": "#212121"}}
{"type": "sprite", "name": "button_normal", "palette": "ui", "grid": ["{d}{d}{d}{d}{d}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{w}{w}{w}{w}{d}", "{d}{d}{d}{d}{d}{d}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_hover", "palette": "ui", "grid": ["{g}{g}{g}{g}{g}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{w}{w}{w}{w}{g}", "{g}{g}{g}{g}{g}{g}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "button_pressed", "palette": "ui", "grid": ["{r}{r}{r}{r}{r}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{d}{d}{d}{d}{r}", "{r}{r}{r}{r}{r}{r}"], "metadata": {"origin": [3, 2]}}
{"type": "sprite", "name": "icon_check", "palette": "ui", "grid": ["{_}{_}{_}{g}", "{_}{_}{g}{_}", "{g}{g}{_}{_}", "{_}{g}{_}{_}"]}
```
</div>
<div class="demo-container" data-demo="unity_filter">
</div>
## Aseprite JSON Atlas
Sprite atlas data for Aseprite-compatible JSON export format.
<div class="demo-source">
```jsonl
{"type": "palette", "name": "character", "colors": {"{_}": "#00000000", "{o}": "#2C3E50", "{s}": "#E74C3C", "{e}": "#3498DB", "{h}": "#F39C12"}}
{"type": "sprite", "name": "char_idle_1", "palette": "character", "grid": ["{_}{o}{o}{_}", "{o}{e}{e}{o}", "{o}{s}{s}{o}", "{_}{o}{_}{o}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "char_idle_2", "palette": "character", "grid": ["{_}{o}{o}{_}", "{o}{e}{e}{o}", "{o}{s}{s}{o}", "{o}{_}{_}{o}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "char_run_1", "palette": "character", "grid": ["{_}{o}{o}{_}", "{o}{e}{e}{o}", "{o}{s}{s}{o}", "{o}{_}{o}{_}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "char_run_2", "palette": "character", "grid": ["{_}{o}{o}{_}", "{o}{e}{e}{o}", "{o}{s}{s}{o}", "{_}{o}{_}{o}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "char_run_3", "palette": "character", "grid": ["{_}{o}{o}{_}", "{o}{e}{e}{o}", "{o}{s}{s}{o}", "{_}{o}{o}{_}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "char_run_4", "palette": "character", "grid": ["{_}{o}{o}{_}", "{o}{e}{e}{o}", "{o}{s}{s}{o}", "{o}{_}{_}{o}"], "metadata": {"origin": [2, 3]}}
{"type": "sprite", "name": "item_gem", "palette": "character", "grid": ["{_}{h}{_}", "{h}{h}{h}", "{_}{h}{_}"]}
{"type": "animation", "name": "idle", "frames": ["char_idle_1", "char_idle_2"], "duration": 500}
{"type": "animation", "name": "run", "frames": ["char_run_1", "char_run_2", "char_run_3", "char_run_4"], "duration": 100}
```
</div>
<div class="demo-container" data-demo="aseprite">
</div>