How did a prostitute enter Paradise? — credits
The Prophet ﷺ told of a woman of the Children of Israel, known for prostitution, who drew water from a well with her shoe for a dog dying of thirst, and she was forgiven because of it; scholars say that forgiveness meant Paradise. A hand-made-style paper-collage animation, rendered live in your browser with plain JavaScript and canvas.
Sources for the story
- Sahih al-Bukhari 3467 and Sahih Muslim 2245 (Abu Hurayrah): a prostitute of the Children of Israel saw a dog circling a well, almost killed by thirst; she took off her leather sock (mūq), gave it water, and was forgiven because of it.
- Sahih al-Bukhari 3321: she tied her leather sock (khuff) with her head-cover (khimār) and drew water for the dog; "so she was forgiven because of that".
- Sahih Muslim 2245: "on a hot day", the dog circling the well with its tongue out from thirst.
- Sahih al-Bukhari 173 (a separate narration about a man who watered a dog): "Allah thanked him and admitted him into Paradise".
- 'Abd al-Karim al-Khudayr, Sharh Jawami' al-Akhbar 8/12-13, and Salah al-Buyut 1/105-106: scholars who state that her forgiveness meant Paradise.
- Ibn Taymiyyah, quoted in al-Shirk fi al-Qadim wa al-Hadith 2/1281-1282 and al-Mustadrak 'ala Majmu' al-Fatawa 1/224-225: she was forgiven for the sincere faith in her heart, not the act alone.
- Sahih Muslim 2626 (Abu Dharr, a separate occasion): "Do not belittle any good deed."
- Commentary on the words khuff, mūq and khimār: al-Nawawi, Sharh Sahih Muslim 14/241; al-Qastallani, Irshad al-Sari 5/315-316.
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_desert_wind_day — #81798 "Silencyo_CC_Wind Mistral_gusts_dry grassinsects_distant cars.aif" by silencyo, CC0 1.0. Edits: cut 110.0-145.0 s (a stretch with no audible traffic, insects or birds); 4-pole HPF 150 Hz (removes low rumble/distant hum); 30 s seamless loop (2 s crossfade), -25 LUFS
- amb_well_interior — #164785 "INT Cave Room tone.wav" by deleted_user_2104797, CC0 1.0; #395258 "Cave Water Droplet 1.WAV" by Selulance, CC0 1.0; #395259 "Cave Water Droplet 2.wav" by Selulance, CC0 1.0; #11226 "Tunnel Drip Hit.flac" by jnr hacksaw, CC0 1.0. Edits: designed: cave roomtone bed (cut 20-46 s, HPF 35 Hz, LPF 9 kHz) with 5 single drips with their own echo tails placed at 2.2/7.4/11.9/15.6/18.3 s (HPF 150 Hz, two of them pitched ±6%); 24 s seamless loop, -25 LUFS. The bed is mostly sub-150 Hz rumble
- 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_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_dog_lapping — #860331 "Dog drinking water" by artemditkovsky, CC0 1.0. Edits: cut 2.00-6.60 s; HPF 80 Hz, FFT denoise 10 dB (floor -60); trim, fades, peak -1 dBFS
- sfx_dog_panting — #511319 "Dog Panting" by onehugeeye, CC0 1.0. Edits: cut 0.00-3.75 s; HPF 70 Hz; trim, fades, peak -1 dBFS
- sfx_dog_whimper — #118970 "Dog Whine 5.wav" by esperri, CC0 1.0. Edits: cut 0.10-1.30 s (first of two whines); HPF 120 Hz; trim, fades, peak -1 dBFS
- sfx_dream_shimmer_short — synthesized for this series: Same engine, 1.6 s dense sparkle sting.
- sfx_heat_cicadas — #483917 "athens cicadas" by jenkmasler, CC0 1.0. Edits: cut 335.0-375.0 s; HPF 200 Hz, LPF 11 kHz; 30 s seamless loop (2 s crossfade), -26 LUFS. Non-musical insect bed
- sfx_leather_creak — #734598 "Leather - Creak, soft" by Vrymaa, CC0 1.0. Edits: cut 10.00-11.80 s; HPF 80 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_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_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_scissors_snip — #272035 "Scissors Cutting Paper" by aldenroth2, CC0 1.0. Edits: cut 0.10-1.79 s; HPF 100 Hz,FFT denoise 10 dB (floor -65); trim, fades, peak -1 dBFS
- sfx_stamp_thump_1 — #448474 "es-stamp.wav" by eddies2000, CC0 1.0. Edits: cut 0.95-1.65 s; HPF 40 Hz; 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_scrape_climb — #816743 "Climbing a rock, shoes and hands" by YannSauvin, CC0 1.0. Edits: cut 31.00-34.00 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_water_drip_echo — #395258 "Cave Water Droplet 1.WAV" by Selulance, CC0 1.0; #11226 "Tunnel Drip Hit.flac" by jnr hacksaw, CC0 1.0; #395259 "Cave Water Droplet 2.wav" by Selulance, CC0 1.0. Edits: 3 single drips with echo tails joined in sequence (each tail decays before the next; onsets about 0.0, 3.0 and 7.5 s); HPF 150 Hz, each peak-matched, 0.6 s tail fades; peak -1 dBFS
- sfx_water_pour_trickle — #770039 "Water - Pouring on the ground, in a jar" by Vrymaa, CC0 1.0. Edits: cut 0.20-4.00 s; HPF 60 Hz; trim, fades (0.6 s out), peak -1 dBFS
- sfx_water_scoop — #454292 "water scoop drip with hand bathroom acoustic.flac" by kyles, CC0 1.0. Edits: cut 6.00-8.20 s; HPF 80 Hz; 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.