Current

Early development Current is in early development. These docs describe the current build and will grow with the first public release.

02 / 07

Concepts

Projects, assets, tracks, clips, compositions, text, shapes, keyframes and easing, effects, revisions and history.

On this page

This page explains the parts of a Current project and how changes to it are recorded.

Project

A project is one JSON file, the project file. It stores compositions, tracks, clips, effects, keyframes and references to source files. It does not contain the source media.

  • Schema and features. Projects are schema 4. A project lists the optional features it uses, such as effects_v1, blend_modes_v1 or motion_blur_v1. A build that does not know a listed feature refuses to open the project, instead of dropping the content it cannot read.
  • Saving. Save writes the file atomically. If the file changed on disk after you opened it, Save refuses with project_changed_on_disk and leaves the other version alone. Saving to a new path refuses an existing file with save_destination_exists.
  • Recovery. After each change, the editor writes a recovery copy, recovery.json, to its own folder inside the working folder. File > Recover last autosave opens it.

Assets

An asset is an imported source file: video, audio, image or font. The project stores its path and a content fingerprint. Current never changes the source file.

Import accepts:

Kind Accepted input
Video MP4 with H.264 video, 8-bit 4:2:0, progressive, tagged limited-range BT.709. Constant frame rate at 23.976, 24, 25, 29.97, 30, 50, 59.94 or 60 fps. Up to 4096 pixels on a side and 16,777,216 pixels in total. Optional AAC or PCM audio.
Audio WAV with 16-bit or 24-bit PCM, mono or stereo, 44.1 or 48 kHz.
Image PNG up to 8192 by 8192 pixels.
Font Through File > Import media / font: TTF or OTF, smaller than 32 MiB. Through the Fonts library import: TTF, OTF, TTC or OTC, smaller than 64 MiB.

Source media longer than three hours is refused. Variable frame rate video is not supported. Import checks every file against this table, and a file that matches it can still fail to import.

If a file moves, Relink file points the asset at the new location. The replacement must have identical contents. Relinking does not change the clips that use the asset.

Compositions

A composition is a canvas with its own tracks and clips. Every project has a root composition. Export renders the root composition.

  • A new project’s root composition is 1920 by 1080 at 30 fps.
  • Every composition runs at 30 fps. The project validation refuses any other composition rate.
  • Composition sizes range from 16 to 4096 pixels on a side, up to 16,777,216 pixels. The MCP tool composition_set_format can change the size. The Properties panel cannot; it shows the size as a read-only summary.
  • A composition can be placed inside another composition as a clip, called an instance. Several instances can share one source composition. Nesting depth is limited to 16, and circular references are refused.

Tracks

Tracks hold clips. A track is either visual or audio. In each composition, visual tracks come before audio tracks, and there must be at least one of each.

A new project has four tracks: Titles, Graphics and Footage (visual) and Audio (audio). You can add, rename, reorder, lock and delete tracks. A locked track refuses edits to its clips, from people and agents alike.

Clips

A clip is one item on a track with a start frame and a duration. Clip kinds are:

  • Video, image and audio: an instance of an imported asset. A video clip keeps its embedded audio.
  • Text and shape: native content edited in Current.
  • Group: a parent that applies its transform, opacity, mask and timing to child clips that stay editable.
  • Composition: an instance of another composition.
  • Procedural: a native grid of repeated instances.
  • Component: a clip from the experimental programmable runtime. See Current status.

Each clip has a display name. Names must be non-empty after trimming and at most 128 bytes.

Text

A text clip holds editable point text or paragraph text. Paragraph text stores its width, height, alignment, tracking, line spacing and overflow (visible or clipped). A new text clip uses the bundled Inter font. You can choose a bundled, installed or imported typeface. Styled runs can give parts of the text their own font, size, tracking, colour or gradient. Text with styled runs is limited to 4,096 Unicode characters and 256 runs.

Rendering does not substitute another font silently. Unsupported characters show replacement glyphs and the problem is reported. Automatic language-aware font fallback is not built yet.

Shapes

Native shapes are rectangles, rounded rectangles and ellipses. Each has an editable fill, outline, size and corner radius. Fills can be solid or a linear or radial gradient with 2 to 16 stops.

Masks and mattes

  • A mask is a rectangle, rounded rectangle or ellipse on the clip itself, with position, size, radius, inversion and a reveal amount from 0 to 100 percent.
  • A source matte uses another composition’s alpha or luminance to show or hide the clip.

Keyframes and easing

Keyframes animate a value over time. Keyframe times are frames local to the clip, so they move with the clip and keep the trim offset.

Interpolation types:

  • Linear: a straight change between keys.
  • Hold: the value stays until the next key.
  • Cubic Bezier: a curve set by two control points. In the workspace curve editor, the handles stay within 0 to 1, so the curve cannot overshoot. Through the engine and MCP, a Bezier key can use y values outside 0 to 1 to overshoot, for example bezier:0.34,1.56,0.64,1. After overshoot, values are clamped to each property’s legal range, for example opacity stays within 0 to 1.

In the workspace, position, scale, rotation and opacity have keyframe controls in Properties, and mask reveal has its own lane. Two keys cannot share the same frame on one property.

Effects and blend modes

A text, shape, image, video or composition clip can hold up to four effects. They run in the order shown in Properties. Four effects exist: Gaussian blur, Drop shadow, Glow and Organic reveal. A clip also has a blend mode: Normal, Multiply or Screen. Groups and grids cannot take effects or blend modes directly; put them in a composition and apply the effect to the instance. See Effects.

Revisions and history

Every accepted change goes through one validated operation path, whether a person or an agent made it.

  • Revision. The project has a revision number. Each accepted change, undo or redo raises it by one.
  • Atomic changes. A change is a batch of operations. The whole batch is checked against the project rules before it is applied. If any part fails, nothing changes.
  • History. Each accepted change records the revision, who made it (human or agent) and the number of operations. The Activity panel’s History tab shows these records.
  • Undo and redo. Undo and redo cover changes from people and agents in one shared list. Ctrl+Z in the editor can undo an agent’s edit. The undo list keeps the last 64 steps. Making a new change clears redo.
  • Protection. Locked clips, locked tracks and protected properties refuse agent edits, including indirect changes through linked controls or reused compositions.

Agents must state the revision they based their change on. See Agents and MCP.