The AI interprets.
Code counts.
Code computes ~25 deterministic aggregates. The AI only reads those numbers and returns a typed profile through one forced tool call.
Plug Locus into an existing game with two HTTP calls. It turns raw gameplay into a living AI profile of every player, and powers playstyle matchmaking, adaptive difficulty, wellbeing alerts and recommendations with zero AI calls on the real-time path.
Games collect mountains of behavioral data and reuse almost none of it. Every studio rebuilds player understanding from scratch, one feature at a time.
| Feature | Built on | Sees | Shared profile |
|---|---|---|---|
| Matchmaking | ELO model | wins / losses | ✕ |
| Difficulty | hand-tuned rules | level progress | ✕ |
| Churn | separate classifier | session counts | ✕ |
| Safety | rules engine | spend | ✕ |
| Next title | nothing yet | no data | ✕ |
Locus builds one profile per player, the Player DNA. An AI reads your gameplay once per session, off the request path. Every real-time feature then reads that profile with simple math.
Code computes ~25 deterministic aggregates. The AI only reads those numbers and returns a typed profile through one forced tool call.
Every player in every game is scored 0–100 on the same Core 7 traits, so profiles compare across players and titles.
Everything live is arithmetic over 7 numbers. No tokens, no network hop, and it keeps working if the model provider goes down.
Nobody fills in a survey. Every trait is a by-product of play, read from choices, timing, stakes and behavior after a loss. Pick an archetype to see its DNA.
Slow, safe, relentless. Wins by not making mistakes.
Post a manifest, stream events, and every feature below is ready to use. No model to train, host or babysit.
Keeps each player in the flow band by tuning your own levers to their DNA.
Flags loss-chasing, tilt, fatigue and more, each with a suggested intervention.
Lobbies that are fair and fun: close in skill, contrasting in style. Similar, balanced, rival and skill-only modes.
Ranks your modes, events and tables against each player's DNA.
Each trait names the numbers that produced it, and each flag carries the values that triggered it. Ready for support teams and regulators.
{ "gameId": "rift-clash", "genre": "moba", "actionVocab": […] }200 · onboarded
A JSON manifest. No code changes, no retraining.
The real-time path has no model dependency. If an AI call fails, profiling falls back to a deterministic profiler and keeps going.
Usable matchmaking from a player's very first session.
Watch profiles form in real time over a streaming feed.
No SDK lock-in, no training, no inference infrastructure. If your server can send JSON over HTTP, your game can be AI-enabled this week.
Retention isn't one feature. It's every touchpoint feeling right. Locus works the levers that decide whether a player comes back tomorrow.
Players who always win get bored; players who always lose quit. Adaptive difficulty steers every player toward a 45–55% win rate, shaped to how fast they think and how they handle losses.
On the same player pool, DNA-balanced lobbies beat skill-only lobbies on predicted engagement 11 times out of 12, with one tie and zero losses.
Loss-chasing, tilt and fatigue are flagged in real time with a suggested intervention: a break prompt, a lower-pressure mode or a fair lobby.
Recommend the modes, events and tables each player is built for. Cold-start players get sensible defaults from the population prior.
Every intervention carries its evidence, such as “5 losses in a row while stakes rose +0.31”. That is an audit trail a reviewer or regulator can work with.
One integration replaces four separate pipelines. Your next title reuses the same DNA vocabulary instead of starting cold.
A model on the request path means one inference per matchmaking tick, difficulty check and wellbeing poll. Locus makes one call per session, with a cached prompt prefix shared by every player of the game.
Simulated players were given hidden trait vectors that drove their play. Locus recovered them without ever seeing the hidden vectors.
Measured with the repository's validation harness on a simulated population using the deterministic profiler. Figures show that the pipeline recovers latent player structure; they are not a claim about a specific live player base.
Nine Squares is a hot-seat game integrated using only the two public endpoints. Two people at one keyboard produce two independent Player DNA profiles.
Black-box AI is a liability when real players, and sometimes real money, are involved. Locus attaches evidence to every trait and the triggering numbers to every flag.
{
"flags": ["loss_chasing", "fatigue"],
"severity": "high",
"detail": {
"loss_chasing": "5 losses in a row this session while
stakes rose (commitment trend +0.31) and
decision quality fell (-0.22)",
"fatigue": "session has run 104 minutes
without a break"
},
"nudge": "Offer a break prompt and a cool-down
before the next high-stakes table.",
"llmCalls": 0
}
Rummy, poker and fantasy: spot loss-chasing and tilt early, route at-risk players to lower stakes, and recommend the right tables.
Pair a flanker with an anchor, not two of the same. Tune enemy count and spawn pressure per player, gentler for those who tilt.
Balance teams by playstyle, not just MMR. One shared match id, independent profiles for every player in it.
Keep players in the flow band with adaptive hints and timers. Suggest the next mode before they get bored.
Grade every decision against your engine's evaluation and Locus separates low skill from high skill under tilt.
One DNA vocabulary across your portfolio. A new launch starts with shared player understanding instead of a cold start.
Real-time reads are never metered, because they cost nothing to serve.
For prototyping and game jams
Billed per profiled session, not per request
For publishers and regulated operators
No. The AI runs asynchronously, once per session, after ingestion has already returned. Matchmaking, difficulty, wellbeing and recommendations are vector reads plus arithmetic, 1–7 ms server-side, with llmCalls: 0 on every response.
No. You write a JSON manifest that describes your game in plain language and map your telemetry to a small event envelope. There's no per-title model to train or retrain.
Your game doesn't notice. The real-time path never calls a model. Profiling falls back to a deterministic profiler and records which source produced each profile.
At minimum: player decisions (what they chose, how long it took, how much they committed), match outcomes, and a session-end marker. Economy and social events are optional and power the wellbeing and sociability signals.
Anything that can make an HTTP request from your backend: Unity, Unreal, Godot, Flutter, web, or a custom engine. We also provide a dependency-free TypeScript reference client.
Claude, through a single forced tool call that guarantees a typed profile, with the rubric and manifest prompt-cached across all players of a game. You can choose a larger model for accuracy or a smaller one for cost.
Yes. Each trait stores the evidence behind it, each wellbeing flag carries the numbers that triggered it, and each matchmaking result includes a human-readable reason.
We are onboarding a limited number of studios. Tell us about your game and our team will scope your first integration with you.