{"id":50734120,"url":"https://github.com/rihi/source-sprays","last_synced_at":"2026-06-10T12:01:04.743Z","repository":{"id":356184573,"uuid":"1230315202","full_name":"rihi/source-sprays","owner":"rihi","description":"Tools for Source Engine spray VTFs.","archived":false,"fork":false,"pushed_at":"2026-05-14T16:49:54.000Z","size":147,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-14T18:43:51.617Z","etag":null,"topics":["source-engine","tools","vtf"],"latest_commit_sha":null,"homepage":"https://rihi.github.io/source-sprays/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rihi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-05T22:04:04.000Z","updated_at":"2026-05-14T16:49:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rihi/source-sprays","commit_stats":null,"previous_names":["rihi/source-sprays"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rihi/source-sprays","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rihi%2Fsource-sprays","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rihi%2Fsource-sprays/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rihi%2Fsource-sprays/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rihi%2Fsource-sprays/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rihi","download_url":"https://codeload.github.com/rihi/source-sprays/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rihi%2Fsource-sprays/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34151276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["source-engine","tools","vtf"],"created_at":"2026-06-10T12:01:04.091Z","updated_at":"2026-06-10T12:01:04.734Z","avatar_url":"https://github.com/rihi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Source Sprays\n\nThis repository contains primarily Rust tools I made for working with Source Engine sprays.\n\nThe main functionality is building spray VTF files from image inputs, including sprays with\nmultiple animation frames and explicit mip levels. The project contains a browser tool for quick\nuse, a CLI for local or scripted builds, and a Windows thumbnail provider for previewing VTF files\nin Explorer. Generated VTF files currently use VTF version 7.4.\n\n## Tools\n\n### Browser Spray Compiler\n\nThe browser spray compiler is hosted on GitHub Pages:\n[rihi.github.io/source-sprays](https://rihi.github.io/source-sprays/)\n\nIt is a simple static webpage using the Rust compiler code through WebAssembly, so sprays can be\nassembled locally in the page without needing to install the CLI. This is the easiest way to create a spray\nfrom images when you do not need automation.\n\n### CLI Spray Compiler\n\n`source-spray-compiler-cli` is the command line tool for creating `.vtf` spray files.\n\nThe CLI has three main subcommands:\n- `compile`: compile image files or directory definitions into VTF sprays. It also supports\n  recursive compiling and watching for changes.\n- `compile-manual`: build a spray from explicitly listed mip and frame image inputs.\n- `derive-low-res`: create a low-resolution VTF with the same CRC32 as an existing VTF.\n\nFor `compile`, single image files compile directly into a VTF. Directory definitions can contain\nexplicit mip/frame files, named as:\n\n```text\nmip\u003cN\u003eframe\u003cM\u003e.\u003cext\u003e\nmip\u003cN\u003e.\u003cext\u003e\nframe\u003cM\u003e.\u003cext\u003e\n```\n\nMissing mip levels are inferred from the nearest available mip, preferring the next larger one and\nfalling back to the next smaller one. In recursive mode, `compile` only picks up files and directories whose names\ncontain `.spray`.\n\nUse `--help` on the CLI or any subcommand to see the available arguments:\n\n```bash\ncargo run -p source-spray-compiler-cli -- --help\ncargo run -p source-spray-compiler-cli -- compile --help\n```\n\n### VTF Thumbnail Provider\n\n`source-spray-thumbnails` is a Windows COM DLL thumbnail provider for `.vtf` files. It allows VTF\ntextures to show previews in Windows Explorer.\n\nRegister or unregister the built DLL with `regsvr32`. The provider is registered for the current\nuser, not system-wide.\n\n\n## Repository Layout\n\n- `crates/`: contains all rust crates.\n  - `common`: shared VTF parsing, image, and thumbnail utilities.\n  - `compiler-core`: spray building, VTF writing, resizing, DXT compression, mip handling, and CRC helpers.\n  - `compiler-cli`: command line interface for compiling sprays.\n  - `compiler-wasm`: WebAssembly interface between the compiler core and the browser frontend.\n  - `thumbnails`: Windows shell thumbnail provider for VTF files.\n- `compiler-web-frontend`: static browser UI for compiling sprays.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frihi%2Fsource-sprays","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frihi%2Fsource-sprays","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frihi%2Fsource-sprays/lists"}