projects

tenzies

2026 · rebuilt
built with
react 19, vite 8, tailwindcss 4, motion 13, three.js r186
live source write-up
tenzies

the first version. the first version was a react exercise: ten flat dice in a white card, tap to hold, roll until they match, confetti when they do. the rules were good, so the rebuild keeps every one of them and changes everything around them.

the tray. it's a dice tray now. petrol felt edge to edge, casino red dice with ivory pips, and held dice that turn ivory with ink pips, which is how the first version showed a held die too. each die is a rounded cube in three.js, lit by one light and drawn on one webgl canvas over ten real buttons, so taps, keys and screen readers still work.

one roll at a third of the speed. the loose dice lift, tumble end over end and land, and the held fours don't move.

held for good. once you roll, held dice stay held, and a held die that doesn't match ends the game. so the line under the dice keeps count, warns you before a roll you'd lose, and the button turns into roll anyway. roll anyway and the odd one gets a red ring.

three boards: five of ten on fours, a held two with a warning and a roll anyway button, and nine fours with the odd two ringed red under no match
it counts for you, warns before you roll, and rings the odd one out if you roll anyway.
9:41

around it. around it there's a clock that starts on your first move, your best, your last ten games, sounds, space and 1 to 0 on the keyboard, and a game that's still there when you come back. it fits every screen from a 320px phone up without scrolling, and nothing on it moves while you play.

previouspasteupnextfandeck

got something in mind? work with me, or email me.

© 2026 ashwin s nambiarcheck out v1, v2