Editing scenes
Build scenes visually with the node-based editor - events, apps, data sources and state.
A scene is what a frame shows: a graph of connected nodes that runs on the device. Scenes are built in a visual editor in the backend, then compiled and deployed onto the frame.
Create a scene
Click + Add new scene, give it a name, and open the editor.

The four node colors
- 🟥 Red - events. Entry points that trigger execution. The most important one is
render, which fires at a set interval (every 60 seconds, every hour, whatever you choose). Others react to button presses, schedules, or custom events. - 🟦 Blue - render apps. Draw things: images, text, calendars, gradients, split layouts.
- 🟩 Green - data apps. Fetch and transform data: download an image, query Home Assistant, parse an iCal feed, generate an image with OpenAI, take a screenshot of a web page.
- 🟨 Yellow - state fields. User-editable values (text, numbers, options) that can be changed live from the control page without redeploying.
Drag from the render event's connector to add a blue Render image app:

Then drag its image field out and pick a green data app to feed it - use FrameOS Gallery if unsure. Press deploy:

Caching
Every data app has cache controls. A scene might re-render every minute while its data app only fetches a new image every 15 minutes - the cached value is reused in between. And if a re-render produces the same image as before, an e-ink display won't refresh at all: no unnecessary flashing.

State fields
Add a yellow state field under the scene's "State" tab, then drag it onto the canvas and wire it into any app input. Deploy once, and from then on you can change the value live - from the frame's control page, the backend, or the HTTP API.


Code nodes
For quick data plumbing there are inline code nodes (green when not selected): single expressions in Nim that combine or transform values mid-graph - string concatenation, math, formatting.

How to learn
FrameOS ships with many sample scenes. The fastest way to learn is to install them, open them in the editor, and poke around.

When the visual editor isn't enough, write your own apps - in Nim or JavaScript. Editing apps is next.