DiceplotsPlatforms → 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.

Get a license quote → Talk through the integration first

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.

Want to talk through whether Diceplots fits your stack? Talk to Defensible Logic — the consultancy that builds and maintains the engine takes on integration work too.