I was looking for a command line texture packer, with no graphical interface, with just the very exact options your tool exposes, and I am very satisfied. Easy to build (about time for everyone to finally switch to CMake), no dependencies outside of the codebase. Just fantastic.
That being said, I am afraid there's a bug.
My use case is packing a bunch of uniform, 16x16 tiles that I will use in my tile renderer.
I also utilize the mesh option, so to parse UVs and normalize them during game's runtime, and use outputted index buffer.
So I found out that using outputted UVs pixel bleeding occurs. As I investigated, UVs seemed to be OK (16x16), also no half-pixel correction was needed on my side.
I looked at the tilesheet outputted from atlasc and I was bewildered - every tile was 15x15 instead of 16x16 given in input.
Actually, you are right!
sprite_rect is [0, 0, 15, 15] , which shouldn't be the case obviously. I added a single unit to the rectangle as you suggested. and this should be fine, because the tracer finds points on the image [0..(size-1)] which then, we should add one unit to convert it to bounding rectangle.