P1 Discovery — v4
1 · The platform visuals
Acts 2 and 3 are now the actual 3D map, driven as a camera rig. You were right that
what we built looks better than what I was substituting for it. Eight cinematic takes off the live
register: an orbit at 67° pitch, a dive from regional altitude into the towers, a low pass at 80°
for parallax, the real filter panel narrowing the field, the real colour-by-delivery-record mode,
and a pull-back for the close.
The reveal is generated from the data, not faked. I rebuilt the map's own
height expression with a growth factor and animate it 0 → 1, so every registered tower in Gurgaon
physically rises out of flat ground on the reveal line.
2 · The numbers changed — and this matters
The script was quoting numbers the map does not show. It said 500 → 37. The live
register renders 1,007 filings and narrows to 52. Had this shipped, the voice and the screen would
have contradicted each other. Every number is now read off the platform itself.
| Step | Projects |
| On the Gurugram register | 1,007 |
| New Gurgaon | 250 |
| Apartments | 158 |
| Possession by 2028 | 52 |
| …of those, nothing overdue on record | 38 |
Separately: 275 of the 1,007 had a prior project already past its
declared completion date at the time of filing. That is the builder line, and it names nobody.
3 · Pace
Shots now sit inside beats, not one per beat. v3 held one look per narration
line — 14 shots over 88 s, a 6.3 s average. There are now 27, and outside the three uncut
demonstrations the average is 3.2 s. Shots are weighted by each beat's tension, so the cut rate
accelerates through the agitation and slows at the reveal. The pivot is a single long hold; the
reveal, the narrowing and the shortlist are never cut into, because their counters need to read.
Three new frames. Cutting faster with the old set would just have repeated the
same pictures, so act 1 gained a broker sliding one brochure forward while five sit ignored, a couple
sitting tired in traffic under half-built towers, and a phone at midnight.
4 · The flat voice — I was wrong about the cause
It was my mix, not the voice. I measured the take against the film:
| Loudness range | Silence |
| Take as generated | 25.5 dB | 25.9% |
| v3 film mix | 21.5 dB | 0.3% |
The performance had pauses and dynamics. I was pouring a wall-to-wall music bed into
every pause and then limiting the peaks off. Music now plays in blocks with real rests —
including full silence under "Until now" — and the limiter only catches peaks.
I also tested recasting, and it would have made things worse. I generated the
same passage on nine voices and measured pitch movement in semitones. Lovekesh scores
6.8;
every alternative scored 3.8–5.2. He is the most dynamic voice available to us.
Judge it yourself — but the measurement says the casting was never the problem.
Direction was partly to blame, and that is fixed. [short pause] is not a
real v3 tag — it was being ignored. Rewriting the pauses as paragraph breaks took the take from
26% to 36% silence and 6.3 to 7.2 semitones, with no settings change.
5 · The reveal
Rise → silence → hit → hold. A 2.6 s riser leads in, the music cuts to nothing,
a sub-heavy impact lands on the word, the city stands up, and the bed swells back above its
earlier level. Both stingers are synthesised for this cut.
Caught before it shipped
The hook card still said "more than 500 new projects" while the new voice
track says a thousand — the card is a pre-rendered image and did not move when the script did. It
would have contradicted the narration in the opening two seconds. Regenerated, along with the
risk hook, which now cites the register's real figure of 275 rather than a rounder claim.
The first capture of the reveal was ten seconds of empty ground — and the log
happily reported towers: 1007. Screen recorders emit frames when the page paints, not on
wall-clock, so a shot opening on a static map runs behind the driver and my elapsed-time trim cut
the wrong ten seconds. There is now a white sync flash burned into every take and the trim point is
found in the footage itself. I only caught it because I looked at the frames.