Skip to content
Docs
Open Promoeyes
Hotel Bed at Dawn

Hotel Bed at Dawn

A white-on-white hotel bed at dawn: one low warm sun rakes the linen while a half-open foldable shows a sunrise alarm on its cover display.

A hotel bedroom at dawn with a soft duvet, three pillows, a padded headboard, a cup on its saucer and glass doors, lit by one low warm sun that leaves deep soft shadows in the linen folds. One unhurried 13 s take in four beats: a low macro slide across the folds, a close hold, a rise over the cup with long shadows, then a pull out and drift.

Length
13 s
Scenes
1
Device
iphone-fold
Style
realistic place
Camera
push in, ultra closeup, rack focus

The AI keeps this film's shots, timing and camera, and puts your app in it.

//
    REALISM HOTEL — "Hotel bed at dawn" (see SCENE.md)

    The white-on-white member of the realism series: a hotel bed at dawn, one low warm sun through the
    glass doors, almost everything in frame white — the duvet, three pillows, the headboard, a cup on its
    saucer — so the tests are cloth sheen at a grazing sun, deep (never black) shadows in the folds,
    white-on-white bounce, a warm sun against a cool room, and a tone curve that keeps the whites apart.

    WORLD  cayley_interior_2k mounted as a grounded dome (height 1500, radius 6000): its glass doors sit
           at +x, so every shot that looks +x has the window behind the bed.
    SUN    the HDR has no sun disc (an overcast morning), so the sun is ours: a directional light 11° up at
           azimuth +20° (from +x toward +z) — inside the HDR's glass doors, which span about -45..+45°
           round +x — direction (0.922, 0.191, 0.336). Shadows fall toward -x / -z: toward the camera.
    LINEN  built, not generated: linen/build_linen.py writes models/rh-linen.glb (folds, swells, a fine
           wrinkle, the roll and the hanging drop; see its header). Props sit in the shallow dishes it
           presses under them; linen/place.py prints every rest y below (y = the highest linen point
           under the prop's underside, minus how far it sinks in).
    PROPS  TRELLIS returned no mesh (refused for the shared Runware balance, then 500 / 429 / timeouts
           after the top-up: models.log), so the cup, pillow, glasses and lamp are built meshes from linen/build_props.py at their real sizes, scale 1; the
           book and the key card are primitives. Two TRELLIS jobs landed late: the nightstand and the rolled duvet.
    SCREEN Aubade, a fictional dawn alarm for travellers, on the cover display of the half-open fold
           (realism-hotel.screens.html → scripts/html-screens.mts): 06:40 ringing, slid away at 4.2 s,
           then "Good morning" and today's two things arriving in order. No idle pulse on the alarm: the
           path tracer rebuilds its BVH on every frame a screen animates, and a pulse running from 0 s
           exhausted its memory at frame 179 of the first traced export; the screen moves 4.2–6.5 s only.
    TONE   output tone_mapping=neutral, authored: the brief asks for whites kept apart, and the traced
           render takes no `realism=tone`. PBR Neutral leaves values under ~0.8 alone (the screen holds)
           and rolls the sunlit linen off instead of clipping it. No authored fog (it would flatten the
           grounded dome in the path tracer); haze is the render-time `haze` word.
    Preview: http://localhost:4444/runtime?project=projects/templates/realism-hotel/realism-hotel.promo
promo#realism-hotel(width=1920 height=1080 fps=30)

  scene#dawn(duration=13 transition=none)
    renderer(tone_mapping=None exposure=1 shadow_map=true shadow_map_type=pcf-soft)
    // 50 mm full-frame (fov 27) for the close beats, 34 for the wide. Four beats:
    //   0–2.8 s   a low macro across the folds (100 mm over the linen: lower, the realism keyshadow word stair-steps the grazing foreground), sliding toward the standing fold
    //   2.8–6.6   on the cover display, ~320 mm off its glass; the alarm is slid away at 4.2, the day arrives
    //   6.6–9.4   rise and swing over the cup, the glasses and the key card: long shadows toward us
    //   9.4–13    pull out to the wide — bed, pillows, nightstand, the window behind — and drift
    // Focus follows the look-at, so the raster DOF stays on the subject.
    camera(dof_pass=three type=perspective fov=27 near=10 far=90000 position="-960 700 250" look_at="-430 618 -120" dof_range=260 dof_blur=7)
      properties
        frame(smooth=0.3)
          keyframes
            kf(time=0 position="-960 700 250" look_at="-430 618 -120" fov=27 dof_range=260 dof_blur=7)
            kf(time=2.8 position="-860 700 110" look_at="-410 634 -125" fov=27 dof_range=260 dof_blur=7 easing=easeInOutSine)