Diceplots → Platforms → Engine licensing
License the Diceplots engine
The same Rust core that powers diceplots.com, available for embedding in your own apps, games, and tools. Exact rationals, not Monte Carlo. Multi-language bindings out of the box.
Why it's not "just roll some dice"
Most dice libraries simulate. They roll N times, count the hits, return an approximate probability. That's fine for ballpark answers and useless for the questions players actually ask: does this build kill the boss in 3 rounds or 4? — where 3.4 vs 3.6 expected rounds is the difference between a good answer and a wrong one.
Diceplots computes the full distribution as exact rationals. Closed-form variance, additive shifts, attack-roll chains with rider damage and crits, save-for-half, Markov rounds-to-kill with optional per-round healing. Same answers as a Monte Carlo with infinite samples, in milliseconds.
Bindings
| Language / runtime | Crate / package | Use case |
|---|---|---|
| Rust | diceplots-core |
Direct dependency in any Rust app, game engine, simulator. |
| C / C++ / any C-ABI host | diceplots-ffi |
Game engines, native plugins, command-line tools, Unity / Unreal native plugins. |
| Elixir / Erlang | diceplots-nif |
Phoenix / OTP apps. Same NIF that powers diceplots.com. |
| JavaScript / browser | diceplots-wasm |
Static-site dice tools, in-browser build calculators, no server required. |
| Android (Kotlin / Java) | JNI wrapper | Bundled native libs in your APK / AAB. Same shape as the Diceplots Android app. |
iOS / Swift integrates via the same
diceplots-ffi C-ABI that the C / C++ row uses —
the binary is the same, the import is one bridging header.
A pre-packaged Swift wrapper ships on request alongside a
licensing engagement.
What's in scope
-
Distribution math:
NdM, additive modifiers, exploding dice, reroll-on-low, keep-highest / keep-lowest, attack rolls vs AC, saves, multi-target AOE, rider damage, Sneak Attack and PAM/GWM action-economy stacks. See the full grammar. - Strikes-to-kill: how many hits to drop a target with N HP — closed-form for single-shape repeated strikes; round-varying schedules and per-round healing / regen via the Markov module.
- Cascades: GWM-on-kill / PAM-glaive bonus attacks, configurable cascade depth and queue HP.
- Resistances and split damage: per-type halving and immunity, evaluated against typed-tagged dice.
Licensing
Source-available for evaluation, commercial license per engagement for embedding in shipped products. The license covers the Rust core and every binding crate — license once, ship the engine in any of your products without per-binding negotiation.
Pricing depends on the integration shape (single product vs. portfolio, distribution scale, support level). Drop a line with what you're embedding it in, the rough distribution footprint, and any latency / determinism / compliance requirements that matter — terms come back within a couple of business days.
How to evaluate it
Every page on diceplots.com is the engine running live. Try
a long compound expression — paste
1d10+5 @ AC15 +9 attacks 2 cascade 4 onkill 1d10+5 @ AC15 +9
into the comparison tool and watch it return
exact rationals across 130+ outcomes in milliseconds. The
concepts pillars are worked-out
examples of what the engine surfaces; the
games hub shows it stitched into
build-decision content.
Source access ships with a licensing engagement — full
diceplots-core Rust crate plus every binding
crate (FFI, NIF, WASM, JNI). The same code that runs every
number on diceplots.com.