Skip to content
Docs
Open Promoeyes

How a promo is written

A promo is one text file. Each line is a tag, and indentation says what sits inside what.

promo#launch(width=1920 height=1080 fps=30)
materials
physical#gold(color=#ffc857 metalness=1 roughness=0.3)
scene#hook(duration=4)
camera(fov=35 position="0 0 900")
text3d#title("Ship faster" size=70 material=gold)
opacity
0 easeOut 0
0.6 1
  • A tag line: tag#id(attributes) text. The #id and the ( ) are optional; a quoted first value, as in text3d("Ship faster"), is the tag’s text.
  • An attribute: name=value. Quote a value that holds spaces: position="0 0 900". A bare name, cast_shadow, means true.
  • A key row: <time> [easing] <value>, under a channel tag such as opacity or position. Times are seconds from the start of the scene.
  • A comment: // … on one line. A line holding only // starts a block: every line indented under it is comment.
  • promo is the root: frame size and rate.
  • scene blocks play in order, each for its duration.
  • Inside a scene go the nodes: a camera, lights, text3d, shapes, devices, UI stages (ui, ui3d) and their items.
  • Channels animate the node they sit under.

Lengths are millimetres. A camera 900 mm back frames a 70 mm-tall letter at a comfortable size. Rotations are in degrees, times in seconds.

  • Every tag lists each tag with its attributes and types.
  • Templates are finished promos you can edit live and remix.