Skip to content
Docs
Open Promoeyes
Loopcast Live

Loopcast Live

One take and no cut: the camera reads a live room close and oblique, battle bar, guests, gifts, chat, then pulls back to the whole page, which stays live the entire time.

A single free-standing slab about a metre wide hanging in a dark void, with nothing else, lit from behind by soft coloured glows and a wash that bleed around its edges. Six beats over 33 s in one close drifting camera: a grazing macro, a slow move down and sweep with racking focus, a square-on hold, a low tracking pass, a rise, then one long pull back to the whole slab, still drifting.

Length
33 s
Scenes
1
Device
chrome
Style
abstract
Camera
continuous take, ultra closeup, tracking, rack focus, pull back

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

//
    LOOPCAST LIVE — 33 s, one take, no voice-over. The reference still (the Loopcast LIVE web room:
    nav, a 2 × 2 multi-guest battle, gift tray, viewers and chat) rebuilt as ONE free-standing
    ui3d, 1078 × 728 mm, hanging in a dark void. Nothing else is in the world. The camera never
    cuts: it reads the page beat by beat, close and oblique, and the page is live the whole time.

    THE PANEL. tiktok-live.screens.html (tt-page 1480 × 1000 css + the chat-feed list) →
    scripts/html-screens.mts → tiktok-live.screens.json, pasted below as the ui3d's children.
    The stage is in the converter's mm (269.44 × 182.05); world_width scales it ×4, so a stage
    unit is 4 world mm and a lift of z=100 (0.01 per unit) is 4 mm.
      world(sx, sy) = (4·sx − 538.88, 364.1 − 4·sy, lift)        — the landmarks the camera aims at:
        battle bar  y 292.7 · x −353 → 257 ("5913" at −328)   timer pill (−47, 274.5)
        tiles       1 (−203, 166) · 2 (107, 166) · 3 (−203, −115) · 4 (107, −115)
        gift pills  gn-1 (−275, −127) · gn-2 (−275, −168) · combo (−197)
        gift tray   y −291 (icons) · Rose −313 · Lyric Mail −77 · coin box (223, −301)
        chat        viewport x 270 → 529, y 221 → −309 · input (382, −331) · hearts (501, −287)
        top viewers (399, 283)
    Edited after conversion (and only these):
      · the two full-page wrapper cards are gone: the page's black IS the void, and the raster
        budget that went to 98 000 mm² of flat black goes to the closeups instead. The nav keeps a
        black panel of its own (nav-bg): thin type over the far void inherits three's DOF blur
      · every item carries z=0: the engine's default z is a painter counter (0.01 a unit per
        item, shared down the tree), which floats late, deep items centimetres off the panel at
        a grazing angle. Coplanar is safe (free ui3d panels paint in document order); the lifts
        below are placed by hand instead:
          overlays on the guests 4 mm · battle bar + clock 6 · gift pills 10 (combo 11) ·
          tray 2 + its gift icons 8 · host pill 3 · nav 1.6–2.4 · heart button 3.2 · hearts 12
      · `name=<icon>-filled` → `name=<icon> variant=filled` (the webfont has no -filled glyphs,
        so the HTML renders the outline and data-icon carries the filled name through)
      · `color=transparent` on the gift images (the fallback fill is painted behind a PNG's alpha)
      · the tracks (scroll, swaps, pills, hearts, Ken Burns) and the LIVE badge pulses
    Two engine limits the page is built around (both also fixed in the HTML):
      · card meshes ignore clip planes on WebGPU (text and images do clip), so no card may leave
        its parent's box: the battle split is a blue cover sliding off the pink, the chat has
        opaque covers above and below its viewport, scrolls only 182 px, and keeps arriving rows
        invisible until they land; the gift pills enter inside their tile
      · identical-looking icon surfaces are shared by size + colour + variant (the NAME is not in
        the key), so two different glyphs of one colour never share a size
    Raster density: a free ui3d rasters at most one frame-width across the whole stage unless
    the camera FRAMES an item inside it, so the gift-pill beat is a node-framed key (gn-1,
    fill 58): that is what lifts the whole page to closeup density.

    LOOK. Unlit UI, exact hexes: no tone curve (film_grain output_transform=2 is the sRGB
    encode), grain 0.03, vignette. Depth of field on three's pass, racked per key. Behind the
    panel only light: a Loopcast-red glow upper right, a cyan glow lower left, a violet wash far
    back, drifting slowly.

    THE TAKE (frame smooth=0.55, so the lens chases the keys and never dead-stops):
       0.0– 4.4  the battle bar: a grazing macro holds on the pink score as it ticks 5871 → 5894
                 → 5913 (0.8, 1.6), then pulls back along the bar as the split shoves right
                 (3.4, 4.1); the clock o