scene-building-basics
Skill6 starsChanged 19 days agoMITView on GitHub
Build and edit a scene with the scene tools - declaring media, audio and fonts as assets, layer trims, audio layers and transitions, reading the schema once before patching. Use whenever a use case composes or changes a scene document.
In this repository67 other files it gives its agents.
- ai-presenterSkill
- animate-designSkill
- app-ui-animationSkill
- asset-auditSkill
- assetsSkill
- background-musicSkill
- caption-decorationsSkill
- character-riggingSkill
- custom-transitionsSkill
- design-layer-importSkill
- drama-series-writingSkill
- edit-footageSkill
- edit-on-your-computerSkill
- edit-pipelineSkill
- face-hidingSkill
- figma-storyboard-animationSkill
- film-animaticSkill
- film-cast-designSkill
- film-cuttingSkill
- film-finishingSkill
- film-shot-generationSkill
- film-story-writingSkill
- footage-analysisSkill
- footage-reframingSkill
- generate-mediaSkill
- get-startedSkill
- large-scene-assemblySkill
- linked-element-motionSkill
- make-characterSkill
- make-comicsSkill
- make-screen-videosSkill
- make-short-dramaSkill
- motion-design-craftSkill
- motion-intentSkill
- motion-pattern-librarySkill
- motion-reviewSkill
- motion-scene-continuitySkill
- motion-tracking-from-videoSkill
- movie-producerSkill
- open-picsart-appSkill
- photo-slideshowSkill
- picsart-add-mediaSkill
- picsart-video-rulesSkill
- quality-reviewSkill
- quick-merge-and-exportSkill
- realistic-color-gradeSkill
- recastSkill
- recreate-videoSkill
- reel-structureSkill
- reference-fragment-matchingSkill
- resting-frame-rulesSkill
- retention-hooksSkill
- scene-3d-authoringSkill
- scene-animation-referenceSkill
- scene-template-remixSkill
- screen-recording-analysisSkill
- screen-recording-layoutsSkill
- screen-recording-zoomSkill
- screen-ui-redesignSkill
- sd25-peSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Read the scene schema once before your first edit (picsart_scene_capabilities with sections ["schemaSummary"], then ["schema:<Name>"] for …
- Distinctive: line 53
An overlay never blinks: When a caption, a title or a sticker follows another in the same place, start it where the last one ends, and …
- Very specific: line 59
When a panel replaces the one before it, a hard cut is fine and keeps the energy.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Composing a scene
Read the scene schema once before your first edit (picsart_scene_capabilities with sections
["schemaSummary"], then ["schema:<Name>"] for each definition you need, never ["schema"] whole), then build and change the scene with picsart_scene_patch. For a first scene,
the quick-merge-and-export recipe (picsart_scene_recipe) holds a working tool-call sequence to start
from.
Media
A layer declares its file once in assets as { id, type: "video", uri: <url> } and points at it
by id: content: { kind: "media", assetId: "<id>", fit, trim }. The scene document has no
assetType field and no video kind, and an assetId holding a URL is unknown_asset_ref. Keep
each layer's trim in its own source's seconds, with BOTH in and out. Skip dead ranges: trim
around them rather than speeding through them.
Audio
Voice-over plays as audio layers (content: { kind: "audio", assetId, trim: { in, out } }), each
with its layer's start at the moment it is heard. A step's line starts 0.15 s after its panel
appears, so the picture lands first. Every trim needs BOTH in and out; a trim
with only in is a missing_field error. Mute a recording's own track (muted: true on its media
content) unless its sound is being kept. If the scene schema ever lists no audio
layer, say so and stop — do not export a silent video and do not invent a mix.
Fonts
Fonts are declared assets. Declare the font once in assets ({ id, type: "font", uri }) and
reference that id as font.family in every text and caption style; a family name the scene does
not declare fails to resolve at export. If a font cannot be found or does not resolve, name it to
the user; never swap in another font without saying so.
Name the weight in the face, not in font.weight. font.weight renders only where the scene
is resolved natively; a runtime that draws a translated scene ignores it and draws the face
font.family names at its own weight (validate_scene warns font_weight_no_op). For bold text,
use a bold face, such as a catalog key like acumin-pro-bold, or a declared font asset of that
weight, and leave weight out.
The face must draw every character. A face that lacks a character draws nothing or a box in its place, and no font tool says which scripts a face covers. For words in basic Latin, most faces will do. For accents or another script (Cyrillic, Greek, Arabic, Devanagari, Chinese, Japanese, Korean …), prefer a face whose name names that script, or search by the name of a family made for it. Then prove it on the first frame that carries the rarest characters; if any is missing, pick another face, build again, and tell the user which face you used.
Overlays
An overlay never blinks. When a caption, a title or a sticker follows another in the same place, start it where the last one ends, and never let an overlay's opacity drop to 0 for a frame or two: a gap that short reads as a blink.
Transitions
When a panel replaces the one before it, a hard cut is fine and keeps the energy; a soft seam
('crossfade', 0.3–0.5 s) suits a change of layout. Check the live catalog with
picsart_scene_capabilities (sections: ["transitions"]) before naming any other transition.
Reusable parts
When you build a custom character or a part the user may want to adjust, declare root parameters for the knobs they will want (pose, expression, timing, strength): plain names in their terms, tight min/max (not 0..4000), a default, a group per body part or concern, a description. A draggable point is type: "vec2" with frame: "composition", or frame: {"layer": "<id>"}. Motion goes in root actions whose parameters tracks key only number, boolean, text, color, vec2 or vec3 parameters, with no $eval (scene-animation-reference, references/named-actions.md). picsart_scene_tune (see motion-design-craft) tunes what is declared, plus root layers' position.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

