Skip to content

Data in the editor

This is the hands-on companion to Data-driven video. That page explains the ideas; this one walks the editor — where the buttons are and what each control does.

Datasets go in the same place as any other asset. Open the project’s assets view and drag in a .csv, .tsv, .json, or .jsonl file — the type is detected automatically and the file shows up tagged as a dataset, with its row and column count on the card. Open one and you get its columns, their inferred types, and the first rows — enough to check you uploaded what you meant to before you bind anything to it.

You can also upload from inside the Repeat panel while you work — there’s a button for it right next to the dataset picker (below), so you don’t need a detour through the assets view.

Values are typed on the way in: "£1,234" and "12%" become numbers, "true" becomes a real yes/no, and blanks stay blank. What you see in the picker later is the file’s real columns.

Right-click any layer on the canvas and choose Repeat…. The layer becomes the template for a run of copies — it starts at 3 so you can immediately see the effect. With several layers selected, the command reads Group & repeat… and groups them first, so the whole selection repeats as one unit.

You can also do it from the properties panel: with a layer selected, find the Repeat section and click +.

Once a layer repeats, the Repeat section in the properties panel holds all of its controls. The × in the section header removes the repeat and returns the layer to a single copy.

Source decides where the copies come from:

  • Fixed count — a Count field appears; type how many copies you want.

  • Data rows — a dataset decides the count. Two controls appear:

    • Data — pick any dataset already in the project, or click the folder button beside the picker to upload one on the spot.
    • Path — leave empty for most files. For a JSON file whose rows sit inside the document (like an API export), type the route to them, for example data.results.

    Once rows load, a summary line under the controls shows what you’re working with — the row count and every column name, like 5 rows · name, revenue, region, delta. If the numbers look wrong, this line is the first thing to check.

  • Transcript words — a clip’s spoken words decide. Covered below.

Offset moves each copy in space: an X and a Y step in pixels, applied per copy. X 110 lays copies out in a row; Y 88 stacks them into a column; both make a diagonal. (Inside an auto-layout group, leave these at 0 — the layout places the copies for you.)

Timing spreads the copies in time:

  • All together — every copy appears at once.
  • Offset each — an Apart field sets the gap between copies, in seconds. More rows, longer run.
  • Fit into — a Total field sets the whole window, divided among the copies. The choreography takes the same time whether the data has 4 rows or 40 — the right choice when the count comes from data.

With either timing mode, a From control picks where the wave starts: First, Last, Centre (ripples outward), or Edges (collapses inward).

On screen decides how copies share the screen:

  • All stay — each copy remains once it appears. Charts, grids, card walls.
  • One at a time — each copy hides exactly as the next appears. Countdowns, line-by-line quotes.
  • Rolling — a copy stays until a few more have appeared, then hands off. A Visible field sets how many are on screen at once.

With a repeat in place, every bindable field in the properties panel gains a small ƒ dot — hover a field and it appears at the field’s edge.

Click the dot and a picker opens showing what’s actually available: the dataset’s real column names, each with a sample value from the first row, plus the built-ins $i (copy number) and $count (total copies). Pick a column and the property now follows the data — one click, no typing.

A bound field changes appearance: instead of a number, it shows the formula itself, highlighted in the accent colour. That’s deliberate — the field tells you the truth about what’s driving it. You can edit the formula right there; Write a formula… in the picker starts you with a blank one.

To unbind, click the × beside the formula. The property returns to the value you designed — nothing is lost, the binding just sat on top of it.

Formulas can do much more than mirror a column — scaling, conditions, formatting. The formula cheat-sheet lists everything available.

Transcript mode: captions that follow your cuts

Section titled “Transcript mode: captions that follow your cuts”

For captions, set Source to Transcript words. A Clip picker appears listing the video and audio clips in the scene — pick the one that was transcribed.

That single pick wires up two things at once: the words come from the clip’s transcript (one copy per word, each carrying its start and end time), and the copies are synced to the clip’s edit. The summary line confirms it — something like 142 words · follows Interview's cuts.

From there, bind the text layer’s content, startTime and endTime from the picker (they’re offered as w.word, w.start, w.end) and you have word-timed captions.

The part that saves you hours: because the words are synced to the clip, editing the video re-times the captions automatically. Cut a sentence in the clip editor and its words vanish from the captions; speed a section up and its words tighten to match; move a cut and everything re-flows. Caption timing is never a second job.

If the picker says “No transcript on this clip yet — transcribe it first”, generate the transcript for the clip and come back — the words appear as soon as it exists.

  • Data-driven video — the concepts, the worked examples, and the formula reference.
  • Animate a layer — any entrance or emphasis you put on the template is copied to every clone, shifted by its stagger.
  • Work with agents — connect an agent and ask for “a bar chart from this CSV” instead of clicking at all.