Skip to content
Docs
Open Promoeyes
screen-corners

screen-corners

UIS · SCREEN CORNERS — how a ui3d(overlay=screen) card meets each device's rounded glass. The overlay is a flat plane the engine does NOT mask to the glass, so a square full-screen card shows its corners past the bezel. Every full-screen card on a screen (the root and any full-bleed background) carries r = the glass radius, in mm — one table for all of it: DEVICE_SCREEN_RADIUS_MM (packages/core/units.ts), measured off each device model's screen mesh: iphone 9.1 (rounded-[50px] at 390 px) · ipad 7 (rounded-[29px] at 820 px) laptop 4 (rounded-[13px] at 1152 px) · chrome 1 (rounded-[2px] at 1152 px) html_to_ui sets it on the block it returns; scripts/html-screens.mts does not — give the section the same rounded-[…px] and list `r` in sections.json. One device per scene, yawed and seen close — the angle where a square corner shows: s1 iphone r=0 (wrong: the corners poke past the glass) · s2 iphone r=9.1 s3 ipad r=7 · s4 laptop r=4 (One device per scene on purpose: a second device of the same type in a scene currently draws its screen overlay wrong — missing on the iPhone, dimmed on the iPad and laptop.)

Topic
uis
Scenes
4
Kind
reference rig
//
    UIS · SCREEN CORNERS — how a ui3d(overlay=screen) card meets each device's rounded glass.
    The overlay is a flat plane the engine does NOT mask to the glass, so a square full-screen
    card shows its corners past the bezel. Every full-screen card on a screen (the root and any
    full-bleed background) carries r = the glass radius, in mm — one table for all of it:
    DEVICE_SCREEN_RADIUS_MM (packages/core/units.ts), measured off each device model's screen mesh:
      iphone 9.1 (rounded-[50px] at 390 px) · ipad 7 (rounded-[29px] at 820 px)
      laptop 4 (rounded-[13px] at 1152 px) · chrome 1 (rounded-[2px] at 1152 px)
    html_to_ui sets it on the block it returns; scripts/html-screens.mts does not — give the
    section the same rounded-[…px] and list `r` in sections.json.
    One device per scene, yawed and seen close — the angle where a square corner shows:
      s1 iphone r=0 (wrong: the corners poke past the glass) · s2 iphone r=9.1
      s3 ipad r=7 · s4 laptop r=4
    (One device per scene on purpose: a second device of the same type in a scene currently
    draws its screen overlay wrong — missing on the iPhone, dimmed on the iPad and laptop.)
promo#screen-corners(width=1920 height=1080 fps=30)
  scene#s1-iphone-square(duration=2)
    renderer(tone_mapping=None exposure=1)
    camera(type=perspective fov=30 near=5 far=20000 position="30 125 330" look_at="0 105 0")
    postprocessing
      step(name=render)
      step(name=output tone_mapping=none)
      step(name=aa method=ssaa samples=2)
    background(color=#1c1d22)
    environment(hdr="studio_small_04_2k" as_background=false intensity=0.6)
    iphone#ph-square(safe-top=off position="0 80 0" rotation="0 -22 0")
      ui3d#ph-square-stage(width=71 height=154 overlay=screen lift=0.5)
        card#ph-sq(x=0 y=0 w=71 h=154 r=0 fill=#7fdcae shadow=false clip=true)
          text(x=35.5 y=77 size=6 weight=800 color=#0b1311 align=center origin=center) "r=0"
  scene#s2-iphone-round(duration=2)
    renderer(tone_mapping=None exposure=1)
    camera(type=perspective fov=30 near=5 far=20000 position="30 125 330" look_at="0 105 0")
    postprocessing
      step(name=render)
      step(name=output tone_mapping=none)
      step(name=aa method=ssaa samples=2)
    background(color=#1c1d22)
    environment(hdr="studio_small_04_2k" as_background=false intensity=0.6)
    iphone#ph-round(safe-top=off position="0 80 0" rotation="0 -22 0")
      ui3d#ph-round-stage(width=71 height=154 overlay=screen lift=0.5)
        card#ph-rd(x=0 y=0 w=71 h=154 r=9.1 fill=#7fdcae shadow=false clip=true)
          text(x=35.5 y=77 size=6 weight=800 color=#0b1311 align=center origin=center) "r=9.1"
  scene#s3-ipad(duration=2)
    renderer(tone_mapping=None exposure=1)
    camera(type=perspective fov=30 near=5 far=20000 position="60 150 560" look_at="0 140 0")
    postprocessing
      step(name=render)
      step(name=output tone_mapping=none)
      step(name=aa method=ssaa samples=2)
    background(color=#1c1d22)
    environment(hdr="studio_small_04_2k" as_background=false intensity=0.6)
    ipad#pad-round(position="0 140 0" rotation="0 -22 0")
      ui3d#pad-round-stage(width=197 height=262 overlay=screen lift=0.5)
        card#pad-rd(x=0 y=0 w=197 h=262 r=7 fill=#7fdcae shadow=false clip=true)
          text(x=98.5 y=131 size=14 weight=800 color=#0b1311 align=center origin=center) "r=7"
  scene#s4-laptop(duration=2)
    renderer(tone_mapping=None exposure=1)
    camera(type=perspective fov=30 near=5 far=20000 position="90 240 900" look_at="0 30 -120")
    postprocessing
      step(name=render)
      step(name=output tone_mapping=none)
      step(name=aa method=ssaa samples=2)
    background(color=#1c1d22)
    environment(hdr="studio_small_04_2k" as_background=false intensity=0.6)
    laptop#lap-round(position="0 0 0" rotation="0 -18 0")
      ui3d#lap-round-stage(width=346 height=223 overlay=screen lift=0.5)
        card#lap-rd(x=0 y=0 w=346 h=223 r=4 fill=#7fdcae shadow=false clip=true)