Shows a block state. The entity's position is the block model's lowest corner, so translate -0.5 on x and z to center it.
Loading block ids...
left_rotation: [0f, 0f, 0f, 1f]
Enter the rotation as an axis and an angle; the output stores it as the quaternion above. Axis 0 1 0 with 90 spins the model a quarter turn around the vertical axis.
Never rotates toward the player (default).
Render distance multiplier; 1 is roughly 64 blocks.
Display entities cast no ground shadow by default; a radius above 0 adds one. Strength scales its darkness.
Duration animates transformation changes you apply later with /data merge; the start delay waits that many ticks first. Teleport duration smooths /tp movement the same way.
~ is the spot where the command runs; ~ ~1 ~ is one block up. Caret notation (^ ^ ^2) works too.
Run from chat with cheats on, or from a command block (permission level 2). Display entities exist from 1.19.4 onward.
Only non-default tags are written, so the command stays as short as the game allows. The item stack and text component formats follow the version you picked above.
Display entities, added to Java Edition in 1.19.4, are the modern way to place free-floating visuals in a world: any block state, any item model, or styled text, at any size and rotation. They replaced the old tricks of invisible armor stands holding items and frozen falling_block entities, with none of the hitboxes, gravity or performance cost those hacks carried.
There are three types. block_display renders a full block state, including properties like stair facing or a lit furnace. item_display renders an item model and can borrow any of the item's display contexts, so a sword can lie flat like a dropped item or stand like a held one. text_display renders text with full component styling plus its own background color, wrap width, alignment and see-through options, which is what powers modern holograms.
All three share one toolkit: a transformation (translate, scale and rotate the model freely), billboard modes that turn the model toward the player, a brightness override so a display can glow at full light in a dark room, a colored glowing outline, and the interpolation tags that animate changes smoothly. The generator above writes only the tags you actually change, so the command stays as short as possible.
Display entities are configured entirely through NBT on /summon (permission level 2, so chat with cheats on or a command block). These are the tags that matter:
One quirk worth memorizing: block displays grow from their lowest corner, not their center. To center a block model on the summon point, translate it by minus half its scale on x and z, exactly like the stairs example below.
Copy any of these as a starting point, or rebuild them in the generator above:
/summon minecraft:block_display ~ ~1 ~ {block_state:{Name:"minecraft:grass_block"}}The simplest block display: a grass block model one block above the command, growing from its corner./summon minecraft:block_display ~ ~1 ~ {block_state:{Name:"minecraft:oak_stairs",Properties:{facing:"east",half:"bottom"}},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[-0.25f,0f,-0.25f],scale:[0.5f,0.5f,0.5f]}}Half-scale oak stairs with a block state, translated by -scale/2 so the model is centered on the summon point./summon minecraft:item_display ~ ~2 ~ {item:{id:"minecraft:diamond_sword",count:1},billboard:"vertical",view_range:2f}A floating diamond sword that spins to face the player and renders at double the normal distance. Uses the 1.20.5+ item format; older versions write Count:1b./summon minecraft:text_display ~ ~2 ~ {text:{text:"Welcome to spawn",color:"gold",bold:true},billboard:"center",see_through:1b,background:0}A hologram: bold gold text that always faces the player, shows through blocks and has no background plate. Uses the 1.21.5+ SNBT text format; before 1.21.5 the component is a quoted JSON string instead: text:'{"text":"Welcome to spawn","color":"gold","bold":true}'./summon minecraft:block_display ~ ~1 ~ {block_state:{Name:"minecraft:diamond_block"},Glowing:1b,glow_color_override:43775,transformation:{left_rotation:[0f,0.38268f,0f,0.92388f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5f,0.5f,0.5f]}}A half-size diamond block rotated 45 degrees with a light blue glowing outline (43775 is hex 00AAFF as decimal).Display entities have no hitbox, so you cannot punch a test entity away. Clean up with /kill @e[type=minecraft:block_display,distance=..5] (swap in the type you summoned), or add Tags:["demo"] to the summon and kill by tag.
Display entities do not just teleport between states; they can tween. The client animates any change to the transformation (and to text_display's background and opacity) over interpolation_duration ticks. The flow looks like this:
1. Summon the entity with interpolation_duration set, for example 20 ticks for a one second animation, and a tag so you can address it: Tags:["spin"].
2. Change its transformation later: /data merge entity @e[tag=spin,limit=1] {start_interpolation:0,transformation:{...}}. Setting start_interpolation in the same merge restarts the clock; 0 means animate immediately.
3. The client animates from the old transformation to the new one over the duration. Run the merge from a repeating command block or a datapack function loop and the motion becomes continuous.
Position is separate from transformation: /tp moves the entity instantly unless teleport_duration (added in 1.20.2) is set, in which case the move is smoothed over that many ticks. A common pattern is animating rotation through the transformation while gliding the entity along a path with teleport_duration and a moving /tp target.
Display entities are three entity types added in Java 1.19.4: block_display shows any block state, item_display shows an item model and text_display shows styled floating text. They are pure visuals: no hitbox, no collision, no gravity and no AI, which makes them far cheaper and more flexible than the armor stand tricks they replaced. You create them with /summon and reshape them by editing their NBT.
Run /summon minecraft:block_display ~ ~1 ~ {block_state:{Name:"minecraft:grass_block"}} to summon a grass block model one block above you. The block_state compound takes the block id in Name and an optional Properties compound for states like facing or half. Remember the model grows from its lowest corner, so add a translation of -0.5 on x and z if you want it centered on the summon point.
Through the transformation tag, which holds translation, scale, left_rotation and right_rotation. Scale is a simple x y z triple, but the rotations are quaternions in [x,y,z,w] form, which is why hand-writing them is painful. This generator lets you enter a rotation as an axis plus an angle in degrees and converts it to the quaternion for you; a 90 degree turn around the vertical axis becomes left_rotation:[0f,0.70711f,0f,0.70711f].
Set interpolation_duration to a number of ticks when you summon the entity. Whenever its transformation later changes, for example through /data merge entity, the client animates from the old state to the new one over that many ticks instead of snapping. start_interpolation delays the animation, and teleport_duration (1.20.2+) applies the same smoothing to position changes from /tp. Looping a data merge in a repeating command block produces continuous animation.
For decoration, almost always. An invisible armor stand holding an item renders a full entity with equipment just to show one model, while a display entity renders only the model itself. Displays also scale to any size, rotate on any axis, override their own lighting and glow color, and never fall, push or get killed by stray damage. Armor stands remain useful when you need an entity players can interact with or that has real equipment slots.
The usual causes: it was summoned inside a solid block (summon it at ~ ~1 ~ instead), the billboard is fixed and you are looking at it edge-on (use billboard center while testing), the scale is 0, or you are outside its view_range. For text displays specifically, check the text is not empty and that the background alpha is not 0 while see_through is off. /kill @e[type=text_display] removes test entities so you can start clean.
Still need a posable entity with equipment? Or browse more Minecraft tools: