P1 Discovery — v4

1:52 · 27 shots · built on the real 3D register · voice shootout →

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.
StepProjects
On the Gurugram register1,007
New Gurgaon250
Apartments158
Possession by 202852
…of those, nothing overdue on record38
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 rangeSilence
Take as generated25.5 dB25.9%
v3 film mix21.5 dB0.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.