Villa Duna

How Villa Duna was made

Villa Duna doesn’t exist. It’s a concept house, drawn with an image model, filmed with a video model and built into a website by hand. These are the six steps, with the prompts that worked and the ones that didn’t.

Villa Duna from the dune path in morning light
  1. A brief before any pictures

    The house had to be quiet: two thin roofs over a glass room, oak, black steel and concrete, raised a little above the dunes. The idea fits in three words, shelter in the open, and every prompt after this was written to it.

  2. Four stills of one house

    The front view was generated first, with Nano Banana Pro. It then went in as the reference image for every other still, so the roofs, the columns and the light stayed the same from shot to shot. The blue hour view keeps the morning’s exact framing, which is what lets the site turn day into night without the camera moving.

    • The house from the dune path in morning light

      Morning, from the dune path. The reference for everything else.

    • The deck under the long roof, with steps down to the dunes

      The deck in afternoon sun.

    • Two linen sofas facing the concrete fireplace, the sea on both sides

      The living room, where the walk ends.

    • The house at blue hour from the same spot, lit from inside

      Blue hour, in exactly the morning’s framing.

  3. One camera move

    The walk from the dune path into the living room is a single Higgsfield clip. It was given the front view as its first frame and the living room as its last, so it lands exactly on the still where the next chapter begins.

    Smooth, slow cinematic dolly forward along the dune path, up the timber steps, through the open glass doors into the living room. Steady camera, no shake, no cuts, constant speed, soft morning light, eye level.

    Constant speed matters more than it sounds: scrolling exposes every speed change. The clip came out at 1080p, visibly softer than the stills, so it was upscaled to 2K with FLUX.3 Upscale.

    A crop of the clip at 1080p: the fireplace and sofas, slightly blurred
    The clip as generated, 1080p.
    The same crop after upscaling to 2K: sharper edges on the fireplace, the sofas and the waves
    After upscaling to 2K.
  4. Scrolling instead of playing

    Browsers jump around a video slowly, especially backwards, so the clip never plays as a video. It’s cut into 144 still frames, and the page draws whichever frame matches your scroll onto a canvas. The frames are AVIF, which came out 45% smaller than WebP and slightly closer to the original, so the whole walk is about 11 MB on a laptop and 3 MB on a phone.

    Dusk reuses the same frames played backwards under a blue wash, and ends on the blue hour still. The still and the video’s first frame didn’t quite match, so the last frame is nudged 1.5% larger and a few pixels right, measured rather than eyeballed, and the cross-fade between them is seamless.

  5. Close-ups, and a wall that took four tries

    The four materials are macro stills made with the front view as a reference, so their light matches the house. Oak, steel and linen worked first time. The concrete wall didn’t:

    • A wall that reads as timber boards, not concrete

      First try: the formwork came out as timber boards.

    • Concrete with a staggered pattern like brickwork

      Second: a staggered, brick-like pattern.

    • A near copy of the front view instead of a close-up

      Third: naming the reference made it copy the shot.

    • The final close-up: board-formed concrete with long horizontal lines

      Fourth: describing the camera angle worked.

    The lesson: an image model copies the composition of a reference it’s told to use. To get a new angle, describe the camera, and use the reference only for colour and light.

  6. The site

    The site is built with Astro, which turns it into plain HTML with very little JavaScript and leaves the download budget for pictures. GSAP’s ScrollTrigger ties each scene to the scroll, and Lenis smooths the scroll without changing its speed. With reduced motion turned on, every scene becomes still pictures and text, and nothing is lost.