Independent iGaming developer

Slot mechanics you can actually verify.

I build server-authoritative slot engines - RNG, cascade math, RTP verification, and the animation layer - for operators who need proof, not promises. Below is a fully working build: Dice Slot, playable right now.

Get in touch
dice-slot - live build

Сюда вставим слот

5+ Years of
experience
99+ Games
shipped
130+ Clients
worldwide

Server-side RNG

Every outcome is resolved on the backend with a CSPRNG - nothing the client computes, or can tamper with.

Verified math

RTP, volatility and hit-rate come from a Monte-Carlo run against the real game logic, not a spreadsheet.

Full-stack build

One person owns the math, the backend, and the animation layer, so nothing gets lost translating between them.

About

Building the parts of a casino game that have to be true.

Full story
Photo of Illia

We are Seedtrue games, an independent studio working where game math meets full-stack engineering. The fun on screen is only half the job - the other half is the RNG, the paytable, the simulation, and the audit trail behind every spin.

We came to slots from Python backends and real-time systems that had to run unattended and be right every time. A slot is really a deterministic state machine with money attached, so the same discipline applies.

Precision

Every number is simulated before it ships - nothing is estimated or eyeballed.

Transparency

RTP, volatility and hit-rate are documented and handed over - never hidden behind the UI.

Craft

The animation layer never gets to promise more than the math has already proven.

Portfolio

What I've shipped.

See all work

This list grows slowly on purpose - every entry has math behind it before it earns a spot.

Dice Slot gameplay screenshot
Released

Seedtrue Games

A cascading slot with a fully server-resolved outcome chain. RTP 96.56%, verified by Monte-Carlo simulation before release.

PixiJS · FastAPI · WebSocket

Untitled Project A
Coming soon

Untitled Project A

Details to follow once this build is ready to show.

Stack - TBA

Untitled Project A
Coming soon

Untitled Project B

Details to follow once this build is ready to show.

Stack - TBA

The Game

Seedtrue Games, in numbers.

All the math

Every figure below comes from a Monte-Carlo simulation of the actual game logic - the real payout tables and cascade rules, run long before a single frame was animated.

0% RTP (±0.51pp, 95% CI)
0% Hit frequency
Volatility (σ / bet)
Max win observed (cap 15,000×)
Free spin frequency 1.01%

2,055,670 free spins played across the simulation run.

Base game / free spins RTP split 68.01% / 28.55%

The remainder comes from smaller base-game side features.

Simulated across 5,000,000+ spins on the production game logic - not a hand-built spreadsheet.

Process

How it's built.

Read the detail

Three decisions shape everything else about Seedtrue Games. Each one started as a specific problem with server-side games.

  1. Client-side RNG can't be trusted - so there isn't one.

    Every spin is resolved server-side with a cryptographically secure RNG. The client only renders an outcome it's told, so fairness becomes something an operator can audit.

  2. Cascades are easy to animate and easy to get wrong.

    A dedicated cascade engine resolves the whole chain mathematically first, then streams a deterministic event queue over WebSocket for PixiJS to play back step by step.

  3. RTP shouldn't be a spreadsheet guess.

    Millions of simulated spins run directly against the production game logic - the same code path that ships - so the published numbers describe the code that's actually running.

What it's built with.

Backend

  • Python · FastAPI
  • WebSocket
  • SQLite
  • C++ math core (pybind11, optional)

Frontend

  • Vanilla JS
  • PixiJS
  • GSAP
  • WebSocket client

Math & tooling

  • Monte-Carlo RTP simulation
  • Custom paytable modelling
  • Cascade & multiplier logic

FAQ

Questions operators usually ask.

All questions

Yes. Every spin outcome is generated and resolved on the backend using a cryptographically secure RNG. The client receives a result and renders it - it never generates or influences one.

Yes, on request - usually under a simple NDA. That includes the full simulation output, paytable, and the assumptions behind the RTP calculation.

Yes. The math and mechanics stay untouched - only the skin, symbols, and branding change on top of the same verified engine.

