Case Study · 🧠

dimeji

from Oládìméjì — ọlá di méjì, “honour, become two”

A framework for modelling the complexity and uncertainty of human emotion. It takes an emotional history — a relationship, a friendship, a season of your own life — and lays it out as a graph you can dissect, while refusing to pretend the model is the truth.

Framework
Epistemics
React Flow
TypeScript

The idea

We never really know another person. We build an internal model of them — out of messages, moments, memories, and behaviour — and then we mistake the model for the person. dimeji is an attempt to make that model explicit: to lay complex emotions and mindsets out in the open, connect them, and reason about them honestly, instead of letting a single story quietly harden into “the truth.”

The name carries the intent. Oládìméjìọlá di méjì, “honour, become two” — a thing that only exists between two people. The whole framework is built around a single discipline: reality is not the model of reality, and it never lets you forget which one you’re looking at.

The one rule

dimeji never states another person’s inner life as fact. Not “she left because…”, not “he feels…”. You can record what was observed, preserve what was said, and generate explanations — but the inside of someone else’s head is theirs, not the record’s. Every claim instead reads as “supported by three observations, contradicted by one” — a weighting, never a verdict.

The primitives

Everything in the model is one of a few kinds of thing, and each carries an honest label for how much weight it can bear.

Observations, on an evidence ladder

Observed, reported, remembered, reflection — from “this message was sent” down to “this is my read of it.” Fact and interpretation never blur together.

Hypotheses

Competing explanations that coexist. Each is wired to the evidence that supports and contradicts it, carries a confidence weighting, and is never declared the winner.

Contradictions

Held open, not resolved. When the record disagrees with itself, dimeji lists the possible readings — including “unknown” — rather than forcing one.

Lessons

What you carry forward, wired back to the memories that taught it. The point isn’t to preserve a person — it’s to preserve how the experience changed you.

The interface

It renders as an interactive, force-directed graph: people, memories, conversations, places, emotions and quotes, with hypotheses and lessons embedded as first-class nodes and coloured edges — green where evidence supports, red where it contradicts, olive where a lesson was learned. Alongside it sits a lessons layer that groups what the history taught about yourself, about the other person, about relationships, and about your own reasoning — complete with gentle nudges against the biases (mind-reading, recency, narrative fallacy) that distort how we read the people we love.

Status

Built with Next.js, TypeScript, React Flow and a d3-force layout. The framework is general; the first working instance was applied to a real, personal archive as a private proof-of-concept — kept behind a gate, because a model of a relationship is a private thing. What’s public here is the shape of the idea, not the data.

Ohun tí a kọ́ ni ó ń dúró — what we learn is what stays.