Breakfast Kitchen
Breakfast Kitchen
Morning sun comes through a venetian blind in a kitchen and the iPad on the marble shows a cook-along recipe.
A morning kitchen with a veined marble worktop, glossy subway tile, a brushed-steel kettle and canister, a bowl of oranges and a daylight balcony door, cut by hard sun stripes from a venetian blind. One continuous 13 s take in five beats: a low raking macro along the striped marble, a glide to the fruit bowl, a square-on hold, a pull out and round to the wide, then a slow drift.
- Length
- 13 s
- Scenes
- 1
- Device
- ipad
- Style
- realistic place
- Camera
- push in, dolly, ultra closeup
//
REALISM KITCHEN — "Breakfast kitchen, morning blinds" (see SCENE.md)
The third set of the realism series: the sun comes INTO a room through a real venetian blind, so
every render path is judged on a comb of hard stripes — straight bars across a veined marble
worktop, diagonal bars on glossy white subway tile (the same slats projected onto two planes),
a brushed-steel kettle and canister smearing them, sun-lit oranges beside the white tile (bleed).
The HDR is seen: cayley_interior_2k on a grounded dome; its glazed balcony door sits at +x, right
outside our window, so the view through the slats is its daylight and the sun comes from that side.
SUN cayley has no sun disc (its brightest texel is a ceiling downlight, 77° up); its daylight is the
glazed door at φ ≈ −4° in three's equirect lookup → +x. The directional sun comes from that side,
35° up and 35° in front of the window normal: toward-sun s = (0.671, 0.574, 0.470).
Stripe period on the worktop = slat pitch 42 / (0.574 / 0.671) ≈ 49 mm.
BLIND 25 slats 50 × 1.2 at 42 pitch, tilted 22° outer edge up: shadowed share per pitch
50 × (cos 22° × 0.855 − sin 22°) ≈ 21 of 42 → half open.
SET x right, y up, z toward the camera; worktop Y = 900 (cabinets 870 + marble 30), back wall z −640,
window wall x 1300 (opening z −600 → 500, y 1020 → 2150). Props y = 900 + scale × |minY|.
SCREEN Oriel, a fictional cook-along recipe app (realism-kitchen.screens.html → scripts/html-screens.mts);
while the camera holds on the iPad it ticks the zest (5.6 s) and moves to step 4 (6.6 s).
Authored look is the 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-kitchen/realism-kitchen.promo
promo#realism-kitchen(width=1920 height=1080 fps=30)
scene#kitchen(duration=13 transition=none)
renderer(tone_mapping=None exposure=1 shadow_map=true shadow_map_type=pcf-soft)
// Five beats; focus follows the look-at so the raster DOF stays on the subject:
// 0–2.4 s low raking macro from the front right: stripes on marble running into depth, kettle + canister
// 2.4–4.4 glide left to the fruit bowl against the tile (bleed), diagonal stripes on the tile
// 4.4–8.2 onto the iPad screen, square-on, hold (the app ticks at 5.6 and steps at 6.6)
// 8.2–10.6 pull out and round to the wide from the front left: the run, the blind, the dome
// 10.6–13 slow drift
camera(dof_pass=three type=perspective fov=32 near=10 far=40000 position="760 975 280" look_at="880 915 -480" dof_range=260 dof_blur=6)
properties
frame(smooth=0.3)
keyframes
kf(time=0 position="760 975 280" look_at="880 915 -480" fov=32 dof_range=260 dof_blur=6)
kf(time=2.4 position="700 990 200" look_at="860 915 -480" fov=32 dof_range=260 dof_blur=6 easing=easeInOutSine)
kf(time=4.4 position="380 1080 40" look_at="150 960 -560" fov=32 dof_range=300 dof_blur=6 easing=easeInOutCubic)
kf(time=5.2 position="293 1218 142" look_at="431 1045 -372" fov=32 dof_range=300 dof_blur=5 easing=easeInOutCubic)
kf(time=8.2 position="288 1213 148" look_at="431 1045 -372" fov=32 dof_range=300 dof_blur=5 easing=easeInOutSine)
kf(time=10.6 position="-650 1500 2300" look_at="0 1120 -350" fov=40 dof_range=1600 dof_blur=4 easing=easeInOutCubic)
kf(time=13 position="-880 1470 2220" look_at="-20 1110 -360" fov=40 dof_range=1600 dof_blur=4 easing=easeInOutSine)
postprocessing
step(name=render)
step(name=unreal_bloom strength=0.12 radius=0.4 threshold=0.96)
step(name=output tone_mapping=none exposure=1)
step(name=aa method=ssaa samples=4)
// the house past the kitchen: cayley on a grounded dome (capture height ≈ 1500), floor 2 mm under ours.
//