It depends on the mechanic, but a cascade-style game like Seedtrue Games - from math design through a playable build - is usually a matter of weeks, not months.

Contact

Let's talk.

Contact page

Have a game that needs a math check, a fairness rebuild, or a full engine from scratch? Send a note - I read everything myself.

Useful things to include: the mechanic you have in mind, your target RTP and volatility, whether it needs to fit an existing platform, and roughly when you'd want it live. Rough answers are fine - I'll come back with a scoped estimate and a timeline.

Photo of Illia

About

Building the parts of a casino game that have to be true.

We are Seedtrue games, an independent studio working at the intersection of game math and full-stack engineering. Our focus is casino games - mostly slots - where the fun on screen is only half the job. The other half is the part players never see: the RNG, the paytable, the RTP simulation, and the audit trail behind every spin.

We got here from full-stack and automation work - Python backends, real-time systems, bots that had to run unattended and be right every time. Slot mechanics turned out to be a natural extension of that: the game is really just a deterministic state machine with money attached, which means the same discipline that keeps a backend honest is exactly what keeps a game fair.

These days we build the full chain ourselves - server-authoritative RNG, cascade resolution, WebSocket delivery to the client, and a PixiJS animation layer that renders whatever the backend already decided. We run the Monte-Carlo math before any of it ships, because we'd rather find a bad number in a simulation than in a live operator's ledger.

What we actually do on a project

A slot arrives as an idea - a theme, a target RTP, a feeling the operator wants players to have. Our job is to turn that into a specification precise enough that a testing lab can read it, and code faithful enough that the specification stays true after release.

In practice that means designing the reel strips and paytable, writing the resolution engine, simulating it until the numbers stop moving, and only then building the part anyone sees. If the math and the animation ever disagree, the math wins and the animation gets rewritten - never the other way around.

We work directly with whoever owns the product. No account manager sits between the question and the answer, which means a paytable change discussed on Monday is usually simulated and back in your inbox by Tuesday.

Where we're useful

Small and mid-size operators who need a real game rather than a template. Studios that have a front end but no one to defend the math behind it. Teams with an inherited codebase where nobody can say with confidence what the RTP actually is any more - that audit is often the most valuable week of work we do for anyone.

Our mission

To give small and mid-size operators access to the same rigor big studios take for granted - server-verified fairness, transparent math, and mechanics built to hold up in production - without a slow agency process standing in the way.

Precision

Every number is simulated before it ships - nothing is estimated or eyeballed.

Transparency

RTP, volatility and hit-rate are documented and handed over - never hidden behind the UI.

Craft

The animation layer never gets to promise more than the math has already proven.

“We'd rather ship a smaller game with numbers we can defend than a flashy one we can't.”

- Seedtrue games

The Game

Seedtrue Games, in numbers.

Seedtrue Games is a cascading slot built to prove a point: that a small, independently-built game can carry the same math rigor as a studio release. Every figure below comes from a Monte-Carlo simulation of the actual game logic - run against the real payout tables and cascade rules, long before a single frame was animated.

Provably fair

Server-resolved outcomes, no client-side math to inspect or exploit.

Lightweight

PixiJS keeps the client thin - the render loop stays smooth even on modest devices.

Cross-device

Same WebSocket connection, same math, whether it's opened on desktop or mobile.

0% RTP (±0.51pp, 95% CI)
0% Hit frequency
Volatility (σ / bet)
Max win observed (cap 15,000×)
Free spin frequency 1.01%

2,055,670 free spins played across the simulation run.

Base game / free spins RTP split 68.01% / 28.55%

The remainder comes from smaller base-game side features.

Simulated across 5,000,000+ spins on the production game logic - not a hand-built spreadsheet.

How a spin resolves

A spin starts as a request over an open WebSocket. The server draws from a cryptographically secure RNG, maps the draw onto the reel strips, and evaluates the resulting grid against the paytable. If any cluster pays, those symbols are removed, the grid refills from above, and the evaluation runs again - that loop continues until a refill produces no new wins.

