Spriterot - Handy command line tool to generate rotations spritesheets

During my effort to create an enjoyable development experience with the Nim bindings, I took inspiration from @Nic post and put some time developing this command line utility.

In contrast to Nic Lua utility functions, this is a high performance standalone tool and can be used to auto-generate rotations spritesheets at build-time or whenever you want, no simulator or Playdate dependencies!

It can:

  • Generate rotations using rotsprite, shearing, nearest and linear algorithms.
  • Be configurable using options, use spriterot --help to learn more or read the README on GitHub.
  • Be integrated well with Playdate's tables: by default, it exports a filename ending with -table-w-h.png.

A few examples from the repository (but you can also refer to Nic post):

rotsprite: best results for standard pixel art.
kirby-no-background-table-78-78-rotsprite

shearing: best results for keeping shades of dither patterns, e.g. Playdate graphics with dithering.
kirby-no-background-table-78-78-shearing

nearest: standard algorithm, nothing special.
kirby-no-background-table-78-78-nearest

linear: best results for conventional graphics, not pixel art.
kirby-no-background-table-78-78

Hope this can be useful for the community!

6 Likes

Hey this is awesome! I recently did something similar (though not as fully featured) for creating a sprite sheet that animates scale and opacity (since those are expensive functions like rotating). Maybe you could consider adding those as options as well?

1 Like

I can look into that!
Please open an issue on the repository and try to explain what you want as clearly as possible

2 Likes

This is really cool! And it make so much sense to have it as a command line.

I will add it as a reference in my original post.

1 Like

@Nic nice!

@manalive feel free to open the issue on GitHub, I'm considering changing the name of the tool in case other features unrelated to rotations get included.

Sweet! I just added a description, hopefully it makes sense.

1 Like