Quick answer: Pygame blit(src, dest, area) with an area rect larger than the source surface? blit silently clips area to the source rect — you see less than expected.

A tile-atlas slicer uses computed area rects; some are slightly past the atlas edge and render as half-tiles.

Source Rect Bounds

blit’s area parameter is in source-surface coordinates. blit clips it to src.get_rect(). An area extending past the source draws only the overlap.

Validate Up-Front

if not src.get_rect().contains(area):
    print("area out of source bounds", area)

Catch atlas math errors early in dev. Clip yourself if intentional.

Pad Atlases

For repeating-edge atlases, add a 1-pixel border copy. Slight over-read still produces correct color, no clip artifacts.

subsurface for View

Instead of area param, create a subsurface and blit the whole thing: src.subsurface(area).blit(...). Same effect; arguably clearer.

Verifying

Atlas slices render at the requested size, no clipping. Edge cases (last column/row of atlas) render fully.

“blit clips area to source bounds. Validate or pad your atlases.”

Atlas-driven games should ship with an automated checker — computed source rects out of bounds is a common procedural-content bug.