So, an issue I am having is the actual frames of the file are not 32x32 pixels as I had expected (should have checked), but as a result my project is using a scaled version of the cat sprite. I think you have run into the same issue. I asked Claude about your issue (since it can access the sprite sheet in my project) and it seems you did the same thing I first did see its output:
I checked the actual sprite sheet (RUN.png in reference/FULL_Cat 2D_Pixel_Art/Sprites/) rather than guessing. Here's what I found and why their code breaks:
The sheet is 640×64 px with 8 frames, so each frame cell is 80×64 px — not 32×32.
Their load_frames call:
cat_frames = load_frames(sprite_sheet, 32, 32, 8, (64, 64))
uses frame_width=32, frame_height=32. With those values, subsurface only walks the first 32*8 = 256 px of the 640px-wide sheet (leaving the last 3 frames' worth of image untouched), and each slice only grabs the top 32 rows of a 64px-tall cell. Since the actual cat artwork in each 80×64 cell sits roughly at x:[20–63], y:[23–47] (I measured the pixel bounding box directly), a 32×32 window starting at multiples of 32 cuts straight through the middle of each cat — so frames come out as half-cats, mostly blank/transparent, or with the wrong cat spliced next to a fragment of the next one. That's almost certainly the "not working" symptom (garbled, clipped, or invisible sprite).
Fix:
cat_frames = load_frames(sprite_sheet, 80, 64, 8, (64, 64))
num_frames=8 was already correct — just the width/height per frame was wrong. Everything else in their loop (subsurface, scale, flip for direction) is fine once the slice dimensions match the sheet.