3D web experience · Three.js · Self-initiated, a gift

Yehia Rashdan Car Museum

Yehia Rashdan, an Egyptian car collector with about 551k followers on Instagram, has said on podcasts more than once that he dreams of opening a museum so his cars and their stories don’t die. I built him one, in 3D, in the browser, as a gift: 85 of his real vehicles across three floors, walkable on a phone.

Start screen at sunset: a purple BMW M2 drifting in tyre smoke behind the title Yehia Rashdan Museum and a start button.
The same start screen on a phone.

The start screen on desktop and on a phone, with the purple M2 drifting on the roof track behind the title. Every screen on this page is captured from the live museum.

Role
Research, 3D build, voice and the promo
Category
Interactive 3D · Car culture · Egypt
Platform
Three.js (WebGL2) · Cloudflare Workers
85vehicles, 84 cars and his RV
3floors and 8 zones
3 daysfrom research to live
$6.24of AI to watch 812 videos
$0hosting, on Cloudflare Workers
65 spromo reel for Instagram

“I wish I could open a museum.” So I built him one.

He said it on more than one show in 2026: «نفسي أفتح متحف», I wish I could open a museum, so the cars and their stories stay for Egypt and for the generations after. A real building takes years and a fortune. A museum on the web takes a link.

The building is a ring in the shape of his YR logo, with a drift track on the roof. Inside are 85 of his own vehicles on three floors and eight zones. Outside, Yehia himself stands washing his classic Mustang and greets you in his own real voice. Research started on 15 October, the first commit landed on the 16th, and the museum was live on the 17th.

01 · Research

812 videos watched for $6.24.

Most of his cars live in stories and highlights, not in captions, so the line-up had to come from the footage itself. I catalogued his Instagram without logging in and without downloading any media to my PC. My home line is capped at 5 GB a day, so every heavy job ran on Google Cloud Build on startup credits, and Gemini watched each video: which cars appear, who speaks, what is said, and whether the car is his.

551,437followers
787posts
163story highlights
1,085posts and stories catalogued
812videos and images analysed by Gemini
250car sightings
80usable voice lines
$6.24total AI cost
  1. InstagramMetadata only, no login
  2. Cloud BuildGemini watches every video
  3. CatalogueCars, voices, dogs, car washes
  4. Review pageKeep or remove, by hand
  5. Line-up85 vehicles on three floors

Ownership was proven from his «ي ر» vanity plates, his name on liveries and his own words. Cars that turned out not to be his, a Rolls-Royce Phantom among them, were removed, and scale models and RC cars are never shown.

02 · The building and the opening

His logo, seen from the air.

The opening is one shot. A drone passes over the purple M2 sliding round the roof in tyre smoke, comes down to the entrance and finds Yehia washing his Mustang with his Cane Corso and his Pomeranian. He says «أنتو جاهزين؟ أنا مش جاهز. يلا بينا. بسم الله.», sprays the hose at you, the screen goes wet, and you walk in.

High drone view: a ring-shaped building drawn as the YR monogram, its whole roof a drift track with a purple M2 trailing smoke.
The YR ringA first version of the building: his monogram as the plan, a drift track as the roof
The purple M2 drifting on the roof track at sunset.
DriftTyre smoke on the roof track
The drone coming down to the entrance with the YR sign, the directory board and the RV.
DescentDown to the YR sign and the RV
Yehia in 3D washing his car beside the RV, his Cane Corso and Pomeranian beside him, caption «يلا بينا».
GreetingHis own voice, his mouth in sync
The same scene with the caption «أنتو جاهزين؟» as he raises the hose.
SprayThe hose, then a wet-lens shader
The drift on a phone.
On a phoneThe same opening, portrait
The descent on a phone.
DescentLands at the entrance
Yehia greeting on a phone.
Greeting«أنتو جاهزين؟»

His voice is real: one line from his own video, separated from the music and cleaned with BS-Roformer and DeepFilterNet3. No voice cloning and no words he never said.

03 · Walk it

Walk it on your phone.

WASD or the arrow keys on a computer, a stick on a phone, drag to look, and Space or the «نط» button to jump. Real stairs reach every floor, a floor switcher jumps between them, and each zone’s name fades in as you walk into it.

The lobby: a blue 1960s Mercedes 280SE Cabriolet with a red interior on a round plinth, floors and stairs above.
The lobbyHis 1960s Mercedes 280SE Cabriolet on a plinth, the car he loves most
The lobby on a phone with the floor switcher and the jump button.
On a phoneFloor switcher, stick and «نط»
The classics row with plaques in front of each car.
ClassicsEvery car nose out, a plaque in front
A Beetle and a VW bus in the VW corner.
VW cornerThe Beetle and the bus
Rows of cars under red covers with the YR badge.
Still coveredAbout ten mystery cars under red YR covers
The fun corner with a Citroën Ami and jeeps.
Fun cornerCitroën Ami and jeeps
The BMW floor with the purple M2 and a row of BMWs.
BMWA floor of its own
The track floor with race cars and plaques.
TrackThe cars he races
Supercars on the top floor.
RocketsThe supercars, top floor
The classics on a phone.
ClassicsOn a phone
The covered cars on a phone.
Still coveredOn a phone
The supercars on a phone with the controls hint.
RocketsWith the one-time controls hint
04 · Every car

