# i4 exterior restoration ยท M4 cabin swap The user chose the previous M50-based i4 exterior over the 2022 i4 replacement, and explicitly requested the M4 interior. The custom game M60 label and five-seat i4 capacity remain. This is a custom cabin swap, not a claim of a factory i4/M60 cockpit. ## Sources and rebuild Exterior: [bmw-i4-m50 by MattDoesBlender](https://sketchfab.com/3d-models/bmw-i4-m50-79940b471eb544fb95d901316d191f19), CC BY 4.0, using the preserved assets/bmw-i4/i4_details near/far derivatives. Cabin: [2021 BMW M4 Competition by Ricy](https://sketchfab.com/3d-models/2021-bmw-m4-competition-d3f07b471d9f4a2c9a2acf79d88a3645), CC BY-NC 4.0, using assets/bmw-m4/m4.meshopt.glb. The combined model is noncommercial. Attribution to both sources is embedded in both GLBs and in CREDITS.html. Run node tools/swap-i4-cabin.mjs. The base files and M4 donor are not overwritten. Input hashes, removed original cabin parts and retained exterior parts are recorded in build-report.json; source-provenance.json identifies the chain. Original tagged interior meshes and three old cabin/cowl remnants are removed. All 120 retained exterior meshes preserve their vertex positions and face counts, including body paint, the previous grille, mirrors, lamps, wheels, panes and fixed quarter glazing. The donor includes dashboard, static instrument/navigation artwork, front/rear seats, steering rim/controls, headlining, inner mirror, visors, pedals and selected interior door surfaces. M4 body paint, exterior doors, mirrors and wheels are excluded. The complete donor interior is fitted at X scale 0.90 and Y offset +0.02m. It keeps its UVs and 11 used original image streams unchanged. The i4's five game seats remain, including an approximate center rear position on the donor bench. The original i4 window shapes and all four lowering panes remain. Original i4 door/pillar/glass geometry differs from the M4 coupe, so the transplant is adapted to that envelope. Doors do not open and the donor screens remain static artwork. ## Runtime and sound Near: 288,443 triangles, about 9.1MB. Far: 93,936 triangles, about 2.56MB; only donor geometry/material detail is reduced beyond the existing distant exterior, and donor cabin images are omitted in that LOD. Per-car paint, independent wheels/windows/steering, five-seat ownership, call/pickup and collision data remain integrated. LOD is a structural optimization, not phone performance signoff. The active files are `i4-pillars.meshopt.glb` and `i4-lod-pillars.meshopt.glb`. Both include fixed black B-pillars missing from the earlier derivative. `tools/i4-pillars.mjs`, called by the cabin builder, lofts shallow bevelled solids between the actual front/rear glass contours, from belt line to roof. Each side adds 172 triangles with gloss exterior and matte inner trim. The [BMW promotional side photograph](https://www.wideworldofcarsbmw.com/introducing-the-new-bmw-i4/) was inspected for the tapered black separator; its local reference is `.tmp/references/side.jpg`. The existing 120 exterior meshes and donor images remain unchanged. Pillars are outside the lowering-window hierarchy and stay opaque and fixed when the glass opens. They are an approximate photo-guided reconstruction rather than factory CAD. The i4 now uses an original continuous electric tone, referencing [BMW's i4 M50 IconicSounds Electric description](https://www.bmw-m.com/en/topics/magazine-article-pool/bmw-m-iconicsounds-electric.html): layered low/body/shimmer tones grow with speed and load, then soften during deceleration. It has no simulated gear steps, RPM or exhaust pops; stationary tone gains are zero. The interior layer is stronger only when the listener is inside that same car; outside it is a faint game cue. No manufacturer recording/melody is copied, and Comfort/Sport/Eco modes or exact OEM AVAS are not implemented. Blender previews are preview-front.png and preview-cockpit.png. Editable i4.glb/i4.blend intermediates are ignored. Actual game captures, when present, use game-exterior.png/game-cockpit.png. ## Verification scope Syntax and the 83-test batch passed before final browser checking. The additional restoration regression passed, checking all 120 retained exterior position sets and face counts against the original i4 derivative, donor texture byte hashes, independent steering and five-seat data. Audio tests cover silence at rest, continuous pitch, load/interior response, no i4 RPM/gears/pops, and cleanup. These tests use a fake AudioContext and do not establish subjective timbre, real-phone audio output, performance or manufacturer sound accuracy. Blender views were inspected; actual game checks are recorded in the final task report. In a desktop solo browser, the restored white i4 was called and boarded, its transplanted M4 cockpit and restored exterior were captured, and a short manual drive/brake left the audio state enabled. No subjective OEM sound matching or real-phone test is claimed. game-cockpit.png and game-exterior.png are the actual game screenshots.