← Back to portfolio

Holo Dice

Holo Dice is an augmented-reality dice roller for iOS. Point your phone at a real surface — a table, a floor, a dice tray — pick your dice, and throw. Physics-simulated dice tumble onto the surface in front of you and report the total once they settle.

Ten D20 dice scattered across a living-room floor in AR

Under the hood

Holo Dice is built in Unity 6 with AR Foundation (ARKit on iOS) and the XR Interaction Toolkit, in C#. Surface detection uses AR plane tracking; the dice run on Unity's physics solver.

The architecture is deliberately small and event-driven. Dice are recycled through an object pool rather than instantiated per throw. Each die self-reports when its rigid body goes to sleep — gated by a minimum settle time so a die paused mid-arc isn't read early — and a single roller aggregates the results. The face pointing up is found from the dot product of each face marker against world up, which works for any convex die with no per-die-type code. One configurable prefab generalises from a D6 to a D20 by pointing its markers at the new faces — no new classes, no factory.