I am looking for a relatively easy way to generate the following 3D graphics (In Windows, or Linux):

enter image description here

I appreciate any recommendations

  • 2
    Just the blocks or also the text and labels? What format should the result be? Any format, JPG, SVG, 3D? Commented Jan 7, 2020 at 20:08
  • If you pose this question on tex.stackexchange.com they will happily tell you how to do it in LaTeX/Tikz.
    – Simd
    Commented Jan 19, 2022 at 17:22

1 Answer 1


Since the graphic is isometric, it seems you don't need a too realistic drawing. In that case, I would use Inkscape. Inkscape it not a 3D tool, it's a 2D tool. But as you'll see you can get a 3D-like result.

Inkscape is gratis and creates vector graphics that have good quality and can be exported to pixel graphics.

  1. Create a rectangle and single click it a few times until you see these arrows:

Rectangle with modifiers

  1. Drag the right middle arrow down to make it a trapezoid.

If you want a flat look, best use an angle that is a multiple of 15°. Doing so will simplify later changes which require the same angle. Getting a multiple of 15° can be achieved by holding the Ctrl key. Remember the angle for later changes. An angle of 30° looks just right.


  1. Duplicate (Ctrl+D) and flip (H) it to create the right side of a cube.

  2. Enable snapping to edges and move it until it snaps

Snapping to edge

  1. Create a square and rotate by 45°

Rotated square

Getting the correct angle is best achieved by holding the Ctrl key, which snaps every 15°.

  1. Move the sqare until it snaps to the edge of the cube

Square snapping

  1. Use resizing at right bottom corner to snap it on the other side. I find that it is quite important to use the right bottom corner. The right middle item does not snap to corners.


  1. Resize at the top middle icon to finalize a cube

Single cube

  1. Set fill color to and adjust line weights as needed

  2. Add the text

  3. Center vertically and horizontally over a side using these alignment buttons


  1. Create two duplicates of the text (Ctrl+D)

  2. Move the duplicates to their sides and center them

Cube with labels

To get a flat look, take these steps (this was edited later, so it will not show up like this in future steps):

a) shear the left text by the same amount of degrees as you did for the rectangle:

Sheared text

b) shear the right text by the same amount in the opposite direction:

Sheared text 2

c) the most difficult part is on the top, also because there are two options. Either shear as for the left text and then rotate counter-clockwise. Or shear as for the right text and then rotate clockwise. The rotation angle is 90 minus the angle used for shearing in step 2. The effect is best observed with a number that has a flat bottom. Thus I chose the number 2. The bottom of the text should clearly aligh with the edge of the cube.

Sheared and rotated text

  1. Mark all 6 items (3 sides and 3 text) and group them (Ctrl+G) to keep the arrangement.

  2. Duplicate the cube (Ctrl+D) and move the duplicate to the next position, snapping at edges. Go from bottom to top first. In the particular example, build 4 cubes.

A pillar of 4 cubes

  1. Duplicate the whole pillar and move each copy from back to front right

Wall of cubes

  1. Duplicate the whole wall and move each copy from back to front left

Cube of cubes

  1. Change the texts

  2. Add axes and labels

Final result

The process seems slow in the beginning, but as you can see, it's quite fast in the end. The whole process took 49 minutes, including the creation of screenshots and writing this answer.

For flat axis labels, shear and rotate similarly as for the cube descriptions.

Flat look

  • 1
    Actually there seems to be a bug with snapping to corners. Some of the cubes are a few pixels off. :-( I also noticed that Inkscape became a little slow, even with 24 cubes only (that's just 144 objects, not so much). Commented Jan 7, 2020 at 21:03
  • 1
    It's amazing! Thank you very much for the detailed steps.
    – s.ouchene
    Commented Jan 7, 2020 at 21:27
  • 1
    Yup! That's what an answer should be like! An example to us all :-)
    – Mawg
    Commented Jan 9, 2020 at 11:30
  • 2
    @MawgsaysreinstateMonica: thanks for the kind words Commented Jan 9, 2020 at 11:41
  • @Navaro: actually it's easier to do it in earlier steps so that the change automatically propagates to all cubes automatically. But anyway, I also did it afterwards, so it's definitely possible. It's quite late here in Germany. I put a reminder for tomorrow to add the information Commented Jan 11, 2020 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.