Inverted Elements

Elements can be inverted, which will render the textures of the element on the inside of the element rather than on the outside.

Elements will only render textures on one side of each face which is why you can see inside the inverted element.

Inverting an element is as easy as switching the “from” and “to” values of an element:

normal:

“from”: [a, b, c],
“to”: [x, y, z]

inverted:

“from”: [x, y, z],
“to”: [a, b, c]

You can’t invert individual faces, but you can swap two faces at a time by swapping just the x, y, or z values to swap east and west, up and down, or north and south faces.

Some things which need to be considered when making models with inverted elements:

The faces are actually swapped with the face on the opposite side, the “north” face will actually be on the south side of the model and vice versa, east & west, up & down will also swap, this is actually why inverted elements render the way they do.
This means that if you want the “up” face of an inverted element to be disabled you will need to remove the “down” face, this is the same for north & south as well as east & west.

Inverted elements will render differently when on an entity’s head and when viewed in third person.

You can see that inverted elements will no longer render as inverted, and that the shading on the up faces are different, the reason the shading has changed is due to the fact that the up & down faces have swapped position, the bottom of the normal model will be dark and on the inverted model the bottom will be lighter.

As for why inverted elements no longer render as inverted when viewed in third person or on an entity’s head, I have a vague understanding of what is going on but without knowledge of the rendering code I cannot say what is actually happening.