Skip to content
Docs
Open Promoeyes
html-maps

html-maps

HTML → every material map. Thirty scenes, one map (or one combo) each, always the SAME dashboard page so the maps compare like for like.

Read the rig's notes
An `html` is a source under ANY `<slot>_from`. Rendered as colour it is the
page; rendered with `relief=` it is DATA — luma / alpha / ao / depth height,
or `relief=normal` (Sobel normals). So one page can be the map, the
emissive, the roughness, the bump, the parallax height, the cut-out, the
lacquer mask, the sheen tint… of one material. Devices take the same blocks
as children of the tag (`iphone > roughness_map_from > html`) plus
`screen-<prop>` scalars. `emit=<n>` makes a page a RectAreaLight.

  01 bump          02 displacement    03 normal          04 roughness
  05 metalness     06 emissive        07 alpha cut-out   08 ao
  09 clearcoat     10 clearcoat rough 11 sheen colour    12 transmission
  13 thickness     14 iridescence     15 anisotropy      16 specular int.
  17 specular col. 18 light map       19 parallax (POM)  20 relief=depth
  21 emit · html3d 22 emit · page     23 laptop combo    24 ipad parallax
  25 iphone irid.  26 imac etched     27 chrome glass    28 iphone velvet
  29 laptop lacquer 30 iphone everything

Preview: /packages/runtime/index.html?project=promos/primitives/html/html-maps.promo
Topic
uis
Scenes
30
Kind
reference rig
//
    HTML → every material map. Thirty scenes, one map (or one combo) each,
    always the SAME dashboard page so the maps compare like for like.

    An `html` is a source under ANY `<slot>_from`. Rendered as colour it is the
    page; rendered with `relief=` it is DATA — luma / alpha / ao / depth height,
    or `relief=normal` (Sobel normals). So one page can be the map, the
    emissive, the roughness, the bump, the parallax height, the cut-out, the
    lacquer mask, the sheen tint… of one material. Devices take the same blocks
    as children of the tag (`iphone > roughness_map_from > html`) plus
    `screen-<prop>` scalars. `emit=<n>` makes a page a RectAreaLight.

      01 bump          02 displacement    03 normal          04 roughness
      05 metalness     06 emissive        07 alpha cut-out   08 ao
      09 clearcoat     10 clearcoat rough 11 sheen colour    12 transmission
      13 thickness     14 iridescence     15 anisotropy      16 specular int.
      17 specular col. 18 light map       19 parallax (POM)  20 relief=depth
      21 emit · html3d 22 emit · page     23 laptop combo    24 ipad parallax
      25 iphone irid.  26 imac etched     27 chrome glass    28 iphone velvet
      29 laptop lacquer 30 iphone everything

    Preview: /packages/runtime/index.html?project=promos/primitives/html/html-maps.promo
promo#html-maps
  scene#m01-bump(duration=7 transition=none)
    camera(type=perspective fov=32 near=1 far=8000 position="0 120 700" look_at="0 0 0")
      position
        0 -160 160 700
        3.5 easeInOutSine 160 100 660
        7 easeInOutSine -160 160 700
    background(top=#14141a bottom=#050507)
    lights
      light(type=ambient color=#ffffff intensity=0.22)
      light#m01-bump-rake(type=directional color=#ffffff intensity=2.2 position="-700 220 500")
        position
          0 -700 220 500
          3.5 easeInOutSine 700 280 500
          7 easeInOutSine -700 220 500
      light(type=directional color=#9ab0ff intensity=0.7 position="500 -100 300")
    environment(hdr="studio_small_04_2k" as_background=false exposure=1.0 blurriness=0.35 intensity=0.6)
    postprocessing
      step(name=render)
      step(name=unreal_bloom strength=0.14 radius=0.45 threshold=0.9)
      step(name=film_grain grain=0.03 scanlines=0 vignette=0.22 vignette_start=0.5 output_transform=1 exposure=1.0)
    haze#m01-bump-hz(opacity=0.5 color=#22232a size="3600 2400" pulse=0 decay=0 position="-500 500 -1200")
    text#m01-bump-title(text="01 · bump_map_from — per-pixel edge shading from the page height (relief=luma) · no geometry" kind=layer size=600 worldHeight=14 color=#8ea3c8 weight=600 align=center position="0 230 0")
    primitive#m01-bump-pl(position="0 0 0" rotation="-18 0 0")
      geometry(type=plane width=600 height=340)
      material(ref=physical color=#ffffff metalness=0.1 roughness=0.45 bump-scale=2.4)
        map_from(flip_y=false)
          html(width=600 height=340 coords_width=1200 fill=#0b0d14)
            style(text=".d{height:100%;box-sizing:border-box;padding:44px 48px;display:grid;grid-template-columns:200px 1fr;gap:26px;font-family:-apple-system,system-ui,sans-serif;color:#eef0f6;background:#0b0d14} nav{display:flex;flex-direction:column;gap:8px} nav b{display:flex;align-items:center;gap:10px;font-size:22px;margin-bottom:14px} nav b i{width:24px;height:24px;border-radius:8px;background:linear-gradient(135deg,#5b8cff,#c14bff)} nav span{padding:10px 12px;border-radius:10px;color:#8b93a7;font-size:15px;font-weight:600} nav span.on{background:#151827;color:#fff} main{display:grid;grid-template-rows:auto auto 1fr;gap:18px} h1{margin:0;font-size:30px;letter-spacing:-0.02em} .k{display:grid;grid-template-columns:repeat(4,1fr);gap:14px} .k div{background:linear-gradient(180deg,#141728,#0d0f16);border:1px solid #232a3d;border-radius:18px;padding:16px 18px} .k small{display:block;color:#8b93a7;font-size:11px;letter-spacing:.12em;text-transform:uppercase} .k b{display:block;font-size:30px;letter-spacing:-0.03e