The whole chain is resolved before anything reaches the browser. What the client receives is an ordered event queue: this grid, these wins, this multiplier step, that refill. PixiJS plays the queue back at human speed. Close the tab halfway through a cascade and the balance is still correct, because the outcome was never waiting on the animation to finish.

Reading these numbers

RTP is the long-run share of wagered money returned to players. At 96.56% it sits in the range most operators target for a mid-volatility release, and the confidence interval tells you how tight the estimate is after five million spins - not a rounded marketing figure.

Hit frequency counts how often a spin returns anything at all. A little over 40% means a paying spin roughly every two and a half, which keeps a session feeling alive without flattening the peaks.

Volatility is the standard deviation of the return per unit staked. At 8.24× the game pays in uneven bursts: long quiet stretches, then a cascade chain that carries the session. The highest win the simulation actually produced was 9,510× stake, against a hard engine cap of 15,000×.

Free spins

The bonus round triggers on roughly one spin in a hundred and carries a little under a third of the total RTP. That split is deliberate: the base game still has to be worth playing on its own, so most of the return stays where most of the spins are. Multipliers carried between cascades inside the round are where the top-end wins come from.

What you get on handover

The full simulation output, the paytable and reel strips, the assumptions behind every published figure, and the game logic itself. If you want the numbers re-run against a different target RTP or a different volatility profile, that's a configuration change and a fresh simulation - not a rewrite.

Process

How it's built.

Three decisions shape everything else about Seedtrue Games. Each one started as a specific problem with server-side games, and the solution is the same one I bring to every build.

  1. 01

    Client-side RNG can't be trusted - so there isn't one.

    Problem: if the outcome is decided in the browser, it can be inspected, replayed, or tampered with, and no operator can certify that.

    Solution: every spin is resolved server-side with a cryptographically secure RNG. The client only ever renders an outcome it's told - it never computes one.

    Why it matters: fairness becomes something an operator can audit, not something they have to take on faith.

  2. 02

    Cascades are easy to animate and easy to get wrong.

    Problem: tumbling reels chain symbol removals, refills, and stacking multipliers - a common place for the math and the animation to quietly drift apart.

    Solution: a dedicated cascade engine resolves the entire chain mathematically first, then streams a deterministic event queue over WebSocket for PixiJS to animate step by step.

    Why it matters: the state a player wins is always the exact state that was calculated - never a UI approximation of it.

  3. 03

    RTP shouldn't be a spreadsheet guess.

    Problem: hand-built math sheets are error-prone, and RTP is usually only discovered once a game is already live.

    Solution: a Monte-Carlo simulation runs millions of spins directly against the production game logic - the same code path that ships - before any release.

    Why it matters: the published numbers describe the code that's actually running, with nothing lost in translation.

The shape of a project

Work runs in five stages, in this order, because each one produces the input the next one needs. Nothing starts before the stage in front of it is signed off - that's what keeps a late paytable change from quietly invalidating a month of animation work.

  1. Stage 1

    Scope and math design

    We agree the mechanic, the target RTP, and the volatility profile. I draft reel strips and a paytable and model them until the shape of the game matches the feeling you described. Output: a math specification you can read without being a mathematician.

  2. Stage 2

    Simulation

    The specification becomes code, and the code runs millions of spins. If RTP, hit frequency or the win distribution land somewhere you don't want, this is the cheap moment to change them. Output: a simulation report with the numbers and the assumptions behind them.

  3. Stage 3

    Engine

    Server-side RNG, cascade resolution, session and balance handling, WebSocket delivery. The engine is built around the simulated logic rather than beside it, so there's one code path and no second implementation to drift.

  4. Stage 4

    Client and animation

    PixiJS renders the event queue the server sends. This is where art, sound and pacing land - and the only stage where the answer to "can we make it feel bigger" is yes without touching a number.

  5. Stage 5

    Verification and handover

    A final simulation on the shipping build, documentation prepared in the form a testing lab expects, then the code, the math report, and a walkthrough. After handover I stay reachable for the certification round.

