| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .. | ||
| hako-dice.scad | ||
| preview.png | ||
| README.md | ||
Hako Dice
A printable set of dice for Hako, the two-player dice game documented at wiki.xxiivv.com/site/hako.html.
Each Hako die is a cube whose six faces are each split by their two diagonals into four triangles, painted in two contrasting colors. A complete die carries all six distinct triangle patterns, named after the time of day by how many of the four triangles are painted:
| Face | Painted triangles |
|---|---|
| day | 0 — the bright face |
| dusk | 1 |
| half (split) | 2, adjacent pair |
| half (cross) | 2, opposite pair |
| dawn | 3 |
| night | 4 — the dark face |
A player owns four identical dice. Since they're all the same, this model
renders a single die by default — raise dice_count to batch-print a whole
set, and print two sets in different accent colors for a full game.
Fair rolling (balance)
A die only rolls fairly if its center of mass sits at its geometric center. Marking the faces unevenly biases the roll, so two measures keep these dice fair:
- Opposite faces are balanced by painted-triangle count. The two
2-triangle faces sit opposite each other (0 difference),
day(0) opposesdusk(1), anddawn(3) opposesnight(4) — no axis differs by more than a single triangle of shallow material. - The triangles are a separate part seated in the face pockets. In plain
mode they sit flush, so a second material of similar density restores the
removed mass and the die stays balanced. In recess mode they sit below the
surface; prefer a shallow
recess_depth(or plain mode) for the fairest single-material dice.
When the Sonozai cord hole is enabled, day and night move opposite each
other so the cord can pass straight through. The centered hole is symmetric and
does not itself unbalance the die.
Printing in two colors
The body and the triangle markings are emitted as separate parts so you can assign each its own filament:
# Primary (die body)
openscad -o hako-bodies.stl -D 'render_part="bodies"' hako-dice.scad
# Accent (triangle fill, flush)
openscad -o hako-markings.stl -D 'render_part="markings"' hako-dice.scad
Load both STLs into your slicer and assign a filament to each, or print
bodies alone and paint the triangles by hand. The default
render_part = "preview" shows both parts together for the customizer.
In recess mode (recessed_triangles = true, the default) the triangles are
sunk recess_depth below the face — a visible, tactile recess (also handy for
low-light or accessible play). In plain mode (recessed_triangles = false)
the faces stay flat and the colored polygons sit flush, distinguished by color
only.
Parameters
| Parameter | Default | Description |
|---|---|---|
die_size |
16 mm | Edge length of each die |
corner_radius |
1.6 mm | Edge/corner rounding |
dice_count |
1 | Dice to lay out (all identical; 4 = one player's set) |
columns |
4 | Dice per row when laying out more than one |
recessed_triangles |
true | Sink the triangles below the face; false = flat faces with flush color polygons |
recess_depth |
1.2 mm | How far below the surface the colored triangle sits (recess mode) |
marking_thickness |
0.5 mm | Thickness of the colored triangle layer |
triangle_margin |
1.0 mm | Inset of the pattern from the face edge |
triangle_gap |
0.7 mm | Gap between triangles and around the pattern |
sonozai_hole |
false | Bore a centered cord hole through the day & night faces |
sonozai_diameter |
3 mm | Cord hole diameter |
render_part |
"preview" |
preview | bodies | markings |
Triangle index convention
Per face, the four triangles are numbered 0 = N (top), 1 = E (right),
2 = S (bottom), 3 = W (left) — each the triangle between one face edge and
the face center.