Every car, up close.

Tap any car and everything else disappears: it turns on a turntable you can orbit, with its Arabic name, its English name and one line, the same as the plaque in front of it. 83 car models, each with its correct body so a 2-door is never shown as a 4-door, each repainted in Yehia’s own colour.

Alpina C2 2.7 isolated on its turntable with a name card.
Alpina C2 2.7Tapped open in the lobby
Mercedes-Benz 280SL Pagoda isolated on its turntable.
Mercedes-Benz 280SL PagodaClassics
BMW E30 Touring isolated on its turntable.
BMW E30 TouringBMW floor
Red Ferrari F8 Spider isolated on its turntable.
Ferrari F8 SpiderRockets
Mercedes-Benz 560 SEC isolated on a phone.
Mercedes-Benz 560 SECOn a phone
BMW E36 Cabriolet isolated on a phone.
BMW E36 CabrioletOn a phone
05 · Performance

Made to run on the phone in his followers’ hands.

Most visitors will open the link inside Instagram on an Android phone, so the phone sets every limit. It runs on Three.js with WebGL2, because Instagram’s Android in-app browser has no WebGPU.

  • Every car has a light version: 17.9 MB instead of 64 MB, with 22.6% of the triangles.
  • Full-quality cars stream in only near you: within 16 m on a computer and 9 m on a phone, at most 30 and 8 at a time.
  • Glass materials that froze the screen for 2 to 5 seconds are stripped at load.
  • Worst frame 42 ms and none over 50 ms, measured on a Windows GPU.
  • First load is 14.4 MB with a progress readout, and every file retries after a real Egyptian line dropped HTTP/3 mid-download.
  • Static hosting on Cloudflare Workers for $0, with hotlink protection so other sites can’t embed the models.
  • 70+ commits, about 4,500 lines of museum JavaScript, and 20+ automated test scripts driving headless Chrome: walking, stairs, freezes, level of detail, plaques.
The BMW floor on a phone.
BMW floorLight cars far away, full cars near you
The track floor on a phone.
TrackSame scene, phone limits
06 · The promo

A 65-second promo, and the editor I built to cut it.

The reel opens on his own podcast words, «نفسي أفتح متحف», then «عشان كده بنيتله واحد», and drops into the museum on the beat. 14 podcast clips from 4 shows are cut into 26 segments, with 44 animated cards set in Thmanyah with kashida and gold key words, and music generated with Google’s Lyria, ducked under speech and normalised to −14 LUFS for Instagram.

Card on black: «نفسي أفتح متحف».
HookHis words, on black
The lobby with the line about the Egyptian Museum.
The why«زي المتحف المصري»
Card: «عشان كدا بنيتله واحد».
The dropSo I built him one
The purple M2 drifting.
OpeningThe roof drift
A McLaren F1 car on its plinth.
His F1 storyThe McLaren
End card: Yehia Rashdan Museum, enter now.
End card«ادخله دلوقتي»
The reel editor in a browser: a timeline of segments, cut-point nudge buttons, text fields and a live preview.
The editorA timeline of every segment, live preview with sound, ±0.05 s nudges on every cut, text, gold and kashida buttons, a music picker, undo and one-click render. The preview shows a clip from the podcast

Every cut point was checked with Gemini audio probes and loudness envelopes, so no word is clipped and the host’s voice never bleeds in. An ffmpeg pipeline in Node renders the reel with per-segment caching, and an export kit hands clean clips, separate stems and SRT captions to CapCut or Filmora.

Tech stack

  • 3D: Three.js (WebGL2), glTF/GLB, custom shaders for the wet lens, drift smoke and road
  • AI: Gemini for video understanding and audio probes, Lyria for music, Hunyuan3D-2.1 for the body base mesh, BS-Roformer and DeepFilterNet3 for the voice
  • Cloud: Google Cloud Build and Cloud Storage, Apify for Instagram metadata
  • Hosting: Cloudflare Workers on a tamim.works subdomain
  • Video: an ffmpeg pipeline in Node, a custom browser editor, Playwright capture
  • Testing: Playwright with headless Chrome on a real GPU, 20+ scripts

Honest scope

  • Self-initiated, a gift. Not commissioned or paid for by Yehia Rashdan, and not endorsed by him.
  • The car 3D models are free CC BY models from Sketchfab (one is CC BY-SA), credited in the museum. I cleaned them, set real size and orientation, repainted each in his colour and built a light version of each.
  • Two models are mine: the RV, modelled from his photos, and the hero 280SE Cabriolet, converted from a 4-door W111 sedan model into the 2-door cabriolet with a red interior.
  • Yehia’s 3D body started as an AI base mesh (Hunyuan3D-2.1) from photos of him, then was retextured and rigged. His voice is his own.
  • The podcast clips in the promo belong to the shows they come from.
  • A first version of the building: the glass shell is still being redesigned. No visitor numbers or reach are claimed.

Model credits

Promo

The promo reel.

65 seconds, 9:16, cut for Instagram. Turn the sound on.

Live

Walk through the museum on your phone.