Skip to content

Minecraft mob renderer

12 mobs, a body or a head, every pose and every variant, from one URL. The same renderer as the skin API, pointed at something other than a player.

Minecraft creeper render: the full body in 3D on a transparent background
creeper
Minecraft zombie render: the full body in 3D on a transparent background
zombie
Minecraft skeleton render: the full body in 3D on a transparent background
skeleton
Minecraft spider render: the full body in 3D on a transparent background
spider
Live renders. Change the name in the URL and the picture changes.

The URL

A mob has no UUID and no profile, so there is nothing to look up: the name in the path is the whole subject, and the image is produced from the address alone.

text
https://skinrender.dev/render/mob/creeper/body
https://skinrender.dev/render/mob/creeper/head

The second segment is the render type. There are two: body, the whole model, and head, the head alone as a square for icons and lists. Either may end in .png where a URL has to look like an image file, and /render/mob/creeper on its own redirects to the body render, the same shorthand a player render has.

Everything after the ? is the parameter set from the skin renderer, unchanged: size, bg, yaw, pitch, fov, zoom, crop, margin, shading, shadow, download and the rest all mean here what they mean there. The mob endpoint reference has the full list with the two that are specific to mobs.

12 mobs are in the renderer today, each with a page of live renders of every pose and every variant, and the URL that produced each image.

  • Minecraft creeper render in its default pose, a transparent PNG
    Creeper

    The one that hisses. Four stubby legs, no arms, and that face.

  • Minecraft zombie render in its default pose, a transparent PNG
    Zombie

    Arms out, knees stiff and the shirt still on: the mob everyone meets first.

  • Minecraft skeleton render in its default pose, a transparent PNG
    Skeleton

    Bare bones on two thin legs, standing as if the bow were still in its hands.

  • Minecraft spider render in its default pose, a transparent PNG
    Spider

    Eight legs, eight eyes and a body low enough to fit under a slab.

  • Minecraft enderman render in its default pose, a transparent PNG
    Enderman

    Nearly three blocks of black limbs with two eyes burning at the top.

  • Minecraft slime render in its default pose, a transparent PNG
    Slime

    A cube of translucent green jelly with a smaller, sadder cube set inside it.

  • Minecraft pig render in its default pose, a transparent PNG
    Pig

    Snout, four trotters and an optional saddle. The friendliest render on the site.

  • Minecraft cow render in its default pose, a transparent PNG
    Cow

    Patched hide, stubby horns and a heavy walk. The mooshroom variant comes with spots.

  • Minecraft sheep render in its default pose, a transparent PNG
    Sheep

    A fleece on four legs, dyed or freshly sheared, with a face poking out of the wool.

  • Minecraft chicken render in its default pose, a transparent PNG
    Chicken

    Orange beak, red wattle and two wings that never quite get it off the ground.

  • Minecraft wolf render in its default pose, a transparent PNG
    Wolf

    Grey fur, white muzzle and a tail that tells you exactly how the meeting is going.

  • Minecraft villager render in its default pose, a transparent PNG
    Villager

    Brown robe, folded arms and the biggest nose in the game. Hmm.

The gallery is the same list without the surrounding prose. New mobs appear there the moment they are added to the renderer; nothing on this page is written by hand per mob.

Poses and variants

Two parameters belong to the mob rather than to the API, because their accepted values depend on which mob you are rendering.

pose= is the whole posing interface. Every mob answers to default and walk, so a URL written for one works when you point it at another, and beyond those two the names are the mob's own — creeper takes default, walk, hiss, look. There are no per-joint parameters as there are for players: a player rig is always the same six joints, while mobs have four legs, or wings, or neither.

text
https://skinrender.dev/render/mob/creeper/body?pose=hiss
Minecraft creeper default pose: Standing still.
pose=default — Standing still.
Minecraft creeper walk pose: Mid-stride walk cycle; use frame to pick the phase.
pose=walk — Mid-stride walk cycle; use frame to pick the phase.
Minecraft creeper hiss pose: Reared up an instant before the bang, head tipped back.
pose=hiss — Reared up an instant before the bang, head tipped back.

variant= picks a colour or breed of the same model, and the first in a mob's list is what you get without it — creeper has normal and charged. A mob with one look has no variants at all, and asking for one then is an error rather than a silent fallback, because a picture that looks right and is wrong is worse than a 400.

text
https://skinrender.dev/render/mob/creeper/body?variant=charged

The cycling poses — the walk, and whatever else a given mob animates — take frame=0..1 to pick the phase, with fit=false so the camera does not rescale between frames. Animation covers turning that into something that moves.

Side profile and angles

