# dicEx v0.1.0 - Table of Contents

> Pixel-art 3D dice roller for Phoenix LiveView. Authoritative rolls in Elixir
(D&D-style notation: NdS, advantage/disadvantage, drop/keep, explode) with an
optional Three.js + Rapier physics visualization.

## Pages

- [dicEx](readme.md)

## Modules

- [DicEx](DicEx.md): Pixel-art 3D dice roller. The roll itself is computed authoritatively in
Elixir; the optional LiveView component (`DicExWeb.DiceRoller`) visualises
the result with Three.js + Rapier physics.
- [DicEx.Dice](DicEx.Dice.md): Supported die catalog and the canonical face layout per polyhedral type.
- [DicEx.RNG](DicEx.RNG.md): Pluggable randomness source for dice rolls.
- [DicEx.RNG.Default](DicEx.RNG.Default.md): The default RNG: a thin wrapper around Erlang's `:rand`.
- [DicEx.RNG.Deterministic](DicEx.RNG.Deterministic.md): A deterministic, list-backed RNG for tests.
- [DicEx.RNG.Entropy](DicEx.RNG.Entropy.md): Cryptographic high-entropy RNG. Every roll draws fresh entropy from the OS
via `:crypto.strong_rand_bytes/1` — the BEAM's CSPRNG, the same source used
for secrets — so outcomes are effectively unpredictable.
- [DicEx.Result](DicEx.Result.md): The outcome of a roll: a structured, AI/consumer-friendly record plus helpers
to reduce it to plain data (`to_map/1`) or flatten its kept dice (`kept_values/1`).
- [DicEx.Theme](DicEx.Theme.md): Theme adapter for the dice roller.
- [DicExWeb.DiceRoller](DicExWeb.DiceRoller.md): A self-contained LiveComponent that renders the pixel-art 3D dice roller.

## Mix Tasks

- [mix dic_ex.build](Mix.Tasks.DicEx.Build.md): Builds the dicEx frontend assets (Three.js + Rapier) into
`priv/static/dic_ex.min.js` so they ship with the Hex package.
- [mix dic_ex.install](Mix.Tasks.DicEx.Install.md): Copies the dicEx prebuilt assets into the host Phoenix application's
`assets/vendor` and `assets/css` directories so they bundle into `app.js` /
`app.css`, and prints the wiring snippet.

