Skip to content

Minecraft full body skin render

The whole Minecraft body of any player, head to feet, as a PNG: 18 poses, any joint, any camera, capes and both arm widths. From one URL, free, no key.

Notch full body render, default
default
jeb_ full body render, pose=wave
pose=wave
Dinnerbone full body render, sneak, perspective
sneak, perspective
Alex full body render, dance, shadow
dance, shadow
Live: /render/Notch/body and three variations.

The full body render URL

text
https://skinrender.dev/render/069a79f444e94726a5befca90e38aaf5/body
https://skinrender.dev/render/069a79f444e94726a5befca90e38aaf5/body?pose=wave
https://skinrender.dev/render/Notch/body?pitch=-10&fov=40&pose=sit

The body render draws every part of the player model: head, torso, both arms and legs, all six overlay layers and the cape. It is the render type the pose system was built for and the only one with a drop shadow. The default canvas is 320×512 px, tall and narrow to fit a standing figure; a wide pose such as tpose is auto-framed to fit (fit=true), or give width and height to choose your own canvas. Renders take well under 100 ms once the skin is cached, and cached URLs are served from memory in a few milliseconds.

Want less than the full body? bust stops at the waist and head is the head alone, both with the same camera; front and back lay the whole skin out flat, seen from the front or from behind. And mobs have a body render of their own: /render/mob/creeper/body draws a creeper, and the mob gallery has the rest.

Poses

Add pose=<name> for any of the 18 named poses: default, walk, run, wave, sit, sneak, point, dab, zombie, tpose, cheer, think, flex, salute, dance, punch, shrug, jump. Four of them (walk, run, dance, wave) are animated and take frame=0..1 to pick the phase. Every named pose is only a starting point: any of the six parts can be overridden with parameters like headYaw=-20 or leftArm=45, and an explicit joint parameter always wins for that joint. The full explanation, sign conventions and the GIF recipe are on the poses page; the skin poses guide is the gentler introduction.

Steve in the sit pose
sit
Steve in the point pose
point
Steve in the cheer pose
cheer
Steve in the salute pose
salute
Steve in the shrug pose
shrug
Steve in the jump pose
jump

Camera and perspective

The default camera turns the model 35° (yaw) and looks down 12° (pitch) with an orthographic projection (fov=0), the framing you know from inventory screens and skin sites. Three changes produce most of the looks people want:

  • Straight-on catalogue shot: yaw=0&pitch=0. Flat, symmetrical, good next to a front render for comparison.
  • Heroic perspective: fov=40&pitch=-10. A field of view of 30–50 adds depth; a slightly negative pitch puts the camera below eye level so the figure looms a little. Combine with pose=point or punch.
  • From behind: yaw=180, which is also the way to show a cape properly; add capeAngle=35 for movement.

zoom scales the figure on the canvas, offsetX/offsetY shift it (fractions of the canvas, so offsetX=-0.3 pushes it left for a banner with text on the right), roll tilts the whole image, and crop=true trims the transparent border after rendering. shadow=true adds a soft ellipse under the feet, which anchors a figure on a solid bg colour.

text
https://skinrender.dev/render/853c80ef3c3749fdaa49938b674adae6/body?yaw=-25&pitch=-12&fov=45&pose=punch
https://skinrender.dev/render/853c80ef3c3749fdaa49938b674adae6/body?yaw=180&capeAngle=35
https://skinrender.dev/render/853c80ef3c3749fdaa49938b674adae6/body?width=600&height=200&bg=12121a&offsetX=-0.3&shadow=true

Capes

When the profile has a cape (Mojang staff, Minecon, migration and other official capes), the body render draws it hanging from the shoulders, angled out by capeAngle degrees (10 by default, 0 to 90). It is visible from the side and back angles and hidden behind the torso from the front. cape=false leaves it out. The cape is whatever the profile currently has; there is no parameter to supply a cape texture of your own. The flat cape render type returns the cape image itself.

jeb_ from behind, default capeAngle
default capeAngle
jeb_ from behind, capeAngle=45, running
capeAngle=45, running
jeb_ from behind, cape=false
cape=false

Slim versus classic

Minecraft has two player models: classic (Steve) with 4 px wide arms and slim (Alex) with 3 px arms. A profile records which one its skin is meant for, and model=auto (the default) reads that — with one correction. That flag goes stale: plenty of players wear a slim texture on a profile that still says classic, and a slim texture has nothing painted in the two arm columns a classic arm needs, so drawing it classic leaves holes. So auto renders slim whenever the texture itself is a slim one, and otherwise follows the profile. It never goes the other way: a profile that says slim stays slim, because a classic texture on slim arms is merely a column narrower, which is what the game shows too. Textures rendered by hash have no profile to ask and are judged entirely on those columns. The override then matters for previewing how a skin would look on the other model; model=slim and model=classic apply to head, bust, body, front and back renders alike.

text
https://skinrender.dev/render/steve/body?size=256&model=slim&pose=tpose
https://skinrender.dev/render/alex/body?size=256&model=classic&pose=tpose

Layers

The second skin layer is split into hat, jacket, left and right sleeve, left and right trouser leg. Each has its own boolean (jacket=false, leftSleeve=0…), and overlay=false switches all six off at once. Turning layers off is how skin sites show “the base skin”, and how you get rid of a bulky coat when a pose needs to read clearly at small sizes.

Embedding and caching

The response is a plain PNG with Cache-Control: public, max-age=3600, stale-while-revalidate=86400, an ETag and Access-Control-Allow-Origin: *, so it works in an <img>, a Discord embed, Markdown, a canvas or a server-side fetch. Store the UUID form of the URL, request the size you display, and let the browser or your CDN cache it; when a player changes skin the new render shows up within 15 minutes. Recipes for profile pages, Discord bots, signatures and cards are on the examples page.

Frequently asked questions

How do I render a full Minecraft body from a UUID?

https://skinrender.dev/render/<uuid>/body. Add pose=wave, size=512 or any other parameter as a query string. /render/<uuid> without a type redirects there.

Can I render a mob’s body, like a creeper?

Yes, from the same kind of URL: https://skinrender.dev/render/mob/creeper/body. Mobs take the same camera and size parameters and have poses of their own; every one is on the mob gallery.

What size is a body render?

By default 320×512 px (aspect 0.625). size sets the height and the width follows; width and height set both; the limit is 1024 px per side.

Does it show the cape?

Yes, when the profile has one and cape=true (the default). capeAngle sets how far it swings out. Capes come from the profile; there is no way to attach an arbitrary cape image.

Slim or classic arms?

The profile’s own model is used automatically, except that a skin whose texture is a slim one is drawn slim even when the profile still says classic — Mojang’s flag goes stale, and a slim texture on classic arms has holes. model=slim or model=classic forces one, which matters when you render a texture by hash and the API cannot know which it was made for.

  • Render types: Every render type of the Minecraft skin API (face, head, bust, full body, front, back, skin and cape) with its default size, parameters and live example URLs.
  • Parameters: Every query parameter of the Minecraft skin render API: size, camera yaw and pitch, fov, layers, capes, poses, per-joint angles and fallbacks, from the code.
  • Poses: Every Minecraft skin pose the API renders, from wave and sit to think and dab, with live images, per-joint angles, sign conventions and animation frames.
  • Examples: Copy-paste Minecraft skin render examples: profile pictures, Discord bot embeds, forum signatures, server list cards, textures by hash and animation frames.
  • Playground: build any of these URLs by clicking.