resting-frame-rules
Skill6 starsChanged 18 days agoMITView on GitHub
Keep every element whole or gone whenever motion stops - when an animation finishes, when an element appears without moving, and on the last frame, each photo, card or title sits fully inside its frame or fully outside it, never cut by the edge. How to build entrances, exits, scrolls and zooms so they land clean, and how to check a scene with the layout tool. Use when animating photos, cards, screenshots or text in a scene, and before a scene with motion goes to REVIEW.
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
- retention-hooksSkill
- scene-3d-authoringSkill
- scene-animation-referenceSkill
- scene-building-basicsSkill
- 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
6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
when its animation finishes, or pauses long enough to read as a stop.
- Distinctive: line 16
when it appears without moving.
- Distinctive: line 34
Entrances end inside: Start fully outside the frame, at least the element's own size past the edge, or start inside with opacity or scale.
- Distinctive: line 44
The video ends at rest: Every element shown on the last frame has finished moving.
- Distinctive: line 51
After the motion is authored, and after each change to it:
- Very specific: line 58
Ask the layout tool at each moment: Call picsart_scene_query_layout with the scene and that time.
≈ “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
Rest framing
When motion stops, every element is whole or gone. At each moment an element comes to rest, it sits fully inside its frame or fully outside it. A photo the edge cuts while it slides reads as movement. The same cut once it has stopped reads as a mistake: a picture cropped by accident.
An element comes to rest:
- when its animation finishes, or pauses long enough to read as a stop;
- when it appears without moving;
- on the last frame, where the video stops on whatever is still moving.
The frame is the canvas, or the composition that holds the element, such as a panel.
What does not count as cut
- A full bleed. An element that spans its frame on an axis, past both edges: a background larger than the canvas, a band across the full width.
- A crop inside the element's own box. A photo
fit: "cover"in its box, a mask, a zoom inside a panel. That is framing, not the edge. - A cut the design makes on purpose. A phone mockup the design cuts at the bottom, a carousel that shows the next card's edge as a hint. Keep it only when the design or the user asked for it.
While an element moves, the edge may cut it.
Build it so it lands clean
- Entrances end inside. Start fully outside the frame, at least the element's own size past the edge, or start inside with opacity or scale. The last keyframe puts the whole element inside, with a margin.
- Exits end outside. The last keyframe puts the element fully past the edge, or at opacity 0. End the layer there.
- A scroll or a pan stops on whole items. Move the parent of the row or list, never each item. It stops where every item is whole or gone: the frame's edges fall in the gaps between items. An item larger than the frame does not fit a scroll; make it smaller or a full bleed.
- A zoom ends inside. A scale-up that would push the element past the edge either ends at a scale that fits, or moves into a panel so the zoom crops inside the element's own box.
- The video ends at rest. Every element shown on the last frame has finished moving. Never end on an exit or an entrance halfway through: hold the final layout, or let the exit finish before the end.
- An element larger than its frame is a full bleed on that axis, or it is scaled down to fit.
Check it
After the motion is authored, and after each change to it:
- Find the rest moments in the scene. For each layer: the time of the last keyframe of each
move in its
animationsortransforms, itsstartwhen it appears without moving, and the last frame. WithtimeMode: "layer", keyframe times count from the layer'sstart. A layer with aparentIdmoves with its parent, so it rests only when the parent does too. Several layers that settle together share one moment. Ask the layout tool at each moment. Call
picsart_scene_query_layoutwith the scene and thattime. For each layer that has come to rest then, readonCanvas:fulloroff: whole or gone, as it should be;partial: the canvas cuts it. It is a full bleed only when itsboxpasses both edges of an axis; otherwise it is a finding.
A layer with
clippedByis cut by the composition that holds it: when itsclippedBoxis smaller than itsboxon one side, that is a finding too.Fix each finding with
picsart_scene_patch, on the keyframe that ends the move, or ontransform.positionwhen the layer does not move:- at the end of an entrance, or on a hold: move it in by as much as its
boxpasses the edge; - at the end of an exit: move it out until its
boxclears the edge; - a row or list: move the parent, so every item is whole or gone;
- larger than its frame: rule 6.
Pushing an element meant to stay on screen out of the frame is the wrong fix: move it in, or change what it does.
- at the end of an entrance, or on a hold: move it in by as much as its
- Check again at the moments you changed.
The layout tool reads geometry, not pixels. When it gives a layer no box (text on an engine that
does not measure it), or a finding is in doubt, look at picsart_scene_contact_sheet at that
time.
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.

