{"id":13663031,"url":"https://github.com/elringus/sprite-dicing","last_synced_at":"2026-02-23T22:29:53.847Z","repository":{"id":37405456,"uuid":"104367232","full_name":"elringus/sprite-dicing","owner":"elringus","description":"Cross-engine tool for lossless compression of sprites with identical areas","archived":false,"fork":false,"pushed_at":"2024-09-10T21:33:47.000Z","size":56997,"stargazers_count":1353,"open_issues_count":0,"forks_count":144,"subscribers_count":41,"default_branch":"main","last_synced_at":"2024-10-29T15:33:46.401Z","etag":null,"topics":["abi","cli","game-development","rust","sprites","texture","tool","unity"],"latest_commit_sha":null,"homepage":"https://dicing.elringus.me","language":"Rust","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/elringus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"elringus"}},"created_at":"2017-09-21T15:41:07.000Z","updated_at":"2024-10-29T05:07:57.000Z","dependencies_parsed_at":"2023-02-02T19:32:16.908Z","dependency_job_id":"6df3313c-faa1-4f9a-95d3-2f860b5c80bc","html_url":"https://github.com/elringus/sprite-dicing","commit_stats":{"total_commits":171,"total_committers":5,"mean_commits":34.2,"dds":0.5087719298245614,"last_synced_commit":"e584c90fb3c4433109d7b67eeeb07753598325b3"},"previous_names":["elringus/sprite-dicing","elringus/spritedicing"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elringus%2Fsprite-dicing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elringus%2Fsprite-dicing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elringus%2Fsprite-dicing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elringus%2Fsprite-dicing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elringus","download_url":"https://codeload.github.com/elringus/sprite-dicing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246989742,"owners_count":20865331,"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":["abi","cli","game-development","rust","sprites","texture","tool","unity"],"created_at":"2024-08-02T05:02:15.502Z","updated_at":"2026-02-23T22:29:53.843Z","avatar_url":"https://github.com/elringus.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/elringus/sprite-dicing\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg width=\"200\" src=\"https://raw.githubusercontent.com/elringus/sprite-dicing/main/docs/public/favicon.svg\" alt=\"SpriteDicing\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://crates.io/crates/sprite_dicing\"\u003e\u003cimg alt=\"crates.io\" src=\"https://img.shields.io/crates/v/sprite_dicing\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.codefactor.io/repository/github/elringus/sprite-dicing\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/elringus/sprite-dicing/badge\" alt=\"CodeFactor\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/elringus/sprite-dicing\"\u003e\u003cimg src=\"https://codecov.io/gh/elringus/sprite-dicing/branch/main/graph/badge.svg?token=DBUTGP0Q7C\" alt=\"CodeCov\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\n# Reuse repeating texture regions\n\nUse SpriteDicing to split a set of sprite textures into units, discard identical ones, bake unique units into atlas textures to then seamlessly reconstruct the original sprites at runtime, without actually keeping original textures in the build.\n\nThe solution significantly reduces build size when multiple textures with identical areas are used. Consider a [visual novel](https://en.wikipedia.org/wiki/Visual_novel) type of game, where multiple textures per character are used, each portraying different emotion; most of the texture space is occupied with identical data, while only a small area varies:\n\n\u003cimg alt=\"dicing illustration\" src=\"https://raw.githubusercontent.com/elringus/sprite-dicing/main/docs/public/img/banner.png\"\u003e\n\nThese original five textures have total size of **17.5MB**. After dicing, the resulting atlas texture will contain only the unique areas of the original textures and consume just **2.4MB**, effectively compressing the textures by **86.3%**.\n\n## 🎬 Get Started\n\nhttps://dicing.elringus.com/guide/getting-started\n\n---\n\n\u003ca href=\"https://naninovel.com\"\u003e\n  \u003cp align=\"center\"\u003eSprite Dicing is used in \u003cstrong\u003eNaninovel: Visual Novel, Dialogue \u0026 Cutscene Storytelling Engine\u003c/strong\u003e. Check it out!\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\u003cimg alt=\"naninovel banner\" src=\"https://raw.githubusercontent.com/elringus/cdn/main/naninovel-banner-wide.png\"\u003e\u003c/p\u003e\n\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/elringus"],"categories":["Texture","C\\#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felringus%2Fsprite-dicing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felringus%2Fsprite-dicing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felringus%2Fsprite-dicing/lists"}