# Hako Dice ![Preview](preview.png) A printable set of dice for **Hako**, the two-player dice game documented at [wiki.xxiivv.com/site/hako.html](https://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: 1. **Opposite faces are balanced by painted-triangle count.** The two 2-triangle faces sit opposite each other (0 difference), `day` (0) opposes `dusk` (1), and `dawn` (3) opposes `night` (4) — no axis differs by more than a single triangle of shallow material. 2. **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: ```sh # 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.