The camera is the player renderer's camera. Each mob has a three-quarter view it defaults to, and yaw and pitch move it anywhere else: yaw=90&pitch=0 is a flat side profile, yaw=0 the front, yaw=180 the back, and every angle combines with every pose and variant.

text
https://skinrender.dev/render/mob/creeper/body?yaw=90&pitch=0
Minecraft creeper side profile: the full body seen from the side, facing right, level with the camera
Creeper side profile
Minecraft zombie side profile: the full body seen from the side, facing right, level with the camera
Zombie side profile
Minecraft skeleton side profile: the full body seen from the side, facing right, level with the camera
Skeleton side profile

Each mob's own page has its side, front and back views, and a table of the model's dimensions — the whole mob and every part, in pixels and in blocks — measured from the same geometry the renderer draws.

Size, background and crop

size is the height in pixels, from 8 to 1024. The width follows the mob's own proportions — a tall mob and a wide one do not share an aspect ratio — so size=512 on one is not the same canvas as on another. Pass width and height together when you need a fixed box, and the mob is centred in it.

The background is transparent unless you set bg, which takes a hex colour with an optional alpha (bg=1e1e2e, bg=00000080). crop=true trims the transparent border so the PNG is exactly as big as the model, which is what you want in a tight layout; margin sets how much room is left around it when you do not crop.

text
https://skinrender.dev/render/mob/creeper/head?size=128
https://skinrender.dev/render/mob/creeper/body?crop=true
https://skinrender.dev/render/mob/creeper/body?size=256&bg=1e1e2e&shadow=true
The head of a Minecraft creeper at 128 pixels
head?size=128
A Minecraft creeper cropped to the model
body?crop=true
A Minecraft creeper on a solid dark background with a drop shadow
body?bg=1e1e2e&shadow=true

Putting one on a page

It is an <img> tag. Give it the width and height you asked for so the layout does not shift while it loads, and let the browser cache do the rest.

html
<img src="https://skinrender.dev/render/mob/creeper/head?size=128"
     width="128" height="128" alt="A Minecraft creeper"
     loading="lazy" decoding="async">
js
const mobs = ["creeper","zombie","skeleton","spider","enderman","slime","pig","cow","sheep","chicken","wolf","villager"];
list.innerHTML = mobs.map((mob) =>
  `<img src="https://skinrender.dev/render/mob/${mob}/head?size=64" width="64" height="64" alt="${mob}" loading="lazy">`
).join("");

Every response carries Access-Control-Allow-Origin: *, so fetching one into a canvas or a bot works from any origin, and Cache-Control: public, max-age=31536000, immutable, because a mob render depends on nothing but its URL and can never go stale. Store the URL rather than the file.

When the name is wrong

An unknown mob is a 404 whose body lists every mob that does exist, so a typo tells you what you meant. A pose or a variant the mob does not have is a 400 naming the ones it does. Errors are plain text with a real status code, never a PNG of an error message.

There is no fallback and there should not be one: a player render draws Steve rather than break an <img> because a missing skin is normal, whereas a mob name is either in the renderer or misspelt. The endpoint reference has the exact wording.

Frequently asked questions

How do I render a Minecraft mob as an image?

Request https://skinrender.dev/render/mob/<mob>/body. The response is a PNG on a transparent background. head in place of body gives the head alone, and size= sets the height in pixels.

Which mobs are available?

12 at the moment: Creeper, Zombie, Skeleton, Spider, Enderman, Slime, Pig, Cow, Sheep, Chicken, Wolf, Villager. The gallery renders each of them live, and an unknown name answers 404 with the current list, so the API itself always tells you.

Can I pose a mob?

Yes. pose= takes the names that mob has; every mob answers to default and walk, and most have two or three of their own. There are no per-joint parameters for mobs, because the rigs differ from mob to mob.

Is the mob renderer the same API as the skin renderer?

Yes, with the same camera, output and lighting parameters parsed by the same code. Only the path and the subject differ. Anything that describes a skin — layers, capes, arm model, fallbacks — has no meaning on a mob and is reported in X-Ignored-Params rather than rejected.

Do I need an API key for the mob renderer?

No. No key, no account, no rate limit on our side. A mob render is cached as immutable for a year, so repeat views cost nothing at all.

  • 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.
  • Animation: Animate a render: format=apng returns the whole pose cycle as an animated PNG, with frames, fps and loop, and stepping frame yourself still builds a GIF.
  • Mob renders: Render any Minecraft mob as a transparent PNG from the /render/mob/ path: body or head, every pose and variant, camera angles, parameters, errors and caching.
  • Caching & limits: How the skin cache works: profiles for 15 minutes, textures for a day, rendered PNGs for an hour. Plus the headers to rely on, Mojang rate limits and errors.
  • Playground: build any of these URLs by clicking.