How did Islam really spread across the world? — credits
Early Muslim conquests changed who ruled, but historians find conversion was slow, with no organised attempt to force it, and Islam reached the Swahili coast, Indonesia and West Africa largely through merchants. Indonesia, reached by traders, has the world's largest Muslim population (Pew Research Center, 2025). The Qur'an says: "There is no compulsion in religion" (2:256). A hand-made-style paper-collage animation, rendered live in your browser with plain JavaScript and canvas.
Sources for the story
- Qur'an 2:256 (“There is no compulsion in religion”), with Tafsir Ibn Kathir vol. 1 p. 682 on its occasion (the Ansar and their sons; Abu Dawud 2682): the bookend verse.
- Tarikh al-Tabari vol. 3 pp. 608–609 (also al-Uns al-Jalil vol. 1 pp. 377–378): Umar's covenant with the people of Aelia (Jerusalem), “they shall not be compelled in their religion”. Its chain runs through Sayf ibn Umar, so it is quoted “as recorded by al-Tabari”.
- Encyclopaedia Britannica, “Egypt: From the Islamic conquest to 1250” (no attempt to force the Egyptians to convert) and “Samudra-Pasai” (Malik al-Salih, 1297); Mawsu'at Safir li-l-Tarikh al-Islami vol. 5 pp. 2–3: the early conquests, 630s–710s CE.
- T. W. Arnold, The Preaching of Islam (1913): no organised attempt to force the acceptance of Islam; the “sword” theory examined.
- R. W. Bulliet, Conversion to Islam in the Medieval Period (1979), via D. O'Sullivan (2006): Iran from near zero in the 640s to about 80% Muslim by the 960s.
- Mujaz al-Tarikh al-Islami vol. 1 pp. 299–301 and Majallat al-Risala no. 987: Islam reached lands no conquerors set foot on through merchants, including the Malay world.
- Rihlat Ibn Battuta vol. 1 p. 197 (Mombasa and Kilwa, c. 1331) and Mawsu'at Safir vol. 9 p. 99: the Muslim towns of the Swahili coast.
- Pew Research Center (9 June 2025): Indonesia has the world's largest Muslim population by Pew's count.
- J. S. Trimingham, via 'Abd al-Shafi vol. 1 p. 202, and Mawsu'at Safir vol. 9 pp. 4–6: Islam in West Africa came primarily through trade; traders' Qur'an lessons by firelight.
- T. Vosmer, “The Jewel of Muscat” (Smithsonian NMAA, Shipwrecked), and the Belitung wreck: sewn-plank dhows with square sails (no nails), as drawn here.
Out of respect, the Prophet ﷺ is never depicted, and people are shown only from behind.
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_coral_beach_waves — #587164 "Evening Ocean Waves along the Pacific Coast" by el_boss, CC0 1.0. Edits: cut 120-154 s; HPF 40 Hz; 30 s seamless loop, -24 LUFS. Gentle, rather dull/dark (preview has little above 4 kHz)
- amb_desert_wind_night — #796193 "Wind in the desert countryside 1" by fran_marenco, CC0 1.0; #651241 "Slight cricket singing with silent breeze recorded at night in the desert at Bagdad California" by felix.blume, CC0 1.0. Edits: soft wind 290-324 s (HPF 50 Hz, a stretch without the recording's daytime birds) + faint night-cricket air 2-36 s (HPF 150 Hz, 0 dB); 30 s seamless loop, -24 LUFS
- amb_fire_crackle — #363092 "Fire Crackle and Flames 002" by TheWoodlandNomad, CC0 1.0. Edits: 10 s seamless crackle loop, -24 LUFS
- amb_morning_birds_dry — #718403 "liminbout sparrows" by bruno.auzet, CC0 1.0. Edits: cut 125-159 s (sparrows, distant pigeons; avoids the car near 190 s); HPF 100 Hz; 30 s seamless loop, -24 LUFS
- amb_open_sea_rigging — #371172 "Sailboat, cockpit at 12kn wind speed" by borralbi, CC0 1.0; #195193 "LargeWoodenShip.mp3" by PimFeijen, CC0 1.0; #852108 "Sailboat Bow" by myLoop, CC0 1.0. Edits: layered: cockpit hull wash + wind 24-58 s (HPF 40 Hz, 0 dB) + wooden creaks 10-44 s (HPF 60 Hz, -21 dB) + bow splash/wind 40-74 s (HPF 80 Hz, -24 dB); 30 s seamless loop (2 s crossfade), -24 LUFS. Made for how-islam-spread
- amb_predawn_hush — #651241 "Slight cricket singing with silent breeze recorded at night in the desert at Bagdad California" by felix.blume, CC0 1.0. Edits: cut 2-36 s; HPF 120 Hz; 30 s seamless loop, -26 LUFS (source is ~-45 LUFS, so gain is about +19 dB)
- amb_river_night_insects — #673960 "River with slight water flow, lapping, with cricket and frog recorded at night in Amazon rainforest" by felix.blume, CC0 1.0. Edits: cut 74-108 s; HPF 60 Hz; 30 s seamless loop, -24 LUFS
- sfx_ceramic_clink_soft — #568758 "Cup and Saucer 2.wav" by bowlingballout, CC0 1.0. Edits: cut 0.08-0.70 s; HPF 100 Hz; 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_cord_pull_1 — #646586 "Sewing cloth.wav" by heifabaisi, CC0 1.0. Edits: cut 9.37-10.08 s (thread pulled through cloth); HPF 120 Hz,FFT denoise 8 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_cord_pull_2 — #646586 "Sewing cloth.wav" by heifabaisi, CC0 1.0. Edits: cut 29.16-29.86 s; HPF 120 Hz,FFT denoise 8 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_cord_pull_3 — #646586 "Sewing cloth.wav" by heifabaisi, CC0 1.0. Edits: cut 35.20-35.77 s; HPF 120 Hz,FFT denoise 8 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_dream_shimmer_short — synthesized for this series: Same engine, 1.6 s dense sparkle sting.
- sfx_flame_catch_soft — #326463 "Lighting A Match OWI.wav" by miekyj, CC0 1.0. Edits: cut 0.42-1.85 s (flame flare only, strike removed); HPF 80 Hz; trim, 0.25 s fade-out, 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_page_turn_2 — #397548 "Page Turn 01" by LilMati, CC0 1.0. Edits: cut 0.00-0.50 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_paper_tear_3 — #170311 "Tearing paper" by ludde44, CC0 1.0. Edits: cut 0.20-1.52 s; HPF 60 Hz; trim, fades, peak -1 dBFS
- sfx_parchment_unroll — #753282 "Parchment - Unroll" by Vrymaa, CC0 1.0. Edits: cut 16.30-17.36 s; HPF 80 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_tick — synthesized for this series: A short synthesized key click for typing in the Qaf app screen (made for this series). Non-instrumental.
- sfx_tissue_slide_1 — #147281 "fh_Paper_Swipe_Surface2_Long_01.wav" by Frank1100, CC0 1.0. Edits: cut 0.10-1.42 s; HPF 120 Hz; trim, fades, peak -1 dBFS
- sfx_tissue_slide_2 — #147286 "fh_Paper_Swipe_Surface2_Mid_01.wav" by Frank1100, CC0 1.0. Edits: cut 0.00-1.24 s; HPF 120 Hz,FFT denoise 8 dB (floor -55); 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_creak_short — #130364 "Slow Creaking Stereo.wav" by harveyism, CC0 1.0. Edits: cut 12.15-13.40 s; pitched/slowed to 0.8x (about -4 semitones); HPF 60 Hz; trim, fades, peak -1 dBFS