How was the Quran compiled? — credits
Before the Qur'an was one book, it was written on palm stalks, stones and bone and memorised by many; on Umar's urging, Caliph Abu Bakr ordered it gathered, Zayd ibn Thabit gathered it into sheets from writing and memory, and years later Caliph Uthman had those sheets copied into matching volumes. A hand-made-style paper-collage animation, rendered live in your browser with plain JavaScript and canvas.
Sources for the story
- Sahih al-Bukhari 4986: many reciters were killed at al-Yamama; Umar urged Abu Bakr to have the Qur'an collected, Abu Bakr hesitated and then ordered it; Zayd ibn Thabit, a young man, was chosen; his words that moving a mountain would not have been heavier; he gathered it from palm stalks, thin white stones and the chests of men; the sheets stayed with Abu Bakr, then Umar, then Hafsa
- Sahih al-Bukhari 4987: differences in recitation alarmed Hudhayfa; Uthman had Hafsa's sheets copied into volumes, returned the sheets to her and sent a copy to every region
- Sahih al-Bukhari 4990: revelation was written down for the Prophet ﷺ (Zayd called with the board, inkpot and shoulder blade to write Qur'an 4:95, the verse shown on the bone)
- Sahih al-Bukhari 5003 and 3810: Companions who had memorised the Qur'an in the Prophet's ﷺ lifetime
- Ibn Kathir, Tafsir and Fada'il al-Qur'an; Ibn Hajar, Fath al-Bari 9/18 and al-Qastallani, Irshad al-Sari 15/554–555 (writing and memory checked against each other; suhuf as separate sheets; the Companions' agreement to Uthman's copies)
- Ibn Abi Dawud, Kitab al-Masahif: Ali's «إِلَّا عَنْ مَلَأٍ مِنَّا» (isnad sahih per Ibn Hajar, Fath al-Bari 9/18) and Mus'ab ibn Sa'd's report that none objected (Ibn Kathir, Fada'il al-Qur'an 1/77–79), behind the caption "with the Companions' agreement"
- Qur'an 4:95 (opening words, on the shoulder bone, after Bukhari 4990) and Qur'an 29:49 (the closing verse)
- Qaf's answer in the closing screen: Qaf's production chat pipeline, cited source Muhammad Said al-Buti, Min Rawai al-Quran, vol. 1, pp. 45–46
Out of respect, the Prophet ﷺ is never depicted, and no person is shown: the story is told with objects, paper and cloth. The paper strips are a picture of the method (writing checked against memory), never of the text itself.
Made with
- Narration: Google Gemini 3.8 Flash TTS (voice “Algieba”), directed and edited for this film.
- Illustrations: Google Gemini 3.1 Flash Image (backgrounds) and OpenAI GPT Image 2.5 (cut-outs), art-directed and reviewed frame by frame.
- Typefaces (SIL Open Font License): Caveat Brush, Caveat, Patrick Hand, Aref Ruqaa.
- Animation engine, sound design and mix: written for this series.
Sound
No music is used. All sound effects are CC0 unless noted.
- amb_desert_dusk_wind — #666175 "Wind in dry tall grass bulrush type, close recording with muffled air sometimes, gust of wind, far away tree, recorded in Arivaca Road desert in Arizona" by felix.blume, CC0 1.0. Edits: cut 92.0-114.5 s; HPF 100 Hz; 20 s seamless loop (2 s crossfade), -26 LUFS
- amb_quiet_room_day — #837996 "windy roomtone ile callot" by bruno.auzet, CC0 1.0. Edits: cut 190.0-216.0 s; HPF 40 Hz, LPF 14 kHz; 24 s seamless loop (2 s crossfade), -26 LUFS
- sfx_bone_tap — #640602 "Small_Wooden_Box_Hits.wav" by gokalp_gonen, CC0 1.0. Edits: cut 26.38-26.75 s; left channel only (dual mono), HPF 100 Hz; trim, fades, peak -1 dBFS
- sfx_card_thud — #824385 "Softcover book hitting table" by nyxlitten, CC0 1.0. Edits: cut 3.80-4.25 s; HPF 60 Hz; trim, fades, peak -1 dBFS
- sfx_cloth_press — #854340 "smoothing apron - rustling fabric - handling canvas" by ponysparkleworld, CC0 1.0. Edits: cut 8.97-9.50 s; HPF 60 Hz, LPF 18 kHz; trim, fades, peak -1 dBFS
- sfx_cloth_swish_1 — #391448 "Shirt Whoosh 1.wav" by saturdaysoundguy, CC0 1.0. Edits: cut 6.70-7.40 s; HPF 80 Hz,FFT denoise 10 dB (floor -72); trim, fades, peak -1 dBFS
- sfx_cloth_swish_2 — #391448 "Shirt Whoosh 1.wav" by saturdaysoundguy, CC0 1.0. Edits: cut 9.60-10.30 s; HPF 80 Hz,FFT denoise 10 dB (floor -72); trim, fades, peak -1 dBFS
- sfx_dream_shimmer_short — synthesized for this series: Same engine, 1.6 s dense sparkle sting.
- sfx_leather_slap — #545545 "leather couch sounds impact thud strike.wav" by rsellick, CC0 1.0. Edits: cut 24.47-24.85 s; HPF 60 Hz; trim, fades, peak -1 dBFS
- sfx_page_turn_1 — #136778 "Page Turn" by davidbain, CC0 1.0. Edits: cut 0.00-1.98 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_palm_stalk_rasp — #403653 "Wood_Sliding_Various-Objects.wav" by LamaMakesMusic, CC0 1.0. Edits: cut 10.20-11.95 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_paper_rustle_1 — #181774 "rustling paper.wav" by keweldog, CC0 1.0. Edits: cut 0.30-2.55 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_paper_rustle_2 — #181774 "rustling paper.wav" by keweldog, CC0 1.0. Edits: cut 2.50-4.45 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_paper_rustle_3 — #449127 "Rustling Paper" by HarpyHarpHarp, CC0 1.0. Edits: cut 1.45-2.15 s; HPF 80 Hz,FFT denoise 10 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_paper_rustle_4 — #449127 "Rustling Paper" by HarpyHarpHarp, CC0 1.0. Edits: cut 5.70-6.41 s; HPF 80 Hz,FFT denoise 10 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_paper_rustle_5 — #211246 "PageRustle" by Tomoyo Ichijouji, CC0 1.0. Edits: cut 0.10-1.90 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_paper_slide_1 — #464302 "PaperSlide.wav" by eyesonlegs, CC0 1.0. Edits: cut 0.00-1.64 s; HPF 60 Hz,FFT denoise 10 dB (floor -55); trim, fades, peak -1 dBFS
- sfx_paper_slide_2 — #444431 "Sliding Envelope.wav" by MTJohnson, CC0 1.0. Edits: cut 0.20-1.10 s; HPF 80 Hz; trim, fades, peak -3 dBFS
- sfx_paper_tear_1 — #272028 "Ripping Paper" by aldenroth2, CC0 1.0. Edits: cut 0.00-1.96 s; HPF 60 Hz,FFT denoise 8 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_paper_tear_2 — #342541 "Fast Paper Rip" by sgrowe, CC0 1.0. Edits: cut 0.00-0.89 s; HPF 60 Hz; trim, fades, peak -1 dBFS
- sfx_pencil_scribble_1 — #257518 "Scribble_short.wav" by waldram, CC0 1.0. Edits: cut 0.00-1.27 s; HPF 150 Hz,FFT denoise 12 dB (floor -50); trim, fades, peak -1 dBFS
- sfx_pencil_scribble_2 — #85703 "Pencil_scibble.aif" by tmkappelt, CC0 1.0. Edits: cut 0.00-3.20 s; HPF 150 Hz,FFT denoise 12 dB (floor -62); trim, fades, peak -1 dBFS
- sfx_stamp_thump_2 — #470710 "traditional stamp.wav" by I.fekry, CC0 1.0. Edits: cut 0.40-1.20 s; HPF 40 Hz; trim, fades, peak -1 dBFS
- sfx_stone_clack — #319226 "Single rock hitting wood.wav" by worthahep88, CC0 1.0. Edits: cut 0.10-0.38 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_tick — synthesized for this series: A short synthesized key click for typing in the Qaf app screen (made for this series). Non-instrumental.
- sfx_whoosh_2 — #683101 "quick woosh" by florianreichelt, CC0 1.0. Edits: cut 0.05-2.05 s; no EQ; trim, fades, peak -1 dBFS
- sfx_whoosh_4 — #60013 "Whoosh" by qubodup, CC0 1.0. Edits: cut 0.00-0.43 s; no EQ; trim, fades, peak -1 dBFS
- sfx_whoosh_soft_synth — synthesized for this series: White noise through a time-varying log-Gaussian band-pass sweeping 300 Hz -> 2.2 kHz, swell envelope, slow L->R pan.
- sfx_wood_lid_knock — #475294 "Wooden Box: Open / Close 2 (Compilation)" by Sheyvan, CC0 1.0. Edits: cut 7.98-9.00 s; HPF 60 Hz, LPF 17 kHz (removes a 19 kHz whine); trim, fades, peak -1 dBFS