All writing09 / 11Experiment

To Simulate a Place, You Have to Notice It

A one-week experiment in real-time 3D was less a lesson in shaders than in precision: a simulation is a merciless test of how well you know something.

Zahin Mohammad

Software Developer

Published
Reading time
3 min read
Length
639 words
Topics
Experiment, Simulation, three.js

This month I spent a week on an experiment: a real-time 3D village in the browser called Bodwip, after বদ্বীপ, the Bangla word for delta. A country boat travels from a river into a khal, under an old brick bridge and onto a shapla beel, while Bangladesh’s six seasons turn around it. Almost everything, from the land and water to the sky and the sound, is generated in code when the page loads.

It’s an experiment, not a product, and it belongs in a different drawer from the systems businesses run on. But it taught something that applies to all of them: a simulation is a merciless test of how well you know a thing.

You Can’t Render a Vague Idea

Ask anyone in Bangladesh about the seasons and they’ll tell you there are six: Grishma, Borsha, Sharat, Hemanta, Sheet and Basanta. That’s knowledge. It isn’t yet a simulation. To make a season visible, the idea has to become a list of specific, correlated changes:

  • When does the water rise, and which fields go under?
  • When does kash bloom along the banks, and for how long?
  • When are the paddies green, when golden, when cut?
  • When do the salt farms on the coast turn into fish ghers?
  • When do kalboishakhi storms roll in, and what does the light do before one arrives?

A person can live a whole life inside these changes without writing any of them down, because nothing forces precision. Code does. A renderer can’t draw “around autumn”. It needs a date, a water level, a color for the field. Every vague belief has to become a number, or be exposed as a guess.

Defaults Come from Somewhere

The second lesson was about defaults. Much of the shared vocabulary of 3D quietly assumes four seasons: green spring, bright summer, orange autumn, white winter. Snow is a standard effect; a monsoon isn’t. That isn’t malice. Defaults are written by people, and they encode the places those people live.

The same is true far from graphics. Date handling assumes Gregorian months, while a Bangla date needs its own calendar: in Bangladesh, Pohela Boishakh, the first day of the year, falls on April 14. Text layout assumes letters sit side by side, while Bangla stacks consonants into conjuncts. The দ্ব in বদ্বীপ is two letters drawn as one shape, and a font that doesn’t understand that breaks the word.

Building something specific to a place means noticing each default and asking whose place it describes. Most are fine. The ones that aren’t stay invisible until you go looking.

A Version of Now

The detail that captures the idea best is live mode. The village follows Bangladesh’s real date and hour, with the sun and moon where they actually are and the Bangla date on screen. It changes the relationship with the viewer: you aren’t watching a scene, you’re looking at a version of now.

It also makes the precision problem unavoidable. A moon texture can show any phase you like. Tonight’s moon has exactly one, and getting it right means computing it from astronomy, not choosing it by taste. A simulation that claims to be now can be checked by anyone who steps outside and looks up.

What an Experiment Is For

Experiments are worth a week for what they teach back to the day job. This one sharpened something that matters just as much in a ledger or an import as in a village: the quality of a model depends on how closely its builder was willing to look at the real thing.

Most software can hide vagueness behind confident output. A simulation can’t. That alone is a good reason to build one now and then.

Next post10 / 11Know Everything or Know NothingPollify has to know who you are to keep a vote honest. Fyntra refuses to know who you are to keep your money private. Both are trying to earn the same thing.

Open to select freelance work

Have an IdeaWorth Building?

Building a product, or hiring for one? I’d like to hear about it.

Based in Chittagong, Bangladesh. It’s here (GMT+6).