{ "schemaVersion": 1, "pet": { "id": "malou", "displayName": "Malou", "version": "2.0.0", "description": "A clean photo-based brown-and-white dog companion for Codex Desktop, ChatGPT Web, and mobile Codex Pet bubbles, with readable status poses and 16 clockwise look directions." }, "package": { "manifest": "dist/malou/pet.json", "spritesheet": "dist/malou/spritesheet.webp", "spriteVersionNumber": 2, "format": "WEBP", "colorMode": "RGBA", "width": 1536, "height": 2288, "visiblePixels": 1769660, "visibleColors": 271464, "lowAlphaPixels": 172365, "visiblePurplePixels": 0, "transparentPurplePixels": 0, "mobileBubbleOptimized": true }, "grid": { "columns": 8, "rows": 11, "cellWidth": 192, "cellHeight": 208, "standardAnimationRows": 9, "lookDirectionRows": [ 9, 10 ], "unusedCells": "transparent" }, "states": [ { "name": "idle", "row": 0, "frameCount": 6, "preview": "assets/previews/idle.mp4" }, { "name": "running-right", "row": 1, "frameCount": 8, "preview": "assets/previews/running-right.mp4" }, { "name": "running-left", "row": 2, "frameCount": 8, "preview": "assets/previews/running-left.mp4" }, { "name": "waving", "row": 3, "frameCount": 4, "preview": "assets/previews/waving.mp4" }, { "name": "jumping", "row": 4, "frameCount": 5, "preview": "assets/previews/jumping.mp4" }, { "name": "failed", "row": 5, "frameCount": 8, "preview": "assets/previews/failed.mp4" }, { "name": "waiting", "row": 6, "frameCount": 6, "preview": "assets/previews/waiting.mp4" }, { "name": "running", "row": 7, "frameCount": 6, "preview": "assets/previews/running.mp4" }, { "name": "review", "row": 8, "frameCount": 6, "preview": "assets/previews/review.mp4" } ], "neutralLookFrame": { "row": 0, "column": 6, "scope": "Codex Desktop" }, "lookDirections": [ { "degrees": 0, "label": "up", "row": 9, "column": 0 }, { "degrees": 22.5, "label": "up-right", "row": 9, "column": 1 }, { "degrees": 45, "label": "up-right", "row": 9, "column": 2 }, { "degrees": 67.5, "label": "up-right", "row": 9, "column": 3 }, { "degrees": 90, "label": "right", "row": 9, "column": 4 }, { "degrees": 112.5, "label": "down-right", "row": 9, "column": 5 }, { "degrees": 135, "label": "down-right", "row": 9, "column": 6 }, { "degrees": 157.5, "label": "down-right", "row": 9, "column": 7 }, { "degrees": 180, "label": "down", "row": 10, "column": 0 }, { "degrees": 202.5, "label": "down-left", "row": 10, "column": 1 }, { "degrees": 225, "label": "down-left", "row": 10, "column": 2 }, { "degrees": 247.5, "label": "down-left", "row": 10, "column": 3 }, { "degrees": 270, "label": "left", "row": 10, "column": 4 }, { "degrees": 292.5, "label": "up-left", "row": 10, "column": 5 }, { "degrees": 315, "label": "up-left", "row": 10, "column": 6 }, { "degrees": 337.5, "label": "up-left", "row": 10, "column": 7 } ], "checksums": { "dist/malou/spritesheet.webp": "08330293f421dbd864e908ea9c23ece1fc9eb065e6126ac62b55f7602241b6c0", "dist/chatgpt-web/malou/spritesheet.png": "10bf406875a69e17ec75e5b65b3f66510d3ac0ee47c41001be07b6fe201d512c", "dist/malou/pet.json": "099e31785a6bd7074fbffc901a912acc97bd1125f51bb1d9e663f9ab699689ca", "assets/contact-sheet.png": "f14caa6cad576b84b9dcd9d7db2a80ec64621a699f482dac9a0ba9b9c84a592b", "assets/look-directions.png": "8c5a34927c07c209fdd433eed2d1ad5bcdd674134b22e34e12f39d57db93761d", "assets/malou-look-directions-share.png": "6efa2e2f3666ca5d242a70aaf8f41bb5173e8ffe3fc13b2b6da22ddbc3b86b97" }, "chatgptWeb": { "directUpload": true, "spritesheet": "dist/chatgpt-web/malou/spritesheet.png", "format": "PNG", "petJsonRequired": false, "v2UploadDimensions": "1536 x 2288", "maximumUploadBytes": 20971520, "neutralCellPolicy": "Row 0, column 6 is transparent for current ChatGPT Web upload compatibility.", "officialDocumentation": "https://learn.chatgpt.com/docs/pets", "officialDocumentationUploadDimensionsAsOfCheck": "1536 x 1872", "verifiedV2UploadDimensions": "1536 x 2288", "uploaderRequirementsChecked": "2026-07-25", "uploadVerified": true, "shareUrlVerified": true, "shareUrl": "https://chatgpt.com/s/sharepet_6a63ebbf4b448191bc9b6fb597429a15" }, "release": { "tag": "v2.0.0", "date": "2026-07-25", "url": "https://github.com/mySebbe/malou-codex-pet/releases/tag/v2.0.0", "assets": { "desktopPackage": "malou-codex-pet-v2.0.0.zip", "chatgptWebAtlas": "malou-chatgpt-web-v2.0.0.png", "lookDirectionsCard": "malou-look-directions-v2.0.0.png", "checksums": "malou-v2.0.0-SHA256SUMS.txt" } }, "mobile": { "desktopInstallRequired": true, "syncModel": "Install and select Malou in the desktop app, then use ChatGPT Remote on iOS or Android with the same account and connected desktop; there is no separate mobile pet archive.", "tested": [ { "platform": "Android", "device": "Pixel 7 Pro", "chatgptVersion": "1.2026.146", "date": "2026-05-30" }, { "platform": "Android", "device": "Pixel 7 Pro", "chatgptVersion": "1.2026.146", "date": "2026-06-02" } ] }, "validation": { "date": "2026-07-25", "standardRowsPreserved": true, "atlas": "pass", "chromaDespill": "pass", "directionSemantics": "pass", "blindDirectionReview": "pass", "directionContinuity": "pass", "independentVisualQa": "pass" }, "privacy": { "publicPackageOnly": true, "excludedPrivateData": [ "original private photo files", "prompt history", "generation job logs", "local Codex state", "local repair scripts", "tokens", "passwords", "machine-specific absolute paths" ] } }