{"id":25672757,"url":"https://github.com/playcanvas/texture-tool","last_synced_at":"2026-01-06T12:15:19.771Z","repository":{"id":41933796,"uuid":"500933630","full_name":"playcanvas/texture-tool","owner":"playcanvas","description":"Texture tool for graphics programmers","archived":false,"fork":false,"pushed_at":"2023-04-26T13:32:09.000Z","size":2142,"stargazers_count":7,"open_issues_count":5,"forks_count":4,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-19T03:18:15.722Z","etag":null,"topics":["graphics","texture","tool","webgl","webgpu"],"latest_commit_sha":null,"homepage":"https://playcanvas.com/texture-tool","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/playcanvas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-07T17:08:51.000Z","updated_at":"2025-02-23T21:25:22.000Z","dependencies_parsed_at":"2022-07-12T20:00:32.370Z","dependency_job_id":null,"html_url":"https://github.com/playcanvas/texture-tool","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/playcanvas/texture-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Ftexture-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Ftexture-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Ftexture-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Ftexture-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/playcanvas","download_url":"https://codeload.github.com/playcanvas/texture-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Ftexture-tool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261250335,"owners_count":23130544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphics","texture","tool","webgl","webgpu"],"created_at":"2025-02-24T12:01:51.942Z","updated_at":"2026-01-06T12:15:19.755Z","avatar_url":"https://github.com/playcanvas.png","language":"JavaScript","funding_links":[],"categories":["Recently Updated","PlayCanvas Products"],"sub_categories":["[Feb 23, 2025](/content/2025/02/23/README.md)"],"readme":"# PlayCanvas Texture Tool\n\n[![Github Release](https://img.shields.io/github/v/release/playcanvas/texture-tool)](https://github.com/playcanvas/texture-tool/releases)\n[![License](https://img.shields.io/github/license/playcanvas/texture-tool)](https://github.com/playcanvas/texture-tool/blob/main/LICENSE)\n[![Discord](https://img.shields.io/badge/Discord-5865F2?style=flat\u0026logo=discord\u0026logoColor=white\u0026color=black)](https://discord.gg/RSaMRzg)\n[![Reddit](https://img.shields.io/badge/Reddit-FF4500?style=flat\u0026logo=reddit\u0026logoColor=white\u0026color=black)](https://www.reddit.com/r/PlayCanvas)\n[![X](https://img.shields.io/badge/X-000000?style=flat\u0026logo=x\u0026logoColor=white\u0026color=black)](https://x.com/intent/follow?screen_name=playcanvas)\n\n| [User Manual](https://developer.playcanvas.com) | [API Reference](https://api.playcanvas.com) | [Blog](https://blog.playcanvas.com) | [Forum](https://forum.playcanvas.com) |\n\nThe PlayCanvas Texture Tool is a browser-based utility for inspecting, visualizing, and reprojecting textures and environment maps.\n\nYou can find a live version at:\n\nhttps://playcanvas.com/texture-tool\n\n## Features\n\n- **Texture Inspection** - View texture dimensions, pixel format, structure (2D/cubemap), and encoding\n- **Mipmap Visualization** - Browse individual mipmap levels\n- **Cubemap Face Navigation** - View and inspect individual cubemap faces\n- **Alpha Channel** - Toggle alpha channel visualization with checkerboard background\n- **Filtering Toggle** - Switch between linear and nearest filtering\n- **Reprojection** - Convert between equirectangular and cubemap projections\n- **Export** - Save textures as PNG or HDR files\n\n## Supported Formats\n\nThe texture tool can load the following texture formats:\n\n| Format | Extension |\n|--------|-----------|\n| PNG | `.png` |\n| JPEG | `.jpg`, `.jpeg` |\n| HDR | `.hdr` |\n| DDS | `.dds` |\n| KTX | `.ktx`, `.ktx2` |\n| Basis | `.basis` |\n| PVR | `.pvr` |\n\n## Viewing Textures\n\nDrag and drop texture files directly into the tool to load them. Multiple textures can be loaded and inspected simultaneously using the file browser panel.\n\n### Supported URL Parameters\n\nSome URL query parameters are available to control the texture tool:\n\n| Parameter | Description | Example |\n|-----------|-------------|---------|\n| `load` | Specify URL to a texture to load | [?load=URL](https://playcanvas.com/texture-tool/?load=https://example.com/texture.png) |\n| `type` | Override the view type (gamma, linear, rgbm, rgbe, rgbp, a) | `?type=gamma` |\n\n## How to build\n\nEnsure you have [Node.js](https://nodejs.org) installed (v18.0+). Then, from a command prompt, run:\n\n```\nnpm install\nnpm run build\n```\n\nThis will invoke Rollup and output the built tool to the `dist` folder. To invoke Rollup with the `--watch` flag (which rebuilds the tool on saving any source file), do:\n\n```\nnpm run build:watch\n```\n\n## How to run\n\nRun:\n\n    npm run serve\n\nOpen a browser and navigate to http://localhost:3000.\n\n## Development\n\nRun:\n\n    npm run develop\n\nOpen a browser and navigate to http://localhost:3000.\n\n## Library integration testing\n\nThe Texture Tool is built on the following open source libraries:\n\n| Library                                                       | Details                              |\n| ------------------------------------------------------------- | ------------------------------------ |\n| [PlayCanvas Engine](https://github.com/playcanvas/engine)     | Texture loading and GPU rendering    |\n| [Observer](https://github.com/playcanvas/playcanvas-observer) | Data binding                         |\n| [PCUI](https://github.com/playcanvas/pcui)                    | Front-end component library          |\n\nTo test the integration of these libraries use [npm link](https://docs.npmjs.com/cli/v9/commands/npm-link). Follow these steps:\n\n1. Create a global link from source\n\n    ```sh\n    cd \u003clibrary\u003e\n    npm link\n    ```\n\n2. Create a link to the global link\n\n    ```sh\n    cd texture-tool\n    npm link \u003clibrary\u003e\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplaycanvas%2Ftexture-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplaycanvas%2Ftexture-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplaycanvas%2Ftexture-tool/lists"}