emote2ss - animated WEBP to spritesheets converter
What is it
Small1 utility program written in C99 that converts given animated .webp file into a spritesheet of given size. Size generally is set via either columns of tiles or maximum width in pixels.
I mainly use it to use various .webp animations I find on the Web in the Godot for tryouts or joke games or similar.
Where is it
At the moment it is available only as source code in my repo.
Versions
There are two versions of the program - CLI and GUI.
CLI version is straightforward - run it with the input file and one of the two parameters (either columns or maximum width) and it will create a non-animated lossless .webp file at the same folder as input. There is an optional -o argument to save output file somewhere else.
If the output file extension is .pam then the file will be saved as RGBA NetPBM; likewise the detection/saving works for .png, .bmp, .tga and .jpg.
GUI is rudimentary but it has a live preview of the output file and the ability to set the size interactively.

I’ve used luigi - it is a nice single-header UI cross-platform library. It does look the same on all the operating systems I’ve tried it.
Dependencies
Libraries: just libwebp (and libwebpdemux in case it a separate package for your OS).
Compiler: anything C99-compliant (I verified tinycc, cproc, gcc, clang)
Make: only GNU, sorry BSD you have to install gmake :(
pkg-config to find libraries/headers.
How to build
make in root directory will produce two binaries: emote2ss and emote2ss_gui.
Alternatively you can dive into cli/gui directories and run make there to produce corresponding binaries.
Platforms
I reckon command-line version will build and run on anything POSIX-y or UNIX-y: I was able to use it on Linux, OpenBSD, NetBSD and macOS. Windows is bit tricky because I don’t know much about it, but planning to compile an .exe for it as well.
GUI version is tad more tricky: even though Luigi UI supports macos, MSWindows and Xorg my program works only on Linux/BSD at the moment; I used to have a working macos version but then broke something and didn’t notice since I only use mac at $work.
As for architectures I’ve had success with all the usual suspects - amd64, arm64, risc-v and i386.
Limitations
- GUI version can only output lossless .webp for now (CLI can produce .webp, .pam, .png, .tga, .bmp or .jpg)
- I’ve hacked those just enough to use myself, so GUI version is barebone and glitchy at times.
- Open/save dialogs are strange, it is possible to ’lose’ the modal window if you have a lot of stuff open. Also it can be glitchy at times, I want to revamp them quite a bit.

History
git log shows me the first commit in the repo was made in May 2023; I think I was making some joke game for friends from Twitch back then and wanted to use animations from FFZ/7TV emotes2. Then I found out that those are not animated .gif but .webp and Godot doesn’t support them out of the box, and there was no proper tool to convert them for usage in the engine3. The obvious step would be to make a Real Useful Tool For Myself like real developers did in 90s.
Obviosly I totally forgot why I started all this in first place and ventured into GUI musings; overall playing around with something useful for me is immensely fun. I don’t think I’ve finished that videogame either - my attention span is worse than of a squirrel, I guess.
At some point I wanted to build a version for Windows, and that was a multi-layered adventure too: after several days of bashing my head on everything microsoft-unusual I lost interest, the whole Visual Studio thing feels very raw and unreliable, like made from different bits and parts glued together with something half-assed like web-browser engine.
In general Suckless is my main source for inspiration, so while some parts of my quickly-hacked stuff can (and should) be rewritten in general I strive for something lightweight and concise without excess functionality.
It also goes without saying but in year 2026 I should clarify that no LLM/“AI” was used in any part of this project (or any other personal project of mine).
Update 2025-01-04: I’ve added netpbm (.pam) export support to the CLI version.
Plans
- bugfixes, obviously
- re-do modal window to show basic info for files and add a preview
- m$ windows build
- fix macos build, distributing prebuilt executable might be tricky now though because of the notarization madness
- localization support should be interesting too.
Other smaller stuff is written in repository TODO