كيف أسلم سلمان الفارسي؟ — credits
كيف أسلم سلمان الفارسي: رحلته من النار التي كان يحرسها في فارس إلى المدينة، والعلامات الثلاث التي عرف بها النبيَّ ﷺ، كما حدّث بها سلمانُ نفسُه ابنَ عباس (مسند أحمد 23737).How Salman al-Farisi became Muslim: his journey from the fire he kept in Persia to Madinah, and the three signs by which he recognised the Prophet ﷺ, as Salman himself told it to Ibn 'Abbas (Musnad Ahmad 23737). A hand-made-style paper-collage animation, rendered live in your browser with plain JavaScript and canvas.
Sources for the story
- Musnad Ahmad 23737 (Ibn Ishaq from 'Asim b. 'Umar b. Qatada, from Mahmud b. Labid, from Ibn 'Abbas, who heard it from Salman): the whole story in Salman's own words, from Persia to the seal. Graded hasan by Shu'ayb al-Arna'ut, al-Albani (al-Silsila al-Sahiha 2/556) and Muqbil al-Wadi'i (al-Sahih al-Musnad 440)
- Ibn Hisham, al-Sira al-Nabawiyya 1/214-221, and al-Tabarani, al-Mu'jam al-Kabir 6065: the same account through the same chain
- Musnad Ahmad 22997 (Buraydah): the charity was fresh dates on a tray
- Ibn Sa'd, al-Tabaqat 1/388, and Musnad Ahmad ('Abdullah b. Busr): he accepted gifts and did not eat charity
- Sahih al-Bukhari 3946-3947: Salman passed from master to master; his town in Persia
- Al-Nawawi and al-Qastallani on the two lava fields (harra) of Madinah; Ibn al-Athir, al-Nihaya, on "keeper of the fire"
Out of respect, the Prophet ﷺ is never depicted, and people are shown only from behind.
Made with
- Narration: حذيفة العماري, a recorded voice-over; the animation, captions and sound are timed to the recording.
- 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): Playpen Sans Arabic, Marhey, 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_caravan_walk — house `amb_desert_dusk_wind.wav` (#666175) + Footsteps ... walking on dry sand in the desert + creaky-leather.wav + house `sfx_rope_creak.wav` (#231438) by felix.blume, felix.blume, isbeorn, 6polnic, CC0 1.0 (all). Edits: designed bed (no camel-walking recording exists under CC0): dusk wind x2 + #705743 steps 0.4-35 s slowed/pitched x0.8, HPF 50, LPF 1.6 kHz (heavy padded gait), 3 dB under the wind + #388307 leather squeaks (HPF 150, LPF 5 kHz) every 3-5 s and a rope creak every third squeak, none across the seam; no bells; 40 s seamless loop, -26 LUFS; 48k/16-bit
- amb_dawn_birds_soft — #210091 "room small night" by Yuval, CC0 1.0; #331511 "5am_voegel_abudhabi_park.flac" by nikitralala, CC0 1.0. Edits: room hush 325-373 s (HPF 50, LPF 9 kHz) + birds 14-62 s (HPF 1.2 kHz, -12 dB under the hush; the source's later distant Athan at 2:40+ is not used); each looped, 45 s seamless loop (2 s crossfade), -26 LUFS
- 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_desert_wind_gentle — Looping Gentle Wind Ambience on an Open Desert Plain.wav (Freesound) by dhallcomposer, CC0 1.0. Edits: source 2.0-38.0 s; highpass=f=50:poles=2; gentle dry wind on an open desert plain (Hijaz wadi, dusk); 30 s seamless loop, -24 LUFS; 48k/16-bit
- amb_fire_crackle — #363092 "Fire Crackle and Flames 002" by TheWoodlandNomad, CC0 1.0. Edits: 10 s seamless crackle loop, -24 LUFS
- amb_jm_hollow_wind — #843069 "A light breeze, the rustle of reeds. The rustle of dry grass" by ReflektWave, CC0 1.0. Edits: cut 12.0-36.0 s; HPF 120 Hz x2, spike limiter; 22 s seamless loop (2 s crossfade), -24 LUFS
- amb_jm_palm_rustle — #423800 "Wind through Palm Trees.wav" by klangfabrik, CC0 1.0. Edits: cut 8.0-30.5 s; HPF 100 Hz; 20 s seamless loop (2 s crossfade), -24 LUFS
- amb_lamp_flame_soft — fire small campfire crackling short +air tone.flac (Freesound) by kyles, CC0 1.0. Edits: source 1.0-27.2 s; HPF 150 Hz, LPF 4.5 kHz (a small soft flame: oil lamp or brazier at night); 24 s seamless loop (2 s crossfade, start picked where the junction has no pop); -29.9 LUFS (the -28 target is capped by the -1 dBFS peak ceiling); 48k/16-bit
- amb_market_murmur — Market in Africa, in the small village of Diafarabé (Mali) (Freesound) by felix.blume, CC0 1.0. Edits: source 32.6-78.6 s (even open-air murmur with a few far sheep/goat bleats; no shouts, bells, engines, music or words that can be made out in this window; the source has a hand bell after 2:00, excluded); HPF 180 Hz, LPF 12 kHz; 44 s seamless loop (2 s crossfade), -26 LUFS; 48k/16-bit
- amb_night — #522299 "Crickets At Night - Raw sound" by Defelozedd94, CC0 1.0; #165526 "Wind singing in the mountain, some night cricket in background" by felix.blume, CC0 1.0. Edits: mixed 55/45 (RMS matched), 20 s seamless loop (2 s crossfade), -26 LUFS
- amb_oasis_morning — house `amb_palm_wind.wav` (#423800) + Birds Desert Morn (Freesound) by klangfabrik + cyanidecup45, CC0 1.0 (both). Edits: palm-frond wind (45 s loop) + #732076 0.5-27.9 s (HPF 300, LPF 10 kHz; small birds and a cooing dove) looped 22.5 s x2, 6 dB under the wind; Madinah oasis morning; 45 s seamless loop, -26 LUFS; 48k/16-bit
- amb_palm_orchard_breeze — #423800 "Wind through Palm Trees.wav" by klangfabrik, CC0 1.0; #517526 "dove calling with out other side noise" by idreesbari, CC0 1.0. Edits: palm wind src 4.0-78.5 s, HPF 120 Hz, LPF ~4.2 kHz, -3 dB high shelf, -4 dB at 560 Hz; 72 s seamless loop (2.5 s crossfade) with slow loop-periodic ±4 dB swells that darken in the lulls; 3 laughing-dove phrases (src 0.60-1.75, 6.15-7.60, 17.50-18.90 s; band-limited 250 Hz-3 kHz, short diffuse echo) placed at 11.0 / 34.5 / 55.0 s; -24 LUFS. Made for fasting-monday-thursday (Madinah palm orchard, late morning)
- amb_palm_wind — #423800 "Wind through Palm Trees.wav" by klangfabrik, CC0 1.0. Edits: source 35-83 s; HPF 120 Hz (removes mic buffeting); 45 s seamless loop (2 s crossfade), -24 LUFS
- amb_predawn_room — #210091 "room small night" by Yuval, CC0 1.0. Edits: source 270-323 s (clean stretch, no footsteps); HPF 50 Hz, LPF 9 kHz; 50 s seamless loop (2 s crossfade), -26 LUFS
- amb_stone_room_quiet — AMB Dans une grande eglise.WAV (Freesound) by Zetheyo, CC0 1.0. Edits: two calm stretches 84.0-103.0 s and 164.2-184.1 s joined with a 2 s crossfade (no steps, chair scrapes, coughs or bells; the source has bells at ~37, ~147 and ~241-252 s, and footsteps elsewhere, all excluded); HPF 200 Hz (hall hum/rumble), LPF 8 kHz, gentle fast compression, slow levelling; a near-empty stone nave with a far, unintelligible murmur, no singing; 34.84 s seamless loop (2 s crossfade), -26 LUFS; 48k/16-bit. Quiet source (about -47 dBFS median): keep it low in the mix
- sfx_blind_click — #635786 "window residential slide open close click latch various" by kyles, CC0 1.0. Edits: cut 1.38-1.66 s (one latch click); HPF 120 Hz; trim, fades, peak -1 dBFS
- sfx_camel_groan_1 — S035_Camels_Mono.wav (Freesound) by Pól, CC0 1.0. Edits: source 11.55-14.75 s; HPF 60 Hz; one camel groan; trim, fades, peak -1 dBFS; 48k/16-bit
- 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_chain_rattle_1 — Light chains - Prison slavery (Freesound) by Vrymaa, CC0 1.0. Edits: source 8.10-9.40 s; HPF 80 Hz; light chain rattle; trim, fades, peak -1 dBFS; 48k/16-bit
- sfx_chain_shackle_1 — Chains - heavy (Freesound) by Vrymaa, CC0 1.0. Edits: source 0.40-1.40 s; HPF 80 Hz; heavy iron chain clank; trim, fades, peak -1 dBFS; 48k/16-bit
- sfx_chain_shackle_2 — Chain Drag Floor.flac (Freesound) by Hitrison, CC0 1.0. Edits: source 4.85-8.00 s; HPF 70 Hz; iron chain dragged on a hard floor, ending in a clank; trim, fades, peak -1 dBFS; 48k/16-bit
- 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_3 — #320144 "Blanket Movement 6" by OwlStorm, CC0 1.0. Edits: cut 0.00-1.16 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_dream_shimmer_short — synthesized for this series: Same engine, 1.6 s dense sparkle sting.
- sfx_fire_ignite — #186374 "Bonfire Being Lit" by samararaine, CC0 1.0. Edits: cut 1.00-4.50 s; HPF 40 Hz; trim, fades, peak -1 dBFS
- sfx_jm_basket — #288943 "suitcase-down-4.aif" (wicker case set down) by toefur, CC0 1.0. Edits: cut 0.00-0.85 s; HPF 60 Hz; trim, fades, peak -1 dBFS
- sfx_jm_wood_thunk — #669467 "SFX_wood_stone_floor_axe_handling_drop.wav" by EricsSoundschmiede, CC0 1.0. Edits: cut 0.05-1.50 s; HPF 40 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_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_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_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_rope_creak — #231438 "hamp rope creaks" by 6polnic, CC0 1.0. Edits: cut 6.64-7.38 s; HPF 90 Hz; trim, fades, peak -1 dBFS (true peak about +0.3 dBTP)
- sfx_thread_creak — #862995 "26.07.04- Creaky Playground Swing - Rope Friction 1" by Valerie-Vivegnis, CC0 1.0. Edits: cut 24.50-25.05 s (one creak); HPF 300 Hz; trim, fades, peak -1 dBFS
- sfx_thread_pull_2 — #646586 "Sewing cloth.wav" by heifabaisi, CC0 1.0. Edits: cut 29.15-30.10 s; HPF 100 Hz,FFT denoise 10 dB (floor -60); 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_1 — #701104 "Whoosh stereo light (transition)" by xkeril, CC0 1.0. Edits: cut 0.10-2.32 s; no EQ; trim, fades, peak -1 dBFS
- 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_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