What it's built with.

Backend

  • Python · FastAPI
  • WebSocket
  • SQLite
  • C++ math core (pybind11, optional)

Frontend

  • Vanilla JS
  • PixiJS
  • GSAP
  • WebSocket client

Math & tooling

  • Monte-Carlo RTP simulation
  • Custom paytable modelling
  • Cascade & multiplier logic

Portfolio

What I've shipped.

This list grows slowly on purpose - every entry here has math behind it before it earns a spot.

Dice Slot gameplay screenshot
Released

Seedtrue Games

A cascading slot with a fully server-resolved outcome chain. RTP 96.56%, verified by Monte-Carlo simulation before release.

PixiJS · FastAPI · WebSocket

Coming soon

Untitled Project A

Details to follow once this build is ready to show.

Stack - TBA

Coming soon

Untitled Project B

Details to follow once this build is ready to show.

Stack - TBA

Seedtrue Games, in more detail

Seedtrue Games started as a private exercise: build one complete game alone, end to end, and be able to defend every number in it. It's a cascading slot with a dice-face symbol set, stacking multipliers inside the bonus round, and a hard win cap at 15,000× stake.

The build covers the whole chain - RNG and cascade resolution in Python, session handling over WebSocket, a PixiJS client that renders an event queue rather than deciding anything itself, and a simulation harness that runs the shipping logic across millions of spins. The math core can drop down to C++ through pybind11 when a simulation run needs to finish in minutes rather than hours.

It's playable. The build runs locally and gets tunnelled on request, so if you want to spin it before we talk, ask and I'll send a live link.

What's next

Two further games are in progress and will appear here once there's something worth showing - a finished build and a simulation report, not a mockup. If you'd rather see work in progress than wait for the listing, get in touch and I'll walk you through what's on the bench.

FAQ

Questions operators usually ask.

Most first conversations cover the same ground - fairness, math documentation, certification, and timelines. Here are the answers in advance, so the call can start somewhere more useful.

Yes. Every spin outcome is generated and resolved on the backend using a cryptographically secure RNG. The client receives a result and renders it - it never generates or influences one.

Yes, on request - usually under a simple NDA. That includes the full simulation output, paytable, and the assumptions behind the RTP calculation.

I prepare the game logic and math documentation a testing lab needs for submission. Certification itself is issued by the lab, not by me - I make sure the paperwork matches the code exactly.

Yes. The math and mechanics stay untouched - only the skin, symbols, and branding change on top of the same verified engine.

The current build is a standalone WebSocket game. I can adapt the integration layer to a specific platform or aggregator API on request - the game math itself doesn't need to change.

It depends on the mechanic, but a cascade-style game like Seedtrue Games - from math design through a playable build - is usually a matter of weeks, not months. Scope drives the estimate more than anything else.

Yes - reel strips, paytable and feature weights are configuration, so a different target is a re-tune plus a fresh simulation rather than a rewrite. The later it happens the more it costs, which is why the math stage comes first.

Yes, and it's some of the most useful work I do. I run your existing logic through the same simulation harness and report what the numbers actually are, then flag anywhere the client can influence an outcome.

You do, on final payment - source, paytables, simulation harness and documentation. Reusable engine internals stay mine to reuse elsewhere, but nothing that identifies your game does.

Right now the math, backend, and frontend are all one build pipeline that I own end to end. For larger scopes I bring in extra hands, but the math and fairness layer always stay under one set of eyes.

Send a message with your target RTP, volatility profile, and any special mechanics you have in mind. I'll reply with a scoped estimate and a realistic timeline.

Contact

Let's talk.

Have a game that needs a math check, a fairness rebuild, or a full engine from scratch? Send a note - I read everything myself.

Useful things to include: the mechanic you have in mind, your target RTP and volatility, whether it needs to fit an existing platform, and roughly when you'd want it live. Rough answers are fine - I'll come back with a scoped estimate and a timeline rather than a brochure.

I usually reply within a day. If you'd like to spin the current build first, say so and I'll send a live link.