The challenge
A BMW product manager has to decide what the next 1, 5 or 7 Series should offer in Europe, the USA and China. Customers in each market want different things. A bigger back seat and a fridge in China, a driver's car in the USA. The raw material is thousands of customer comments, studies and sales numbers, and the decision is a human one.
We spent the first hours of the hackathon talking to BMW experts instead of writing code. One sentence changed the whole project: if you just give us a car, we don't care. A recommendation without the reasoning behind it, and without a trace of who decided what, is something they cannot use.

What Dixi does
Dixi reads what customers in a market ask for and ranks it with a score from 0 to 100, and every score can be explained. Three layers go into it:
- BMW's own principles. 53 of them, three fundamentals for each series, plus market and group rules. Strongest, a hard guardrail, owned by named teams.
- Market evidence. Customer feedback with how many people mentioned each thing, studies and sales, plus what competitors and trends show.
- A social test. The weakest layer, clearly labelled as simulated.
Two AI agents do the reading. One checks each request against the principles and says where they conflict instead of averaging the conflict away. The other, a lead researcher with two scouts, searches the web for competitors and trends, and anything it can't back with a real source is thrown out.
Then the human decides: keep, or reject with a reason. That decision is saved with who, when and why, and the next analysis remembers it. A rejected request ranks lower next time, unless demand has grown enough to bring it back.
What I'm proud of
It says what it doesn't know. Every agent returns a list of gaps. The China data has no customer comments at all, only surveys and sales, so China findings carry a lower confidence, and the screen says so.
BMW's data never leaves the machine. No customer quote goes to OpenAI, to the search service or to the database. The agents only see our own request titles, categories and counts.
The film. The three-minute video was built as code, with a narrated voice and a timeline I could re-render in minutes when the story changed. It changed several times.
What it was like
The product went through a few names before it became Dixi, the name of the Dixi 3/15, BMW's very first car, from 1928. The first design was a static prototype, and I didn't like it, so the real web app replaced it on the second day.
The hackathon also required every team to record its coding sessions with Entire, so the whole build is traceable. I wrote about the talk that explained why, in the first post of the writing section.
Try it, the live app is public, and so is the code.