What I'm looking to do is create a 10-sided die, specifically in the shape of a 'pentagonal trapezohedron', i.e., a polyhedron that has 10 kite shaped sides.

With the following link I was able to produce a d4, d6, d8, d12, d20, & d30: How do I create an 8 sided die from one object?

What I'm looking for is something similar for a 10-sided die.



Fastest manual method for me so far, can be done under a minute with ease (faster if the settings in operators have been pre-saved):

  1. Add a Cone with such settings:

    enter image description here

  2. Select the base vertices (Z for wireframe mode), move them 1.0 units up in Z, hit . for 3D cursor Pivot center, duplicate all with CtrlD and rotate with R 180°. Remove doubles with W5. This is what you should have:

    enter image description here

  3. Select every other vertex on the perimeter and the bottom vertex. Move 0.19 units up in Z.

    enter image description here

  4. Select all faces, hit AltJ to merge to quads. For Max Shape Angle input 50°:

    enter image description here

  5. Center the thing in object mode with CtrlShiftAltC Origin To Geometry and AltG. You are done with the dice:

    enter image description here

  • $\begingroup$ If you choose "Triangle fan" as the base fill type instead of "Nothing" you can even skip the duplicate, rotate and merge steps in 2. $\endgroup$ Mar 17 '16 at 16:05
  • $\begingroup$ @OliverGiesen very true, so it can be done even faster :) $\endgroup$ Mar 17 '16 at 17:42

I'm not sure how to model that with the least amount of steps, it might have a simple answer but i've added a solution after the code section anyway.

The wikipedia page of Pentagonal_trapezohedron links to a .wrl file file but Blender fails to import it (for reasons that are not important here). The coordinates in the wrl are enough to build the script below. This could be added to the Mesh Extra objects addon, but for now just run the script from the TextEditor

# be in object mode with nothing selected.

import bpy

Verts = [
    0.5257311, 0.381966, 0.8506508,
    -0.2008114, 0.618034, 0.8506508,
    -0.6498394, 0, 0.8506508,
    0.5257311, -1.618034, 0.8506508,
    1.051462, 0, -0.2008114,
    0.8506508, 0.618034, 0.2008114,
    -0.5257311, 1.618034, -0.8506508,
    -1.051462, 0, 0.2008114,
    -0.8506508, -0.618034, -0.2008114,
    0.2008114, -0.618034, -0.8506508,
    0.6498394, 0, -0.8506508,
    -0.5257311, -0.381966, -0.8506508,

Faces = [

def deflate(x, stride):
    return [x[i: i + stride] for i in range(0, len(x), stride)]

Verts = deflate(Verts, 3)
Faces = deflate(Faces, 4)

mesh = bpy.data.meshes.new("Base_Data")
mesh.from_pydata(Verts, [], Faces)

obj = bpy.data.objects.new("Pentagonal_Trapezohedron", mesh)

scene = bpy.context.scene
obj.select = True

Manual way

This is based on trigonometric principles, but not perfect. Blender is an Arts package which only aims to approach visual accuracy not numeric accuracy.

  • add a dodecahedron with the Mesh Extra Objects add-on
  • notice its sides are built using two faces: 1 quad (trapezoid), 1 triangle (isosceles)
  • the quads have a long edge and an opposing shorter edge.
  • the long edge can be copied and placed at the tip of the short edge to get 1 'terminator' point
  • repeat this process on the opposite face to find the 2nd 'terminator'.
  • then edge-fill around.
  • optional cleanup: Remove Doubles, followed by a Limited dissolve and you'll get nice Kite shaped quads.

enter image description here

The edges in blue above are marked to show that they are the same edge, with the same length.

here's the opposite side using orange to show the corresponding edges:

enter image description here

  • 1
    $\begingroup$ Great answer! To nit-pick, the only thing you can improve, is that the manual way brings to faces that aren't 100.00% flat. $\endgroup$
    – Carlo
    Oct 25 '15 at 20:41
  • $\begingroup$ @Carlo thanks for pointing that out. I 'll think about a different approach. $\endgroup$
    – zeffii
    Oct 26 '15 at 6:52
  • $\begingroup$ @Carlo, perhaps you wish to examine the alternative. I think it doesn't suffer from the same problem. $\endgroup$
    – zeffii
    Oct 26 '15 at 8:13
  • $\begingroup$ Thanks, I'll give it a look ASAP. I agree with you in saying that high numerical precision should not be one of Blender's goal. I was amazed by the fact that extruding the faces of the default dodecahedron by 1 unit (not 1.02, or 0.7563..., but a 1.000) would leads to the perfect result. Sadly it was not, but it gets incredibly close to that anyway! $\endgroup$
    – Carlo
    Oct 26 '15 at 8:45
  • $\begingroup$ I think it's 0.9822 , but with rounding it's only going to get so close :) $\endgroup$
    – zeffii
    Oct 26 '15 at 9:25

Even faster:

0) Assure 3D cursor to (0,0,0) (Shift-C)

3D Cursor Location: 0,0,0

1) Add a Cone with 5 sides, depth 2.0, radius 2.25 (+/- to taste) (Shift-A M Y, Open Tool Shelf T)

Cone: 5 sides, 2.0 depth, ~2.25 radius5 Sided cone

2) Duplicate it (Shift-D and Enter) and rotate the duplicate 180º around X ( R X 180 Enter )

2 Cones overlapped

3) Select the first cone, Add a Boolean Modifier, Intersect the second cone, Apply.

Boolean Modifier on Intersect

4) Delete the second cone. ( X Enter )

Completed Pentagonal Trapezohedron


This is by far the fastest and most accurate method I've found (this is the sixth one!) -- it takes about 30 seconds! Vary the radius on the cone to get more or less sloped faces. 2.25 seems about like a d10.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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