Visual Editing in HyperFrames Studio
Tweak text variables, scene timing, and audio clips visually on the timeline while locking the agent out.
Understand the difference between a new campaign (new message/audience) and a new version branch.
Every video you make with MotionMind lives in two levels: a campaign (<brand>/<campaign>) and the versions inside it (v1-…, v2-…). Getting the level right decides what the agent remembers and what you can compare later. Every clip below is from a real workspace with two Demo Coffee campaigns.
| Situation | Where it goes |
|---|---|
| A different message, feature, audience or goal | a new campaign, starting at v1-… |
| The same message, done differently: hook, style, music, voice-over, aspect ratio | a new version in the same campaign |
| A technical fix before approval: typo, clipping, timing, loudness | the same version, rendered again |
A campaign is one memory: its TASTE.md, PROGRESS.md, LOG.md and plan/ are shared by every version in it. That's the point of the rule. A new hook for the same message should look like the earlier versions, so it reads the same TASTE.md. A message for café owners shouldn't inherit the style decisions made for morning commuters, so it gets its own.
projects/demo/
├── launch-6s/ one message: the morning coffee promo
│ ├── TASTE.md style memory, shared by every version
│ ├── PROGRESS.md · LOG.md
│ ├── plan/
│ └── runs/
│ ├── v1-steam/ each version: src/, video.mp4, contact sheet
│ ├── v2-safe/
│ ├── v3-hot-by-7/
│ └── v4-landscape/
└── wholesale-6s/ another message for another audience
├── TASTE.md
└── runs/v1-beans/
motionmind init makes both. Name an existing campaign and you get a new run folder; name a new one and it also creates the campaign memory:
# A new version in the same campaign
motionmind init demo/launch-6s v3-hot-by-7 --resolution portrait
# The same message in 16:9
motionmind init demo/launch-6s v4-landscape --resolution landscape
# A new campaign: another message, another audience
motionmind init demo/wholesale-6s v1-beans --resolution portrait
You rarely type these yourself; the agent runs them. What you decide is the wording of your request:
Continue demo/launch-6s: make v3 with a new hook that starts from the clock; keep the style from TASTE.md.
Continue demo/launch-6s: make a 16:9 version of v3 for YouTube.
Use the motionmind skill. New campaign demo/wholesale-6s: a 6-second 9:16 reel for café owners,
message "beans for your café", CTA demo.example/cafe.
Compare video in the Studio plays two versions side by side with one play button and one scrubber, and lists their registry rows with the differences highlighted: stage, loudness, concept, hook. Two versions of one campaign differ only where you changed something, so the comparison shows exactly what the new idea changed.
Every version has a stage: staging when it's logged, production when you approve it, archived after it's replaced. Promoting a version archives the previous production version of the same aspect ratio, so a campaign can have a 9:16 and a 16:9 in production at the same time. Archived versions are never deleted; their video and source stay in runs/.
motionmind list
motionmind promote demo-launch-6s-v3 --stage production
After promoting v3 in this workspace:
RUN_ID VERSION STAGE RES LUFS SOURCE
demo-launch-6s-v1 v1-steam staging 1080x1920 -13.6 hub
demo-launch-6s-v2 v2-safe archived 1080x1920 -13.6 hub
demo-launch-6s-v3 v3-hot-by-7 production 1080x1920 -14.2 hub
demo-launch-6s-v4 v4-landscape production 1920x1080 -13.6 hub
demo-wholesale-6s-v1 v1-beans staging 1080x1920 -13.6 hub
v2 went from production to archived because v3 is also 9:16; v4, the 16:9 version, stayed in production. Production also requires passing the loudness check; see Loudness Standards: Why −14 LUFS?
Tweak text variables, scene timing, and audio clips visually on the timeline while locking the agent out.
Keep text and CTAs within vertical margins (y: 285–1635) so social media UI overlays never cover them.
Understand how MotionMind equips AI agents with a studio-grade video production process and versioned records.
Open your terminal, launch motionmind ui, and brief your AI agent.