Back to our ideas
Idea 02 · Journey

AI-Based Simulation: Simulating Real Human Behaviour

We wanted to build something ambitious: a model that could replicate human beings and how they react to a product or a policy. This is the honest log of what broke, what we learned, and how a non-tech team eventually got it running.

The Idea

A simulated India, before a rupee is spent

A population-weighted, multi-agent simulation that recreates India's diversity using thousands of AI personas. Each persona is grounded in real census data on income, region, literacy and lifestyle, allowing them to debate, react and predict how any product or policy would actually land on the ground, all before a single rupee is spent on real-world testing.

It blends individual judgment with peer-influenced group dynamics to produce statistically calibrated adoption scores, segment-level insights and a strategic synthesis, all before a single rupee is spent on real-world testing.

On paper it sounded exciting. In reality, it reached a point where this could have been our smallest experiment.

Weeks 1-2

Testing Claude to its limits (and losing)

Week one was about making Claude Premium do what we needed. Trust us, we tested it to its bounds. It failed, but never once told us to look for an alternative way. Legends say our prompt was wrong.

We ran into token limits, dead ends and a series of interactive dashboards that never became what we needed them to be. Every time we thought we were close, something else broke. We kept patching, rebuilding and trying again, staring at the possibility that all this effort might lead nowhere.

By the end of two weeks, we were exactly where we started: nowhere.

But sometimes failure doesn't end a project. It offers a new beginning.

Beginning 2

A non-tech team decides to code

Armed mostly with AI, our non-tech team tried its hand at building the thing directly. We'd be doing a lot from first principles, because learning something and simultaneously building it forces you to question most of what you assume.

And that changes everything.

Week 3

In which we fought Python and Python won (round 1)

The plan, as pitched to ourselves over coffee: ask AI to write Python code, paste it into VS Code / Terminal / Python (whatever it's called; we're not tech bros here), watch magic happen, send in our sales wizards, and collect crazy profit.

The plan, as it spanned out: we found it hard to install Python or VS Code, running the code was harder, and honestly we're still not sure we installed all the dependencies.

Boss fight #1: the red squiggly line

The code wouldn't run. We fixed it. A new error appeared, apparently offended by the first one leaving. We fixed that. Three more Google tabs opened, each less helpful than the last, all confidently contradicting each other. Somewhere around our fourteenth ModuleNotFoundError we stopped asking "why won't this work" and started asking a much scarier question: wait, are we the problem? (We were, occasionally, the problem.) We thought we were building a tool. We were actually being quietly enrolled in Python 101, taught by an unpaid, extremely passive-aggressive professor named Terminal.

The Turn

Google Colab enters the chat

After enough trial, error and mercy from people who actually knew what they were doing, we abandoned Terminal and VS Code and moved everything to Colab. The first attempt failed (that was OpenAI's code); it later worked with Claude's code on Google Colab.

The first output took 30 good minutes. We stayed glued to our screens, with every jumping line the code generated itself, like watching Picasso's strokes live.

The Lesson

Making vibe-coding actually work

Week 3 was about making vibe-coding work. We just wanted results and would give whatever it took, except learning Python properly, which wasn't possible in our project cycle. Turns out you don't always get to choose which parts of the process you're allowed to skip.

By the end of the week we had something that worked, and we were genuinely blown away by the outputs. Then the big legends questioned our base. So we argued with census data, fed it to our LLM, and ran the model with that context.

Still, our gut said it might not be enough. That a problem remained unsolved. That problem was waiting for us in week 4.

Where we are now

A simulation is only as honest as its assumptions. Grounding the personas in census data changed the outputs more than any model upgrade ever did. And that remains the thread we're still pulling on.

Stay tuned for what came next.