Why do we fast on Mondays and Thursdays? — credits
A one-minute hand-made-style paper-collage animation, rendered live in your browser with plain JavaScript and canvas.
Sources for the story
- Jamiʿ at-Tirmidhi 745 (ʿAʾisha): the Prophet ﷺ would make a point of fasting Monday and Thursday («يَتَحَرَّى»).
- Sunan al-Nasaʾi 2358 (Usama ibn Zayd, hasan): Usama asked about the two days he always fasted; the Prophet ﷺ said: “Those are two days on which deeds are presented to the Lord of the worlds, and I love for my deeds to be presented while I am fasting.” Also Jamiʿ at-Tirmidhi 747 (Abu Hurayra).
- Sahih Muslim 1162 (Abu Qatada): asked about fasting on Monday, he ﷺ said: “On it I was born, and on it revelation came down to me.”
- Sahih Muslim 2565 (Abu Hurayra): “The gates of Paradise are opened on Monday and Thursday, and every servant who associates nothing with Allah is forgiven, except a man who has rancour between him and his brother. It is said: ‘Hold these two back until they make peace.’” See also Sunan Ibn Majah 1740.
- Fasting these two days is a recommended sunnah, not an obligation (al-Nawawi, al-Majmuʿ 6:385; Ibn ʿUthaymin, Majmuʿ Fatawa 20:15).
- The source card at the end shows the book behind the circled citation in Qaf's answer: Nidaʾ al-Rayyan fi Fiqh al-Sawm wa Fadl Ramadan, Sayyid Husayn al-ʿAffani, vol. 1, pp. 509–510.
- Research and verification with Qaf, which retrieves classical sources with citations (including Tuhfat al-Ahwadhi, Sharh al-Nawawi ʿala Muslim, Lataʾif al-Maʿarif and Mirqat al-Mafatih).
Out of respect, the Prophet ﷺ is never depicted; his words appear on a scroll or in calligraphy, and all people are shown only from behind.
Made with
- Narration: Google Gemini 3.8 Flash TTS (voice “Algieba”), directed and edited for this film. The two closing lines are shared with the companion film “How did the Athan start?”.
- 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 film.
Sound
No music is used. All sound effects are CC0 unless noted.
- amb_desert_day — #454361 "wind light desert day steady eerie with crickets.flac" by kyles, CC0 1.0. Edits: 20 s seamless loop (2 s crossfade), 4-pole HPF 220 Hz (removes wind buffet / distant low rumble), -26 LUFS
- amb_evening — #733667 "Ambient Birds Field Evening" by Salomé_Lubczanski, CC0 1.0. Edits: 20 s seamless loop (2 s crossfade), 4-pole HPF 400 Hz (removes distant low hum), -26 LUFS
- 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
- athan_3 — Adhan Recordings from Doha, Qatar - 04 Maghrib Adhan (recorded 2013-2014) (Internet Archive) by Uploader "Doha, Qatar" (muezzin not named), Public Domain Mark 1.0 (as labelled by uploader). Edits: source 0-139.6 s; trimmed (final t = source t - 0.010 s), 70 Hz high-pass, -16 LUFS, fades, 48k/16-bit stereo
- 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_dates_plate — #656727 "Pouring Potatoes Onto a Table.wav" by dhallcomposer, CC0 1.0; #813609 "Sound of Ceramic Dishes on Wood" by Sirnak, CC0 1.0. Edits: muted thuds (varispeed 0.9x, LPF 2 kHz) + two ceramic ticks at -15/-18 dB (HPF 800), peak -1 dBFS
- sfx_dates_plate_2 — #656727 "Pouring Potatoes Onto a Table.wav" by dhallcomposer, CC0 1.0. Edits: cut 5.97-6.80 s; HPF 60 Hz,varispeed 0.85x,LPF 1600 Hz; trim, fades, peak -1 dBFS
- sfx_dream_glitter — #211624 "Magic Wand Glitter" by qubodup, CC0 1.0. Edits: cut 4.70-7.95 s; no EQ; trim, fades, peak -1 dBFS
- sfx_dream_shimmer_1 — synthesized for this film: Sparkle texture: ~190 tiny decaying inharmonic sine grains (2.5-9 kHz, random pitch/pan/length) + band-swept airy noise swell, short cross-channel diffusion taps. Non-instrumental.
- sfx_dream_shimmer_2 — synthesized for this film: Same engine, 6 s, 3-10 kHz, sparser - for the dream sequence.
- sfx_dream_shimmer_short — synthesized for this film: 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_gate_open_soft — #456763 "Gate door drawbridge wooden creaky opens closes hinge.wav" by WavJunction.com, CC0 1.0. Edits: cut 2.95-4.95 s; HPF 60 Hz,FFT denoise 6 dB (floor -70); trim, fades, peak -1 dBFS
- sfx_key_tick — synthesized for this film: Soft keyboard key tick synthesized for this film: two exponentially decaying noise bursts (contact + body), band-limited 600 Hz-7 kHz, no tonal content (scripts/synth_tick.py).
- sfx_page_flutter — #320913 "Paper Flutter .wav" by mickdow, CC0 1.0; #789465 "Paper flipping in wind" by jorgemt, CC0 1.0. Edits: book riffle + paper flapping in wind, RMS-matched 65/50, 0.35 s swell in, decay from 1.2 s, rising L->R pan on flapping layer
- sfx_page_flutter_2 — #320913 "Paper Flutter .wav" by mickdow, CC0 1.0. Edits: cut 0.00-2.90 s; HPF 150 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_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_pop_soft_1 — #776443 "pop out, bubble, soft bursting" by chaferwitt, CC0 1.0. Edits: cut 0.05-0.40 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_pop_soft_2 — #757257 "Wine cork" by HenKonen, CC0 1.0. Edits: cut 0.00-0.34 s; HPF 80 Hz,LPF 7000 Hz; trim, fades, peak -1 dBFS
- sfx_pop_soft_3 — #202230 "Pop sound" by deraj, CC0 1.0. Edits: cut 0.10-0.55 s; HPF 80 Hz; trim, fades, peak -1 dBFS
- sfx_sparkle_soft — synthesized for this film: Non-instrumental airy sparkle: stereo noise through a wide (1.6-octave) log-Gaussian band-pass sweeping 2.5 -> 8 kHz with 0.4 s swell / 0.5 s decay, plus ~700 sub-2 ms high-passed noise "dust" clicks (too short to carry pitch) and short cross-channel diffusion taps. No sinusoids, so no tonal/chime content.
- 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_tape_rip_1 — #405386 "masking_tape_2.wav" by jaguarrrr, CC0 1.0. Edits: cut 0.20-0.95 s; HPF 100 Hz; trim, fades, peak -1 dBFS
- sfx_tape_rip_2 — #650362 "tape.wav" by Ches_Bar, CC0 1.0. Edits: cut 0.38-1.30 s; HPF 100 Hz; trim, fades, peak -1 dBFS
- sfx_water_pour — #120527 "Pouring water fast into a glass.wav" by PlayPauseAndRewind, CC0 1.0. Edits: cut 0.15-2.55 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 film: White noise through a time-varying log-Gaussian band-pass sweeping 300 Hz -> 2.2 kHz, swell envelope, slow L->R pan.
- sfx_wind_soft — #146932 "Wind Gust" by crashoverride6, CC0 1.0. Edits: cut 0.15-4.10 s; HPF 50 Hz; trim, fades, peak -1 dBFS