{ "pet_id": "youmiao", "display_name": "\u5e7d\u55b5", "description": "\u4e00\u53ea\u62ab\u7740\u6697\u7d2b\u5e7d\u5f71\u515c\u5e3d\u3001\u4ee5\u51b7\u9752\u9762\u7eb9\u89c2\u5bdf\u4efb\u52a1\u7684\u6c89\u9759\u732b\u5f62\u4f19\u4f34.", "created_at": "2026-07-16T06:34:52.627259+00:00", "sprite_version_number": 2, "atlas": { "columns": 8, "rows": 11, "cell_width": 192, "cell_height": 208, "width": 1536, "height": 2288 }, "rows": [ { "state": "idle", "row": 0, "frames": 6, "purpose": "calm resting, breathing, and blinking loop" }, { "state": "running-right", "row": 1, "frames": 8, "purpose": "rightward drag movement loop" }, { "state": "running-left", "row": 2, "frames": 8, "purpose": "leftward drag movement loop" }, { "state": "waving", "row": 3, "frames": 4, "purpose": "greeting or attention gesture" }, { "state": "jumping", "row": 4, "frames": 5, "purpose": "hover or playful jump" }, { "state": "failed", "row": 5, "frames": 8, "purpose": "blocked, failed, or cancelled reaction" }, { "state": "waiting", "row": 6, "frames": 6, "purpose": "waiting for approval, help, or user input" }, { "state": "running", "row": 7, "frames": 6, "purpose": "active task work or processing" }, { "state": "review", "row": 8, "frames": 6, "purpose": "ready or completed output review" }, { "state": "look-row-9", "row": 9, "frames": 8, "directions": [ "000", "022.5", "045", "067.5", "090", "112.5", "135", "157.5" ], "purpose": "clockwise look directions from up through down-right" }, { "state": "look-row-10", "row": 10, "frames": 8, "directions": [ "180", "202.5", "225", "247.5", "270", "292.5", "315", "337.5" ], "purpose": "clockwise look directions from down through up-left" } ], "layout_guides": [ { "state": "idle", "path": "references\\layout-guides\\idle.png", "width": 1152, "height": 208, "frames": 6, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "running-right", "path": "references\\layout-guides\\running-right.png", "width": 1536, "height": 208, "frames": 8, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "running-left", "path": "references\\layout-guides\\running-left.png", "width": 1536, "height": 208, "frames": 8, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "waving", "path": "references\\layout-guides\\waving.png", "width": 768, "height": 208, "frames": 4, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "jumping", "path": "references\\layout-guides\\jumping.png", "width": 960, "height": 208, "frames": 5, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "failed", "path": "references\\layout-guides\\failed.png", "width": 1536, "height": 208, "frames": 8, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "waiting", "path": "references\\layout-guides\\waiting.png", "width": 1152, "height": 208, "frames": 6, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "running", "path": "references\\layout-guides\\running.png", "width": 1152, "height": 208, "frames": 6, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "review", "path": "references\\layout-guides\\review.png", "width": 1152, "height": 208, "frames": 6, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "look-row-9", "path": "references\\layout-guides\\look-row-9.png", "width": 1536, "height": 208, "frames": 8, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "look-row-10", "path": "references\\layout-guides\\look-row-10.png", "width": 1536, "height": 208, "frames": 8, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" }, { "state": "look-cardinals", "path": "references\\layout-guides\\look-cardinals.png", "width": 768, "height": 208, "frames": 4, "cell_width": 192, "cell_height": 208, "safe_margin_x": 18, "safe_margin_y": 16, "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips" } ], "references": [ { "path": "D:\\code\\water\\tmp\\hatch-pet\\omen-cat\\run\\references\\reference-01.png", "width": 364, "height": 354, "mode": "RGB", "format": "PNG", "source_path": "D:\\code\\water\\tmp\\hatch-pet\\omen-cat\\reference\\omen-cat-source.png", "copied_path": "D:\\code\\water\\tmp\\hatch-pet\\omen-cat\\run\\references\\reference-01.png" } ], "chroma_key": { "hex": "#FFFF00", "rgb": [ 255, 255, 0 ], "name": "yellow", "selection": "auto", "score": 217.85 }, "pet_notes": "Dark Omen-inspired cartoon cat; oversized angular purple cat-eared hood; black void face with three cyan energy marks; compact feline body; broad charcoal armor and bandage wraps; long attached tail; no weapons, logos, text, scenery, shadows, smoke, particles, detached effects, blur, or bloom", "style_preset": "flat-vector", "style_notes": "Dark flat illustration with restrained cel shading, broad readable armor shapes, crisp opaque cyan marks, compact sprite-safe silhouette", "style_contract": "Pet-safe sprite: compact full-body mascot, readable in a 192x208 cell, clear silhouette, simple face, stable palette/materials, and crisp edges for chroma-key extraction. Style `flat-vector`: Flat vector-style mascot with simple geometric forms, crisp color areas, clean outline, and minimal shading. User style notes: Dark flat illustration with restrained cel shading, broad readable armor shapes, crisp opaque cyan marks, compact sprite-safe silhouette.", "brand_name": "", "brand_brief": "", "brand_sources": [], "pet_safe_style": "Pet-safe sprite: compact full-body mascot, readable in a 192x208 cell, clear silhouette, simple face, stable palette/materials, and crisp edges for chroma-key extraction.", "primary_generation_skill": "$imagegen" }