Rainy Night Windowsill
Rainy Night Windowsill
A phone leans on a wet windowsill at night: its screen is the brightest thing in the room, a candle the only other light, and rain beads melt the city into bokeh.
A dark room at night with a wet painted windowsill, a window of rain beads that refract the city lights into round discs, and a single candle giving a small warm pool against cool night light. One slow, intimate 13 s take in four beats: a macro on the beads drifting down, a travel and hold, a pull out and round to the whole sill and window, then a slow drift down toward the candle.
- Length
- 13 s
- Scenes
- 1
- Device
- iphone
- Style
- realistic place
- Camera
- push in, rack focus, ultra closeup
//
REALISM RAIN — "Rainy night windowsill" (see SCENE.md)
The low-key member of the realism series: a phone leaning on a wet painted windowsill at
night, its screen the brightest thing in the room, a candle the only other practical, rain
beads on the glass refracting a city that the lens melts into round discs. Props: TRELLIS
from FLUX (models/, models.json); the beads, the puddles, the flame, the window and the
city are primitives so the water can be real transmission and the lights real emitters.
SET sill top y = 900, z −260…+40 (wall face z = 0, a 260 mm reveal); window opening
x −680…680, y 900…2300; frame front face z = −222, the glass plane z = −250 (no pane
modelled, see the note above the beads); the city 8–40 m out along −z.
Y props y = 900 + scale × |minY| (models/*.json).
SCREEN Pluvia, a fictional minute-by-minute rain app (realism-rain.screens.html →
scripts/html-screens.mts): "Rain stops in 18 min" turns to "Dry from 21:55" and a
dry-spell card arrives while the camera holds on the phone.
LIGHT no sun, no fog: studio_small_04_2k at 0.05 for lighting only (rule C62, night),
the screen (+ an area light at its glass), the candle (a flickering point), a faint
cool spill through the window, hemisphere 0.025.
Authored look is the series' common case: no tone curve (sRGB only), SSAA 4. Everything
else is a render-time switch on the URL (gpu/realism, gpu/pathtrace).
Preview: http://localhost:4444/runtime?project=projects/templates/realism-rain/realism-rain.promo
promo#realism-rain(width=1920 height=1080 fps=30)
scene#sill(duration=13 transition=none)
renderer(tone_mapping=None exposure=1 shadow_map=true shadow_map_type=pcf-soft)
// fov 30 for the two close beats, 36 for the wide. Four beats, focus on the look-at:
// 0–3.2 s macro on the rain beads above the phone, ~143 mm off the glass; a slow drift down
// 3.2–4.6 travel to the phone, ~344 mm off its glass along its normal; hold to 7.0
// (the forecast turns at 5.2, the dry-spell card lands at 5.8)
// 7.0–9.8 pull out and round to the right: the whole sill, the window, the city discs
// 9.8–13 a slow drift down and left toward the candle
camera(dof_pass=three type=perspective fov=30 near=8 far=90000 position="46 1160 -108" look_at="24 1146 -251" dof_range=45 dof_blur=44)
properties
frame(smooth=0.3)
keyframes
kf(time=0 position="46 1160 -108" look_at="24 1146 -251" fov=30 dof_range=45 dof_blur=44)
kf(time=3.2 position="30 1132 -112" look_at="10 1122 -251" fov=30 dof_range=45 dof_blur=44 easing=easeInOutSine)
kf(time=4.6 position="-60 1067 128" look_at="-90 978 -233" fov=30 dof_range=140 dof_blur=34 easing=easeInOutCubic)
kf(time=7 position="-62 1063 120" look_at="-90 978 -233" fov=30 dof_range=140 dof_blur=34 easing=easeInOutSine)
kf(time=9.8 position="300 1330 920" look_at="-10 962 -150" fov=34 dof_range=700 dof_blur=28 easing=easeInOutCubic)
kf(time=13 position="-210 1045 600" look_at="-215 978 -150" fov=34 dof_range=420 dof_blur=34 easing=easeInOutSine)
postprocessing
step(name=render)
// a lower threshold than a day set: the flame and the city points are what should bloom
step(name=unreal_bloom strength=0.22 radius=0.5 threshold=0.9)
step(name=output tone_mapping=none exposure=1)
step(name=aa method=ssaa samples=4)
// lighting only (rule C62, night ≤ 0.25): the room is closed, the sky outside is the background colour
environment(hdr="studio_small_04_2k" as_background=false intensity=0.05)
background(top=#05070c bottom=#13151b)
// No authored fog (it flattens traced frames); any depth haze is the render-time `haze` word.
lights
// the screen: a small cool panel just off the glass, aimed down-forward at the sill in front
light#screen