[{"data":1,"prerenderedAt":1573},["ShallowReactive",2],{"navigation_docs":3,"-mime-types-image-ppm":673,"-mime-types-image-ppm-surround":1546,"mdc-em5pc8-key":1547,"mdc-enyn4v-key":1557},[4,29,123,155,193,222,251,267,408,416,456,462,468],{"title":5,"path":6,"stem":7,"children":8,"icon":28},"Getting Started","\u002Fgetting-started","01.getting-started\u002F1.index",[9,13,18,23],{"title":10,"path":6,"stem":7,"icon":11,"exact":12},"What is Poly?","i-lucide-house",true,{"title":14,"path":15,"stem":16,"icon":17},"Installation","\u002Fgetting-started\u002Finstallation","01.getting-started\u002F2.installation","i-lucide-download",{"title":19,"path":20,"stem":21,"icon":22},"Quickstart","\u002Fgetting-started\u002Fquickstart","01.getting-started\u002F3.quickstart","i-lucide-rocket",{"title":24,"path":25,"stem":26,"icon":27},"Migrate to Poly","\u002Fgetting-started\u002Fmigrate-to-poly","01.getting-started\u002F4.migrate-to-poly","i-lucide-replace",false,{"title":30,"path":31,"stem":32,"children":33,"icon":28},"File Browser","\u002Ffile-browser","02.file-browser\u002F01.index",[34,37,42,47,52,57,62,67,72,113,118],{"title":35,"path":31,"stem":32,"icon":36,"exact":12},"Overview","i-lucide-folder-open",{"title":38,"path":39,"stem":40,"icon":41},"Uploading Files","\u002Ffile-browser\u002Fuploading-your-files","02.file-browser\u002F02.uploading-your-files","i-lucide-upload",{"title":43,"path":44,"stem":45,"icon":46},"Navigating Your Files","\u002Ffile-browser\u002Fnavigating-your-files","02.file-browser\u002F03.navigating-your-files","i-lucide-map",{"title":48,"path":49,"stem":50,"icon":51},"Sidebar","\u002Ffile-browser\u002Fsidebar","02.file-browser\u002F04.sidebar","i-lucide-panel-left",{"title":53,"path":54,"stem":55,"icon":56},"Saved Searches","\u002Ffile-browser\u002Fsaved-searches","02.file-browser\u002F05.saved-searches","i-lucide-folder-search",{"title":58,"path":59,"stem":60,"icon":61},"Supported File Types","\u002Ffile-browser\u002Fsupported-file-types","02.file-browser\u002F06.supported-file-types","i-lucide-file",{"title":63,"path":64,"stem":65,"icon":66},"View Modes","\u002Ffile-browser\u002Fview-modes","02.file-browser\u002F07.view-modes","i-lucide-layout-grid",{"title":68,"path":69,"stem":70,"icon":71},"Quick View (Peek)","\u002Ffile-browser\u002Fquick-view","02.file-browser\u002F08.quick-view","i-lucide-eye",{"title":73,"path":74,"stem":75,"children":76,"icon":78},"Tools Menu","\u002Ffile-browser\u002Ftools-menu","02.file-browser\u002F09.tools-menu\u002F1.index",[77,79,84,89,94,99,104,108],{"title":73,"path":74,"stem":75,"icon":78,"exact":12},"i-lucide-wrench",{"title":80,"path":81,"stem":82,"icon":83},"Agent","\u002Ffile-browser\u002Ftools-menu\u002Fagent","02.file-browser\u002F09.tools-menu\u002F2.agent","i-lucide-bot",{"title":85,"path":86,"stem":87,"icon":88},"Chats","\u002Ffile-browser\u002Ftools-menu\u002Fchats","02.file-browser\u002F09.tools-menu\u002F3.chats","i-lucide-message-square",{"title":90,"path":91,"stem":92,"icon":93},"Outline","\u002Ffile-browser\u002Ftools-menu\u002Foutline","02.file-browser\u002F09.tools-menu\u002F4.outline","i-lucide-list",{"title":95,"path":96,"stem":97,"icon":98},"Details Panel","\u002Ffile-browser\u002Ftools-menu\u002Fdetails","02.file-browser\u002F09.tools-menu\u002F5.details","i-lucide-panel-right",{"title":100,"path":101,"stem":102,"icon":103},"Activity","\u002Ffile-browser\u002Ftools-menu\u002Factivity","02.file-browser\u002F09.tools-menu\u002F6.activity","i-lucide-activity",{"title":105,"path":106,"stem":107,"icon":66},"Waterfall","\u002Ffile-browser\u002Ftools-menu\u002Fwaterfall","02.file-browser\u002F09.tools-menu\u002F7.waterfall",{"title":109,"path":110,"stem":111,"icon":112},"Flashback","\u002Ffile-browser\u002Ftools-menu\u002Fflashback","02.file-browser\u002F09.tools-menu\u002F8.flashback","i-lucide-zap",{"title":114,"path":115,"stem":116,"icon":117},"Keyboard Shortcuts","\u002Ffile-browser\u002Fkeyboard-shortcuts","02.file-browser\u002F10.keyboard-shortcuts","i-lucide-keyboard",{"title":119,"path":120,"stem":121,"icon":122},"Offline Use","\u002Ffile-browser\u002Foffline-use","02.file-browser\u002F11.offline-use","i-lucide-wifi-off",{"title":124,"path":125,"stem":126,"children":127,"icon":28},"Searching","\u002Fsearching","03.searching\u002F1.index",[128,130,135,140,145,150],{"title":35,"path":125,"stem":126,"icon":129,"exact":12},"i-lucide-search",{"title":131,"path":132,"stem":133,"icon":134},"Text Queries","\u002Fsearching\u002Ftext-queries","03.searching\u002F2.text-queries","i-lucide-text-search",{"title":136,"path":137,"stem":138,"icon":139},"Searching by File","\u002Fsearching\u002Fsearching-by-file","03.searching\u002F3.searching-by-file","i-lucide-scan-search",{"title":141,"path":142,"stem":143,"icon":144},"Searching by File Part","\u002Fsearching\u002Fsearching-by-file-part","03.searching\u002F4.searching-by-file-part","i-lucide-crop",{"title":146,"path":147,"stem":148,"icon":149},"Searching by Color","\u002Fsearching\u002Fsearching-by-color","03.searching\u002F5.searching-by-color","i-lucide-palette",{"title":151,"path":152,"stem":153,"icon":154},"Faceted Search & Advanced Search","\u002Fsearching\u002Ffaceted-search","03.searching\u002F6.faceted-search","i-lucide-filter",{"title":156,"path":157,"stem":158,"children":159,"icon":28},"Desktop","\u002Fdesktop","04.desktop\u002F1.index",[160,163,168,173,178,183,188],{"title":161,"path":157,"stem":158,"icon":162,"exact":12},"Intro","i-lucide-monitor",{"title":164,"path":165,"stem":166,"icon":167},"Sync Folder","\u002Fdesktop\u002Fsync-folder","04.desktop\u002F2.sync-folder","i-lucide-folder-sync",{"title":169,"path":170,"stem":171,"icon":172},"CLI","\u002Fdesktop\u002Fcli","04.desktop\u002F3.cli","i-lucide-square-terminal",{"title":174,"path":175,"stem":176,"icon":177},"Tags & Colors","\u002Fdesktop\u002Ftags-and-colors","04.desktop\u002F4.tags-and-colors","i-lucide-tags",{"title":179,"path":180,"stem":181,"icon":182},"Bookmarks","\u002Fdesktop\u002Fbookmarks","04.desktop\u002F5.bookmarks","i-lucide-bookmark",{"title":184,"path":185,"stem":186,"icon":187},"Spotlight & Handoff","\u002Fdesktop\u002Fspotlight-and-handoff","04.desktop\u002F6.spotlight-and-handoff","i-lucide-sparkles",{"title":189,"path":190,"stem":191,"icon":192},"Differences from Web","\u002Fdesktop\u002Fdifferences-from-web","04.desktop\u002F7.differences-from-web","i-lucide-app-window",{"title":80,"path":194,"stem":195,"children":196,"icon":28,"defaultOpen":28},"\u002Fagent","05.agent\u002F1.index",[197,198,203,207,212,217],{"title":35,"path":194,"stem":195,"icon":83,"exact":12},{"title":199,"path":200,"stem":201,"icon":202},"Reading & Summarizing Files","\u002Fagent\u002Freading-and-summarizing","05.agent\u002F2.reading-and-summarizing","i-lucide-book-open",{"title":204,"path":205,"stem":206,"icon":129},"AI-Powered Searching","\u002Fagent\u002Fsearching","05.agent\u002F3.searching",{"title":208,"path":209,"stem":210,"icon":211},"Creating and Editing Files","\u002Fagent\u002Fcreating-and-editing-files","05.agent\u002F4.creating-and-editing-files","i-lucide-file-pen",{"title":213,"path":214,"stem":215,"icon":216},"Organizing Files","\u002Fagent\u002Forganizing-files","05.agent\u002F5.organizing-files","i-lucide-folder-symlink",{"title":218,"path":219,"stem":220,"icon":221},"Complex, Multi-Step Tasks","\u002Fagent\u002Fcomplex-tasks","05.agent\u002F6.complex-tasks","i-lucide-workflow",{"title":223,"path":224,"stem":225,"children":226,"icon":28,"defaultOpen":28},"Recovering Files","\u002Frecovering-files","06.recovering-files\u002F1.index",[227,229,233,236,241,246],{"title":35,"path":224,"stem":225,"icon":228,"exact":12},"i-lucide-history",{"title":230,"path":231,"stem":232,"icon":71},"Viewing Versions","\u002Frecovering-files\u002Fviewing-versions","06.recovering-files\u002F2.viewing-versions",{"title":109,"path":234,"stem":235,"icon":112},"\u002Frecovering-files\u002Fflashback","06.recovering-files\u002F3.flashback",{"title":237,"path":238,"stem":239,"icon":240},"Restoring Versions","\u002Frecovering-files\u002Frestoring-versions","06.recovering-files\u002F4.restoring-versions","i-lucide-rotate-ccw",{"title":242,"path":243,"stem":244,"icon":245},"Reverting Changes","\u002Frecovering-files\u002Freverting-changes","06.recovering-files\u002F5.reverting-changes","i-lucide-undo-2",{"title":247,"path":248,"stem":249,"icon":250},"Limitations","\u002Frecovering-files\u002Flimitations","06.recovering-files\u002F6.limitations","i-lucide-triangle-alert",{"title":252,"path":253,"stem":254,"children":255,"icon":28,"defaultOpen":28},"Sharing","\u002Fsharing","07.sharing\u002F1.index",[256,258,262],{"title":35,"path":253,"stem":254,"icon":257,"exact":12},"i-lucide-share-2",{"title":259,"path":260,"stem":261,"icon":257},"Sharing Files","\u002Fsharing\u002Fsharing-files","07.sharing\u002F2.sharing-files",{"title":263,"path":264,"stem":265,"icon":266},"Shared Drives","\u002Fsharing\u002Fshared-drives","07.sharing\u002F3.shared-drives","i-lucide-users",{"title":169,"path":268,"stem":269,"children":270,"icon":28,"defaultOpen":28},"\u002Fcli","08.cli\u002F1.index",[271,273,278,399,404],{"title":14,"path":268,"stem":269,"icon":272,"exact":12},"i-lucide-terminal",{"title":274,"path":275,"stem":276,"icon":277},"How it Works","\u002Fcli\u002Fhow-it-works","08.cli\u002F2.how-it-works","i-lucide-cog",{"title":279,"path":280,"stem":281,"children":282,"icon":284},"Commands","\u002Fcli\u002Fcommands","08.cli\u002F3.commands\u002F01.index",[283,285,289,293,297,302,307,312,317,322,327,332,337,342,347,351,356,360,365,369,373,377,382,386,390,394],{"title":279,"path":280,"stem":281,"icon":284,"exact":12},"i-lucide-list-tree",{"title":286,"path":287,"stem":288,"icon":93},"ls","\u002Fcli\u002Fcommands\u002Fls","08.cli\u002F3.commands\u002F02.ls",{"title":290,"path":291,"stem":292,"icon":56},"find","\u002Fcli\u002Fcommands\u002Ffind","08.cli\u002F3.commands\u002F03.find",{"title":294,"path":295,"stem":296,"icon":129},"search","\u002Fcli\u002Fcommands\u002Fsearch","08.cli\u002F3.commands\u002F04.search",{"title":298,"path":299,"stem":300,"icon":301},"cp","\u002Fcli\u002Fcommands\u002Fcp","08.cli\u002F3.commands\u002F05.cp","i-lucide-copy",{"title":303,"path":304,"stem":305,"icon":306},"mv","\u002Fcli\u002Fcommands\u002Fmv","08.cli\u002F3.commands\u002F06.mv","i-lucide-move",{"title":308,"path":309,"stem":310,"icon":311},"rm","\u002Fcli\u002Fcommands\u002Frm","08.cli\u002F3.commands\u002F07.rm","i-lucide-trash-2",{"title":313,"path":314,"stem":315,"icon":316},"mkdir","\u002Fcli\u002Fcommands\u002Fmkdir","08.cli\u002F3.commands\u002F08.mkdir","i-lucide-folder-plus",{"title":318,"path":319,"stem":320,"icon":321},"mkurl","\u002Fcli\u002Fcommands\u002Fmkurl","08.cli\u002F3.commands\u002F09.mkurl","i-lucide-link",{"title":323,"path":324,"stem":325,"icon":326},"mksearch","\u002Fcli\u002Fcommands\u002Fmksearch","08.cli\u002F3.commands\u002F10.mksearch","i-lucide-search-code",{"title":328,"path":329,"stem":330,"icon":331},"mkdrive","\u002Fcli\u002Fcommands\u002Fmkdrive","08.cli\u002F3.commands\u002F11.mkdrive","i-lucide-hard-drive",{"title":333,"path":334,"stem":335,"icon":336},"rmdrive","\u002Fcli\u002Fcommands\u002Frmdrive","08.cli\u002F3.commands\u002F12.rmdrive","i-lucide-trash",{"title":338,"path":339,"stem":340,"icon":341},"wget","\u002Fcli\u002Fcommands\u002Fwget","08.cli\u002F3.commands\u002F13.wget","i-lucide-cloud-download",{"title":343,"path":344,"stem":345,"icon":346},"file show","\u002Fcli\u002Fcommands\u002Ffile-show","08.cli\u002F3.commands\u002F14.file-show","i-lucide-info",{"title":348,"path":349,"stem":350,"icon":202},"file read","\u002Fcli\u002Fcommands\u002Ffile-read","08.cli\u002F3.commands\u002F15.file-read",{"title":352,"path":353,"stem":354,"icon":355},"file write","\u002Fcli\u002Fcommands\u002Ffile-write","08.cli\u002F3.commands\u002F16.file-write","i-lucide-pencil",{"title":357,"path":358,"stem":359,"icon":211},"file update","\u002Fcli\u002Fcommands\u002Ffile-update","08.cli\u002F3.commands\u002F17.file-update",{"title":361,"path":362,"stem":363,"icon":364},"file search","\u002Fcli\u002Fcommands\u002Ffile-search","08.cli\u002F3.commands\u002F18.file-search","i-lucide-file-search",{"title":366,"path":367,"stem":368,"icon":228},"file history","\u002Fcli\u002Fcommands\u002Ffile-history","08.cli\u002F3.commands\u002F19.file-history",{"title":370,"path":371,"stem":372,"icon":240},"file restore","\u002Fcli\u002Fcommands\u002Ffile-restore","08.cli\u002F3.commands\u002F20.file-restore",{"title":374,"path":375,"stem":376,"icon":245},"file revert","\u002Fcli\u002Fcommands\u002Ffile-revert","08.cli\u002F3.commands\u002F21.file-revert",{"title":378,"path":379,"stem":380,"icon":381},"file open","\u002Fcli\u002Fcommands\u002Ffile-open","08.cli\u002F3.commands\u002F22.file-open","i-lucide-external-link",{"title":383,"path":384,"stem":385,"icon":17},"file download","\u002Fcli\u002Fcommands\u002Ffile-download","08.cli\u002F3.commands\u002F23.file-download",{"title":387,"path":388,"stem":389,"icon":257},"file share","\u002Fcli\u002Fcommands\u002Ffile-share","08.cli\u002F3.commands\u002F24.file-share",{"title":391,"path":392,"stem":393,"icon":192},"app","\u002Fcli\u002Fcommands\u002Fapp","08.cli\u002F3.commands\u002F25.app",{"title":395,"path":396,"stem":397,"icon":398},"auth","\u002Fcli\u002Fcommands\u002Fauth","08.cli\u002F3.commands\u002F26.auth","i-lucide-key-round",{"title":400,"path":401,"stem":402,"icon":403},"Global Flags","\u002Fcli\u002Fglobal-flags","08.cli\u002F4.global-flags","i-lucide-sliders-horizontal",{"title":405,"path":406,"stem":407,"icon":83},"Agent Skill","\u002Fcli\u002Fagent-skill","08.cli\u002F5.agent-skill",{"title":409,"path":410,"stem":411,"children":412,"icon":28,"defaultOpen":28},"Privacy & Security","\u002Fprivacy-and-security","09.privacy-and-security\u002F1.index",[413],{"title":414,"path":410,"stem":411,"icon":415,"exact":12},"Our Privacy Commitment","i-lucide-shield-check",{"title":417,"path":418,"stem":419,"children":420,"icon":28,"defaultOpen":28},"Integrations & MCP","\u002Fintegrations","10.integrations\u002F1.index",[421,423,428,433,438,442,447,452],{"title":35,"path":418,"stem":419,"icon":422,"exact":12},"i-lucide-plug",{"title":424,"path":425,"stem":426,"icon":427},"Claude Code","\u002Fintegrations\u002Fclaude-code","10.integrations\u002F2.claude-code","i-simple-icons-claude",{"title":429,"path":430,"stem":431,"icon":432},"Claude CoWork (Desktop)","\u002Fintegrations\u002Fclaude-cowork","10.integrations\u002F3.claude-cowork","i-simple-icons-anthropic",{"title":434,"path":435,"stem":436,"icon":437},"ChatGPT Work (Desktop)","\u002Fintegrations\u002Fchatgpt-work","10.integrations\u002F4.chatgpt-work","i-simple-icons-openai",{"title":439,"path":440,"stem":441,"icon":437},"ChatGPT","\u002Fintegrations\u002Fchatgpt","10.integrations\u002F5.chatgpt",{"title":443,"path":444,"stem":445,"icon":446},"Gemini","\u002Fintegrations\u002Fgemini","10.integrations\u002F6.gemini","i-simple-icons-googlegemini",{"title":448,"path":449,"stem":450,"icon":451},"VS Code & Cursor","\u002Fintegrations\u002Fvscode-cursor","10.integrations\u002F7.vscode-cursor","i-simple-icons-visualstudiocode",{"title":453,"path":454,"stem":455,"icon":78},"Using MCP","\u002Fintegrations\u002Fusing-mcp","10.integrations\u002F8.using-mcp",{"title":457,"path":458,"stem":459,"children":460,"icon":28,"defaultOpen":28},"Troubleshooting","\u002Ftroubleshooting","11.troubleshooting\u002F1.index",[461],{"title":457,"path":458,"stem":459,"icon":78,"exact":12},{"title":463,"path":464,"stem":465,"children":466,"icon":28,"defaultOpen":28},"Roadmap","\u002Froadmap","12.roadmap\u002F1.index",[467],{"title":463,"path":464,"stem":465,"icon":46,"exact":12},{"title":469,"icon":28,"defaultOpen":28,"path":470,"stem":471,"children":472,"page":28},"Releases","\u002Freleases","13.releases",[473,477],{"title":474,"path":475,"stem":476},"Latest","\u002Freleases\u002Fall-releases\u002F2026-09-01-v0-beta-09-01","13.releases\u002F1.latest",{"title":478,"icon":28,"defaultOpen":28,"path":479,"stem":480,"children":481,"page":28},"All releases","\u002Freleases\u002Fall-releases","13.releases\u002F2.all-releases",[482,489,497,505,513,521,529,537,545,553,561,569,577,585,593,601,609,617,625,633,641,649,657,665],{"title":483,"path":475,"stem":484,"release-notes":485},"v0.beta.2026.09.01","13.releases\u002F2.all-releases\u002F2026-09-01-v0-beta-09-01",{"date":486,"banner":487,"icon":488,"version":483},"2026-09-01","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-09-01\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-09-01\u002Fsticker.png",{"title":490,"path":491,"stem":492,"release-notes":493},"v0.beta.2026.08.27","\u002Freleases\u002Fall-releases\u002F2026-08-27-v0-beta-08-27","13.releases\u002F2.all-releases\u002F2026-08-27-v0-beta-08-27",{"date":494,"banner":495,"icon":496,"version":490},"2026-08-27","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-08-27\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-08-27\u002Ficon.png",{"title":498,"path":499,"stem":500,"release-notes":501},"v0.beta.2026.08.18","\u002Freleases\u002Fall-releases\u002F2026-08-18-v0-beta-08-18","13.releases\u002F2.all-releases\u002F2026-08-18-v0-beta-08-18",{"date":502,"banner":503,"icon":504,"version":498},"2026-08-18","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-08-18\u002Fbanner.png","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-08-18\u002Fsticker.png",{"title":506,"path":507,"stem":508,"release-notes":509},"v0.beta.2026.08.11","\u002Freleases\u002Fall-releases\u002F2026-08-11-v0-beta-08-11","13.releases\u002F2.all-releases\u002F2026-08-11-v0-beta-08-11",{"date":510,"banner":511,"icon":512,"version":506},"2026-08-11","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-08-11\u002Fbanner.png","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-08-11\u002FUnknown-12.png",{"title":514,"path":515,"stem":516,"release-notes":517},"v0.beta.2026.01.22","\u002Freleases\u002Fall-releases\u002F2026-01-22-v0-beta-01-22","13.releases\u002F2.all-releases\u002F2026-01-22-v0-beta-01-22",{"date":518,"banner":519,"icon":520,"version":514},"2026-01-22","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-01-22\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-01-22\u002Ficon.webp",{"title":522,"path":523,"stem":524,"release-notes":525},"v0.beta.2026.01.13","\u002Freleases\u002Fall-releases\u002F2026-01-13-v0-beta-01-13","13.releases\u002F2.all-releases\u002F2026-01-13-v0-beta-01-13",{"date":526,"banner":527,"icon":528,"version":522},"2026-01-13","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-01-13\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-01-13\u002Ficon.webp",{"title":530,"path":531,"stem":532,"release-notes":533},"v0.beta.2026.01.09","\u002Freleases\u002Fall-releases\u002F2026-01-09-v0-beta-01-09","13.releases\u002F2.all-releases\u002F2026-01-09-v0-beta-01-09",{"date":534,"banner":535,"icon":536,"version":530},"2026-01-09","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-01-09\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2026-01-09\u002Ficon.webp",{"title":538,"path":539,"stem":540,"release-notes":541},"v0.beta.2025.12.31","\u002Freleases\u002Fall-releases\u002F2025-12-31-v0-beta-12-31","13.releases\u002F2.all-releases\u002F2025-12-31-v0-beta-12-31",{"date":542,"banner":543,"icon":544,"version":538},"2025-12-31","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-31\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-31\u002Ficon.webp",{"title":546,"path":547,"stem":548,"release-notes":549},"v0.beta.2025.12.26","\u002Freleases\u002Fall-releases\u002F2025-12-26-v0-beta-12-26","13.releases\u002F2.all-releases\u002F2025-12-26-v0-beta-12-26",{"date":550,"banner":551,"icon":552,"version":546},"2025-12-26","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-26\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-26\u002Ficon.webp",{"title":554,"path":555,"stem":556,"release-notes":557},"v0.beta.2025.12.16","\u002Freleases\u002Fall-releases\u002F2025-12-16-v0-beta-12-16","13.releases\u002F2.all-releases\u002F2025-12-16-v0-beta-12-16",{"date":558,"banner":559,"icon":560,"version":554},"2025-12-16","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-16\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-16\u002Ficon.webp",{"title":562,"path":563,"stem":564,"release-notes":565},"v0.beta.2025.12.12","\u002Freleases\u002Fall-releases\u002F2025-12-12-v0-beta-12-12","13.releases\u002F2.all-releases\u002F2025-12-12-v0-beta-12-12",{"date":566,"banner":567,"icon":568,"version":562},"2025-12-12","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-12\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-12\u002Ficon.webp",{"title":570,"path":571,"stem":572,"release-notes":573},"v0.beta.2025.12.03","\u002Freleases\u002Fall-releases\u002F2025-12-03-v0-beta-12-03","13.releases\u002F2.all-releases\u002F2025-12-03-v0-beta-12-03",{"date":574,"banner":575,"icon":576,"version":570},"2025-12-03","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-03\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-12-03\u002Ficon.webp",{"title":578,"path":579,"stem":580,"release-notes":581},"v0.beta.2025.11.26","\u002Freleases\u002Fall-releases\u002F2025-11-26-v0-beta-11-26","13.releases\u002F2.all-releases\u002F2025-11-26-v0-beta-11-26",{"date":582,"banner":583,"icon":584,"version":578},"2025-11-26","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-26\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-26\u002Ficon.webp",{"title":586,"path":587,"stem":588,"release-notes":589},"v0.beta.2025.11.19","\u002Freleases\u002Fall-releases\u002F2025-11-19-v0-beta-11-19","13.releases\u002F2.all-releases\u002F2025-11-19-v0-beta-11-19",{"date":590,"banner":591,"icon":592,"version":586},"2025-11-19","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-19\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-19\u002Ficon.webp",{"title":594,"path":595,"stem":596,"release-notes":597},"v0.beta.2025.11.13","\u002Freleases\u002Fall-releases\u002F2025-11-13-v0-beta-11-13","13.releases\u002F2.all-releases\u002F2025-11-13-v0-beta-11-13",{"date":598,"banner":599,"icon":600,"version":594},"2025-11-13","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-13\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-13\u002Ficon.webp",{"title":602,"path":603,"stem":604,"release-notes":605},"v0.beta.2025.11.05","\u002Freleases\u002Fall-releases\u002F2025-11-05-v0-beta-11-05","13.releases\u002F2.all-releases\u002F2025-11-05-v0-beta-11-05",{"date":606,"banner":607,"icon":608,"version":602},"2025-11-05","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-05\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-11-05\u002Ficon.webp",{"title":610,"path":611,"stem":612,"release-notes":613},"v0.beta.2025.10.29","\u002Freleases\u002Fall-releases\u002F2025-10-29-v0-beta-10-29","13.releases\u002F2.all-releases\u002F2025-10-29-v0-beta-10-29",{"date":614,"banner":615,"icon":616,"version":610},"2025-10-29","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-29\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-29\u002Ficon.webp",{"title":618,"path":619,"stem":620,"release-notes":621},"v0.beta.2025.10.21","\u002Freleases\u002Fall-releases\u002F2025-10-21-v0-beta-10-21","13.releases\u002F2.all-releases\u002F2025-10-21-v0-beta-10-21",{"date":622,"banner":623,"icon":624,"version":618},"2025-10-21","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-21\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-21\u002Ficon.webp",{"title":626,"path":627,"stem":628,"release-notes":629},"v0.beta.2025.10.14","\u002Freleases\u002Fall-releases\u002F2025-10-14-v0-beta-10-14","13.releases\u002F2.all-releases\u002F2025-10-14-v0-beta-10-14",{"date":630,"banner":631,"icon":632,"version":626},"2025-10-14","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-14\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-14\u002Ficon.webp",{"title":634,"path":635,"stem":636,"release-notes":637},"v0.beta.2025.10.08","\u002Freleases\u002Fall-releases\u002F2025-10-08-v0-beta-10-08","13.releases\u002F2.all-releases\u002F2025-10-08-v0-beta-10-08",{"date":638,"banner":639,"icon":640,"version":634},"2025-10-08","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-08\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-08\u002Ficon.webp",{"title":642,"path":643,"stem":644,"release-notes":645},"v0.beta.2025.10.01","\u002Freleases\u002Fall-releases\u002F2025-10-01-v0-beta-10-01","13.releases\u002F2.all-releases\u002F2025-10-01-v0-beta-10-01",{"date":646,"banner":647,"icon":648,"version":642},"2025-10-01","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-01\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-10-01\u002Ficon.webp",{"title":650,"path":651,"stem":652,"release-notes":653},"v0.beta.2025.09.23","\u002Freleases\u002Fall-releases\u002F2025-09-23-v0-beta-09-23","13.releases\u002F2.all-releases\u002F2025-09-23-v0-beta-09-23",{"date":654,"banner":655,"icon":656,"version":650},"2025-09-23","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-09-23\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-09-23\u002Ficon.webp",{"title":658,"path":659,"stem":660,"release-notes":661},"v0.beta.2025.09.16","\u002Freleases\u002Fall-releases\u002F2025-09-16-v0-beta-09-16","13.releases\u002F2.all-releases\u002F2025-09-16-v0-beta-09-16",{"date":662,"banner":663,"icon":664,"version":658},"2025-09-16","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-09-16\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-09-16\u002Ficon.webp",{"title":666,"path":667,"stem":668,"release-notes":669},"v0.beta.2025.09.03","\u002Freleases\u002Fall-releases\u002F2025-09-03-v0-beta-09-03","13.releases\u002F2.all-releases\u002F2025-09-03-v0-beta-09-03",{"date":670,"banner":671,"icon":672,"version":666},"2025-09-03","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-09-03\u002Fbanner.jpg","https:\u002F\u002Ffiles.poly.app\u002Fassets\u002Frelease-notes\u002F2025-09-03\u002Ficon.webp",{"id":674,"title":675,"body":676,"description":1522,"extension":1523,"file-extension":1524,"links":1524,"meta":1525,"mime-type":1526,"navigation":28,"path":1540,"release-notes":1524,"seo":1541,"stem":1544,"__hash__":1545},"docs\u002Fmime-types\u002Fimage\u002Fppm.md","Portable Pixmap MIME Type",{"type":677,"value":678,"toc":1509},"minimark",[679,689,728,765,785,813,817,820,886,905,908,917,926,933,937,948,958,965,991,994,1005,1009,1018,1035,1038,1057,1076,1080,1083,1124,1134,1163,1179,1185,1188,1308,1321,1505],[680,681,683,684,688],"h2",{"id":682},"what-does-imageppm-mean","What does ",[685,686,687],"code",{},"image\u002Fppm"," mean?",[690,691,692,694,695,699,700,703,704,706,707,719,720],"p",{},[685,693,687],{}," is used by some software for a ",[696,697,698],"strong",{},"Portable Pixmap",", or PPM, file. Pygame, for example, defines its ",[685,701,702],{},"SCRAP_PPM"," clipboard type as ",[685,705,687],{}," for PPM-encoded image data.",[708,709,710],"sup",{},[711,712,718],"a",{"href":713,"ariaDescribedBy":714,"dataFootnoteRef":716,"id":717},"#user-content-fn-7",[715],"footnote-label","","user-content-fnref-7","1"," PPM is the full-color member of the Netpbm family. It stores a rectangular grid of red, green, and blue samples with no transparency and no compression. Its simplicity makes it useful as an intermediate format, a test fixture, or the output of a small graphics program. It is usually a poor delivery format because the files are large and carry almost no descriptive metadata.",[708,721,722],{},[711,723,727],{"href":724,"ariaDescribedBy":725,"dataFootnoteRef":716,"id":726},"#user-content-fn-1",[715],"user-content-fnref-1","2",[690,729,730,731,733,734,737,738,741,742,745,746,752,753,756,757],{},"The important caveat is that ",[685,732,687],{}," is ",[696,735,736],{},"not registered with IANA",". Netpbm documents ",[685,739,740],{},"image\u002Fx-portable-pixmap"," as the conventional media type, while ",[685,743,744],{},"image\u002Fx-portable-anymap"," can describe the broader PNM family.",[708,747,748],{},[711,749,727],{"href":724,"ariaDescribedBy":750,"dataFootnoteRef":716,"id":751},[715],"user-content-fnref-1-2"," The current IANA image registry has no ",[685,754,755],{},"ppm"," entry.",[708,758,759],{},[711,760,764],{"href":761,"ariaDescribedBy":762,"dataFootnoteRef":716,"id":763},"#user-content-fn-2",[715],"user-content-fnref-2","3",[766,767,768,769,771,772,774,775,779,780,784],"note",{},"Use ",[685,770,740],{}," when you control both ends of an interchange and need the established conventional label. Use ",[685,773,687],{}," only when an application or protocol explicitly expects it. For public web delivery, convert the image to ",[711,776,778],{"href":777},"\u002Fmime-types\u002Fimage\u002Fpng","PNG",", ",[711,781,783],{"href":782},"\u002Fmime-types\u002Fimage\u002Fwebp","WebP",", AVIF, or JPEG instead.",[690,786,787,788,794,795,798,799,805],{},"The usual extension is ",[711,789,791],{"href":790},"\u002Ffile-extensions\u002Fppm",[685,792,793],{},".ppm",". A generic ",[685,796,797],{},".pnm"," filename can also contain PPM data, but it may instead contain PBM or PGM data, so the header is the reliable way to distinguish them.",[708,800,801],{},[711,802,727],{"href":724,"ariaDescribedBy":803,"dataFootnoteRef":716,"id":804},[715],"user-content-fnref-1-3",[708,806,807],{},[711,808,812],{"href":809,"ariaDescribedBy":810,"dataFootnoteRef":716,"id":811},"#user-content-fn-3",[715],"user-content-fnref-3","4",[680,814,816],{"id":815},"how-a-ppm-file-is-structured","How a PPM file is structured",[690,818,819],{},"A PPM image starts with an ASCII magic identifier:",[821,822,823,842],"table",{},[824,825,826],"thead",{},[827,828,829,833,836,839],"tr",{},[830,831,832],"th",{},"Variant",[830,834,835],{},"Magic bytes",[830,837,838],{},"Pixel representation",[830,840,841],{},"Practical use",[843,844,845,867],"tbody",{},[827,846,847,851,861,864],{},[848,849,850],"td",{},"Plain PPM",[848,852,853,856,857,860],{},[685,854,855],{},"50 33"," (",[685,858,859],{},"P3",")",[848,862,863],{},"ASCII decimal RGB samples",[848,865,866],{},"Human-readable examples and debugging",[827,868,869,872,880,883],{},[848,870,871],{},"Raw PPM",[848,873,874,856,877,860],{},[685,875,876],{},"50 36",[685,878,879],{},"P6",[848,881,882],{},"Binary RGB samples",[848,884,885],{},"Smaller and faster general interchange",[690,887,888,889,892,893,895,896,898,899],{},"After the identifier come the width, height, and a maximum sample value greater than zero and below 65,536. Comments can begin with ",[685,890,891],{},"#"," in the header. In raw ",[685,894,879],{},", each pixel is an RGB triplet. Samples use one byte when the maximum value is below 256 and two big-endian bytes otherwise. In plain ",[685,897,859],{},", the same values are written as decimal ASCII separated by whitespace.",[708,900,901],{},[711,902,727],{"href":724,"ariaDescribedBy":903,"dataFootnoteRef":716,"id":904},[715],"user-content-fnref-1-4",[690,906,907],{},"A tiny plain PPM can therefore be written without an image library:",[909,910,915],"pre",{"className":911,"code":913,"language":914,"meta":716},[912],"language-text","P3\n# two pixels: red, then blue\n2 1\n255\n255 0 0   0 0 255\n","text",[685,916,913],{"__ignoreMap":716},[690,918,919,920],{},"PPM permits more than one image in a stream. Older software may read only the first because the format allowed only one image before July 2000. Software written before April 2000 may also assume that raw samples are always one byte because the earlier maximum value was 255.",[708,921,922],{},[711,923,727],{"href":724,"ariaDescribedBy":924,"dataFootnoteRef":716,"id":925},[715],"user-content-fnref-1-5",[927,928,929,930,932],"warning",{},"Do not treat a ",[685,931,859],{}," header as permission to parse the entire file as harmless text. Width, height, maximum value, comments, and sample counts still need validation. A tiny header can claim enormous dimensions, and a malformed binary raster can be truncated or contain trailing images.",[680,934,936],{"id":935},"why-ppm-exists","Why PPM exists",[690,938,939,940],{},"Jef Poskanzer created PBM as a deliberately simple interchange format in the 1980s. He distributed the Pbmplus toolkit in 1988 and added the grayscale PGM and color PPM formats by the end of that year. Netpbm replaced Pbmplus in 1993 and continues the format and tool collection today.",[708,941,942],{},[711,943,947],{"href":944,"ariaDescribedBy":945,"dataFootnoteRef":716,"id":946},"#user-content-fn-4",[715],"user-content-fnref-4","5",[690,949,950,951,957],{},"That history explains PPM's design. It favors an obvious, easily generated byte layout over compression, color-management features, or rich metadata. Netpbm itself describes PPM as highly redundant but easy to write and analyze.",[708,952,953],{},[711,954,727],{"href":724,"ariaDescribedBy":955,"dataFootnoteRef":716,"id":956},[715],"user-content-fnref-1-6"," This is why PPM still appears in graphics courses, ray tracers, rendering tests, Unix pipelines, and decoder fixtures even though it is uncommon as a finished asset.",[680,959,961,962,964],{"id":960},"can-browsers-display-imageppm","Can browsers display ",[685,963,687],{},"?",[690,966,967,968,971,972,779,974,978,979,981,982,990],{},"Do not rely on native browser display. MDN's current list of image types safe for ordinary web pages includes ",[711,969,970],{"href":777},"APNG",", AVIF, GIF, JPEG, ",[711,973,778],{"href":777},[711,975,977],{"href":976},"\u002Fmime-types\u002Fimage\u002Fsvg+xml","SVG",", and ",[711,980,783],{"href":782},", but not PPM.",[708,983,984],{},[711,985,989],{"href":986,"ariaDescribedBy":987,"dataFootnoteRef":716,"id":988},"#user-content-fn-5",[715],"user-content-fnref-5","6"," Browser behavior can also depend on the declared media type and platform image services, which makes an accidental success a poor compatibility guarantee.",[690,992,993],{},"For a website, convert PPM to a widely supported format and send that format's registered media type. If a PPM must be downloadable, use the media type required by the receiving application and include a clear filename.",[690,995,996,997],{},"Desktop graphics tools are a better fit. Netpbm reads and writes PPM directly, while GIMP can import or export the PNM family and lets you choose ASCII or raw output for PPM.",[708,998,999],{},[711,1000,1004],{"href":1001,"ariaDescribedBy":1002,"dataFootnoteRef":716,"id":1003},"#user-content-fn-6",[715],"user-content-fnref-6","7",[680,1006,1008],{"id":1007},"support-in-poly","Support in Poly",[690,1010,1011,1012,1014,1015,1017],{},"Poly has a dedicated internal ",[685,1013,687],{}," identifier and treats it as an image when that type is already present. The image loader can decode standard PPM data, generate ",[711,1016,783],{"href":782}," thumbnails, extract dimensions, create a visual embedding, show the result in the image viewer, and provide a rendered thumbnail to the agent.",[690,1019,1020,1021,1025,1026,1028,1029,1031,1032,1034],{},"The current limitation is identification. Poly's filename inference table does not map ",[711,1022,1023],{"href":790},[685,1024,793],{},", and the client MIME map gives ",[685,1027,687],{}," no default extension. A plain ",[685,1030,859],{}," file uploaded without a useful platform media type can be mistaken for text, while a raw ",[685,1033,879],{}," file can fall back to generic binary data. In either case, image thumbnails and visual indexing do not run.",[690,1036,1037],{},"When PPM is classified correctly:",[1039,1040,1041,1045,1048,1054],"ul",{},[1042,1043,1044],"li",{},"Search includes the filename, dimensions, and visual similarity.",[1042,1046,1047],{},"Words drawn inside the image are not OCR'd.",[1042,1049,1050,1051,1053],{},"Preview and agent reading use derived 8-bit ",[711,1052,783],{"href":782}," pixels, not the original PPM sample stream.",[1042,1055,1056],{},"A multi-image PPM stream should not be treated as a browsable image sequence. The normal image pipeline renders a single image.",[1058,1059,1060,1061,1065,1066,1068,1069,1075],"tip",{},"If a ",[711,1062,1063],{"href":790},[685,1064,793],{}," upload does not receive an image preview, convert it to ",[711,1067,778],{"href":777}," before uploading. Renaming it to ",[711,1070,1072],{"href":1071},"\u002Ffile-extensions\u002Fpng",[685,1073,1074],{},".png"," is not conversion because the bytes still contain PPM data.",[680,1077,1079],{"id":1078},"converting-ppm-to-a-practical-format","Converting PPM to a practical format",[690,1081,1082],{},"Netpbm provides small conversion tools that work well in pipelines. For example:",[909,1084,1088],{"className":1085,"code":1086,"language":1087,"meta":716,"style":716},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnmtopng input.ppm > output.png\njpegtopnm input.jpg > output.ppm\n","sh",[685,1089,1090,1110],{"__ignoreMap":716},[1091,1092,1095,1099,1103,1107],"span",{"class":1093,"line":1094},"line",1,[1091,1096,1098],{"class":1097},"sBMFI","pnmtopng",[1091,1100,1102],{"class":1101},"sfazB"," input.ppm",[1091,1104,1106],{"class":1105},"sMK4o"," >",[1091,1108,1109],{"class":1101}," output.png\n",[1091,1111,1113,1116,1119,1121],{"class":1093,"line":1112},2,[1091,1114,1115],{"class":1097},"jpegtopnm",[1091,1117,1118],{"class":1101}," input.jpg",[1091,1120,1106],{"class":1105},[1091,1122,1123],{"class":1101}," output.ppm\n",[690,1125,1126,1127,1133],{},"GIMP can also open or export PPM through its PNM support.",[708,1128,1129],{},[711,1130,1004],{"href":1001,"ariaDescribedBy":1131,"dataFootnoteRef":716,"id":1132},[715],"user-content-fnref-6-2"," Choose the destination according to the image:",[1039,1135,1136,1143,1151,1157],{},[1042,1137,1138,1142],{},[696,1139,1140],{},[711,1141,778],{"href":777}," preserves pixels losslessly and supports transparency and metadata.",[1042,1144,1145,1150],{},[696,1146,1147,1149],{},[711,1148,783],{"href":782}," or AVIF"," can reduce file size for web delivery.",[1042,1152,1153,1156],{},[696,1154,1155],{},"JPEG"," is broadly compatible for photographs but introduces lossy compression.",[1042,1158,1159,1162],{},[696,1160,1161],{},"PPM"," remains useful when the next program benefits from a trivial decoder or a streamable intermediate format.",[690,1164,1165,1166,1168,1169,1171,1172,1178],{},"Converting PPM to ",[711,1167,778],{"href":777}," is lossless when the ",[711,1170,778],{"href":777}," encoder preserves the represented RGB sample precision and color interpretation. Conversion does not solve every color issue, however. The PPM specification uses BT.709 transfer characteristics and D65 white, while many real-world files use sRGB or linear values without declaring that variation.",[708,1173,1174],{},[711,1175,727],{"href":724,"ariaDescribedBy":1176,"dataFootnoteRef":716,"id":1177},[715],"user-content-fnref-1-7"," A converter cannot recover color semantics that the producer never recorded.",[680,1180,1182,1183],{"id":1181},"ppm-pgm-pbm-pam-and-png","PPM, PGM, PBM, PAM, and ",[711,1184,778],{"href":777},[690,1186,1187],{},"These similarly named formats solve different problems:",[821,1189,1190,1209],{},[824,1191,1192],{},[827,1193,1194,1197,1200,1203,1206],{},[830,1195,1196],{},"Format",[830,1198,1199],{},"Pixels",[830,1201,1202],{},"Transparency",[830,1204,1205],{},"Compression",[830,1207,1208],{},"Typical magic identifier",[843,1210,1211,1233,1253,1270,1288],{},[827,1212,1213,1216,1219,1222,1224],{},[848,1214,1215],{},"PBM",[848,1217,1218],{},"Black and white",[848,1220,1221],{},"No",[848,1223,1221],{},[848,1225,1226,1229,1230],{},[685,1227,1228],{},"P1"," or ",[685,1231,1232],{},"P4",[827,1234,1235,1238,1241,1243,1245],{},[848,1236,1237],{},"PGM",[848,1239,1240],{},"Grayscale",[848,1242,1221],{},[848,1244,1221],{},[848,1246,1247,1229,1250],{},[685,1248,1249],{},"P2",[685,1251,1252],{},"P5",[827,1254,1255,1257,1260,1262,1264],{},[848,1256,1161],{},[848,1258,1259],{},"RGB color",[848,1261,1221],{},[848,1263,1221],{},[848,1265,1266,1229,1268],{},[685,1267,859],{},[685,1269,879],{},[827,1271,1272,1275,1278,1281,1283],{},[848,1273,1274],{},"PAM",[848,1276,1277],{},"General tuple data, including alpha-capable images",[848,1279,1280],{},"Possible",[848,1282,1221],{},[848,1284,1285],{},[685,1286,1287],{},"P7",[827,1289,1290,1294,1297,1300,1303],{},[848,1291,1292],{},[711,1293,778],{"href":777},[848,1295,1296],{},"Several raster color models",[848,1298,1299],{},"Yes",[848,1301,1302],{},"Lossless",[848,1304,1305],{},[685,1306,1307],{},"89 50 4E 47 0D 0A 1A 0A",[690,1309,1310,1311,1317,1318,1320],{},"PBM, PGM, and PPM are collectively called PNM. PAM is a later, more general Netpbm format that can represent the older visual types and additional channel layouts.",[708,1312,1313],{},[711,1314,812],{"href":809,"ariaDescribedBy":1315,"dataFootnoteRef":716,"id":1316},[715],"user-content-fnref-3-2"," ",[711,1319,778],{"href":777}," is unrelated despite the similar initials. It is normally the more practical choice for a lossless image that needs broad application and browser support.",[1322,1323,1326,1331],"section",{"className":1324,"dataFootnotes":716},[1325],"footnotes",[680,1327,1330],{"className":1328,"id":715},[1329],"sr-only","Footnotes",[1332,1333,1334,1355,1413,1429,1451,1466,1482],"ol",{},[1042,1335,1337,1338,1347,1348],{"id":1336},"user-content-fn-7","Pygame. ",[711,1339,1343],{"href":1340,"rel":1341},"https:\u002F\u002Fwww.pygame.org\u002Fdocs\u002Fref\u002Fscrap.html",[1342],"nofollow",[1344,1345,1346],"em",{},"pygame.scrap Clipboard Documentation",". ",[711,1349,1354],{"href":1350,"ariaLabel":1351,"className":1352,"dataFootnoteBackref":716},"#user-content-fnref-7","Back to reference 1",[1353],"data-footnote-backref","↩",[1042,1356,1358,1359,1347,1366,1317,1371,1317,1378,1317,1385,1317,1392,1317,1399,1317,1406],{"id":1357},"user-content-fn-1","Netpbm. ",[711,1360,1363],{"href":1361,"rel":1362},"https:\u002F\u002Fnetpbm.sourceforge.net\u002Fdoc\u002Fppm.html",[1342],[1344,1364,1365],{},"PPM Format Specification",[711,1367,1354],{"href":1368,"ariaLabel":1369,"className":1370,"dataFootnoteBackref":716},"#user-content-fnref-1","Back to reference 2",[1353],[711,1372,1354,1376],{"href":1373,"ariaLabel":1374,"className":1375,"dataFootnoteBackref":716},"#user-content-fnref-1-2","Back to reference 2-2",[1353],[708,1377,727],{},[711,1379,1354,1383],{"href":1380,"ariaLabel":1381,"className":1382,"dataFootnoteBackref":716},"#user-content-fnref-1-3","Back to reference 2-3",[1353],[708,1384,764],{},[711,1386,1354,1390],{"href":1387,"ariaLabel":1388,"className":1389,"dataFootnoteBackref":716},"#user-content-fnref-1-4","Back to reference 2-4",[1353],[708,1391,812],{},[711,1393,1354,1397],{"href":1394,"ariaLabel":1395,"className":1396,"dataFootnoteBackref":716},"#user-content-fnref-1-5","Back to reference 2-5",[1353],[708,1398,947],{},[711,1400,1354,1404],{"href":1401,"ariaLabel":1402,"className":1403,"dataFootnoteBackref":716},"#user-content-fnref-1-6","Back to reference 2-6",[1353],[708,1405,989],{},[711,1407,1354,1411],{"href":1408,"ariaLabel":1409,"className":1410,"dataFootnoteBackref":716},"#user-content-fnref-1-7","Back to reference 2-7",[1353],[708,1412,1004],{},[1042,1414,1416,1417,1347,1424],{"id":1415},"user-content-fn-2","Internet Assigned Numbers Authority. ",[711,1418,1421],{"href":1419,"rel":1420},"https:\u002F\u002Fwww.iana.org\u002Fassignments\u002Fmedia-types\u002Fmedia-types.xhtml#image",[1342],[1344,1422,1423],{},"Media Types: image Registry",[711,1425,1354],{"href":1426,"ariaLabel":1427,"className":1428,"dataFootnoteBackref":716},"#user-content-fnref-2","Back to reference 3",[1353],[1042,1430,1358,1432,1347,1439,1317,1444],{"id":1431},"user-content-fn-3",[711,1433,1436],{"href":1434,"rel":1435},"https:\u002F\u002Fnetpbm.sourceforge.net\u002Fdoc\u002Fpnm.html",[1342],[1344,1437,1438],{},"The PNM Format",[711,1440,1354],{"href":1441,"ariaLabel":1442,"className":1443,"dataFootnoteBackref":716},"#user-content-fnref-3","Back to reference 4",[1353],[711,1445,1354,1449],{"href":1446,"ariaLabel":1447,"className":1448,"dataFootnoteBackref":716},"#user-content-fnref-3-2","Back to reference 4-2",[1353],[708,1450,727],{},[1042,1452,1358,1454,1347,1461],{"id":1453},"user-content-fn-4",[711,1455,1458],{"href":1456,"rel":1457},"https:\u002F\u002Fnetpbm.sourceforge.net\u002Fhistory.html",[1342],[1344,1459,1460],{},"Netpbm History",[711,1462,1354],{"href":1463,"ariaLabel":1464,"className":1465,"dataFootnoteBackref":716},"#user-content-fnref-4","Back to reference 5",[1353],[1042,1467,1469,1470,1347,1477],{"id":1468},"user-content-fn-5","MDN Web Docs. ",[711,1471,1474],{"href":1472,"rel":1473},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTTP\u002FGuides\u002FMIME_types#image_types",[1342],[1344,1475,1476],{},"Media Types: Image Types",[711,1478,1354],{"href":1479,"ariaLabel":1480,"className":1481,"dataFootnoteBackref":716},"#user-content-fnref-5","Back to reference 6",[1353],[1042,1483,1485,1486,1347,1493,1317,1498],{"id":1484},"user-content-fn-6","GIMP Documentation. ",[711,1487,1490],{"href":1488,"rel":1489},"https:\u002F\u002Fdocs.gimp.org\u002F3.2\u002Fen\u002Ffile-pnm-export.html",[1342],[1344,1491,1492],{},"Export Image as PNM, PAM, PBM, PGM, PPM",[711,1494,1354],{"href":1495,"ariaLabel":1496,"className":1497,"dataFootnoteBackref":716},"#user-content-fnref-6","Back to reference 7",[1353],[711,1499,1354,1503],{"href":1500,"ariaLabel":1501,"className":1502,"dataFootnoteBackref":716},"#user-content-fnref-6-2","Back to reference 7-2",[1353],[708,1504,727],{},[1506,1507,1508],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":716,"searchDepth":1112,"depth":1112,"links":1510},[1511,1513,1514,1515,1517,1518,1519,1521],{"id":682,"depth":1112,"text":1512},"What does image\u002Fppm mean?",{"id":815,"depth":1112,"text":816},{"id":935,"depth":1112,"text":936},{"id":960,"depth":1112,"text":1516},"Can browsers display image\u002Fppm?",{"id":1007,"depth":1112,"text":1008},{"id":1078,"depth":1112,"text":1079},{"id":1181,"depth":1112,"text":1520},"PPM, PGM, PBM, PAM, and PNG",{"id":715,"depth":1112,"text":1330},"Learn what `image\u002Fppm` means, how Portable Pixmap files are structured, which media type to use, and how Poly handles PPM images.","md",null,{},{"name":687,"extensions":1527,"magic-number":1528,"alternate-versions":1529,"invented-date":1530,"inventor-name":1531,"in-use":12,"browser-support":1532,"example-applications":1533,"poly-support":1536,"poly-indexed":1537,"poly-preview":1538,"poly-agent":1539},[793],"50 33 (P3) or 50 36 (P6)",[740,744],"1988","Jef Poskanzer",[],[1534,1535],"Netpbm","GIMP","Partial. Poly recognizes an explicitly supplied `image\u002Fppm` type and can decode standard PPM pixels, but filename inference does not map `.ppm`, so an unlabeled upload may be classified as text or generic binary data.","Partial. A correctly classified PPM gets dimensions, filename indexing, and a visual embedding. Visible text is not OCR'd, and a misclassified `.ppm` does not receive visual indexing.","Partial. A correctly classified and decodable PPM gets WebP thumbnails and opens in the image viewer. The `.ppm` extension alone does not currently select this pipeline.","Partial. For a correctly classified PPM, the agent receives a rendered WebP thumbnail and can reason about the pixels. It does not receive comments, every image in a multi-image stream, or the original sample values.","\u002Fmime-types\u002Fimage\u002Fppm",{"title":1542,"description":1543},"image\u002Fppm MIME Type: Portable Pixmap Files and Support","A practical guide to image\u002Fppm and Portable Pixmap files, including P3 and P6 encoding, MIME registration status, Poly support, and conversion.","mime-types\u002Fimage\u002Fppm","wcPUl4v6E5SLVV5bGjAnNeALuYLiE2WoQQq-6k3ux1g",[1524,1524],{"data":1548,"body":1549},{},{"type":1550,"children":1551},"root",[1552],{"type":1553,"tag":690,"props":1554,"children":1555},"element",{},[1556],{"type":914,"value":675},{"data":1558,"body":1559},{},{"type":1550,"children":1560},[1561],{"type":1553,"tag":690,"props":1562,"children":1563},{},[1564,1566,1571],{"type":914,"value":1565},"Learn what ",{"type":1553,"tag":685,"props":1567,"children":1569},{"className":1568},[],[1570],{"type":914,"value":687},{"type":914,"value":1572}," means, how Portable Pixmap files are structured, which media type to use, and how Poly handles PPM images.",1788325917403]