Blocks, items and how a model becomes a render
Which state of a block gets rendered, why an item is sometimes a sprite and sometimes a cube, how biome tints are applied and which assets have no model at all.
The resting state
A Minecraft block is not one thing. oak_stairs has 80 states, redstone_wire
has over a thousand, and each of them has its own model. Only one of them can be the picture of oak
stairs, so a block render always uses the block's resting state:
- Nothing rotated: whichever facing leaves the model at its own orientation, which is the one the inventory icon shows.
- Nothing connected: a fence is its post, a wall is its post, a pane is its centre.
- Nothing powered, open, occupied or waterlogged; every numeric property at zero.
- The exception is anything whose unlit state is a different texture — a redstone torch, a campfire — which renders lit, because a burnt-out redstone torch is not what "redstone torch png" means.
That is the same choice the wiki makes, and it is why /render/block/oak_door is a closed
door rather than one of the eight ways it can hang.
Sprites and cubes
An item resolves through the game's own item model definition, which since 1.21.4 is a small decision
tree: is the bow drawn, is the crossbow loaded, which trim does the armour have. There is no item in
hand here, so every branch takes its resting case — the fallback of a select, the on_false
of a condition. A bow renders undrawn, a crossbow unloaded, leather armour undyed in its default brown.
What comes out of that is one of two things:
-
A flat model (
item/generatedoritem/handheld) is drawn as its sprite, scaled with nearest-neighbour sampling. A 512 px diamond sword is 32 square pixels per texel, not a blurry upscale. There is no camera in a picture of a sprite, soview,yawand the rest of the camera parameters are accepted and do nothing. - Anything else is geometry, rendered exactly like a block. That is how a grass block in your inventory is a cube and not a picture of a cube.
Shading and the camera
The default view is the one the game uses for an item in a slot: 45° round and 30° down, orthographic, with the block's north face on the left. Faces are shaded by the direction they point, with the game's own table:
| Face | Brightness |
|---|---|
| Top | 1.0 |
| North and south | 0.8 |
| East and west | 0.6 |
| Bottom | 0.5 |
shading=0 switches it off and draws every face at full brightness, which is occasionally
what you want for an icon on a dark background. Elements the model marks shade: false —
the crossed planes of a torch flame or a flower — are always full brightness, as in the game.
yaw is measured from the block's front, which is its north face: the side a furnace opens
on and where a crafting table's grid is. So view=front shows a furnace's door, and
view=iso shows it on the left, exactly as the inventory does.
Biome tints
Grass, leaves and water have no colour of their own: the texture is grey and the game multiplies it by
a colour looked up in a 256×256 colormap at the biome's temperature and rainfall. Renders here default
to plains, #91bd59 — the green everyone pictures.
https://blockrender.dev/render/block/oak_leaves.png?biome=swamp
https://blockrender.dev/render/block/grass_block.png?tint=b6db61
26 biomes are accepted; the list is in the parameter
reference. Birch and spruce leaves ignore the biome, as they do in the game — their colour is a
constant. tint=<hex> overrides everything, and touches only the faces that are
tinted at all, so a grass block keeps its dirt sides.
What has no model
1,102 of 1,198 blocks and 1,473 of 1,537 items render. The other 96 blocks and 64 items have no JSON model at all, because the game draws them with code:
- Block entities: chests, ender chests, banners, shulker boxes, beds in hand, heads and skulls, decorated pots, conduits, copper golem statues.
- Liquids: water and lava, whose surfaces the game builds at runtime.
- Invisible or technical blocks: air, barriers, light blocks, structure voids, moving pistons.
They answer 404 with that sentence rather than an empty image, they have no page, and
they are not in the sitemap. Rendering them would mean re-implementing an entity renderer and
inventing geometry Mojang does not ship, and a picture of a chest that is not quite the game's chest
is worse than no picture.
The version pin
Everything comes from Java Edition 26.2, pinned in one constant and printed in the footer. It is deliberately not "the latest release": a silent bump would change images that other people have already linked to, and would quietly retire ids that Mojang removed. When it moves, it moves on purpose.