Dockable desktop panel system with an After Effects-style menu bar, unified clip properties, and a separate mobile shell for touch devices.
- Menu Bar
- Panel System
- Available Panels
- Slot Grid
- Properties Panel
- Dock Layouts
- MIDI Control
- Resolution Settings
- Settings Dialog
- Status Indicator
- Context Menus
- Mobile UI
| Menu | Contents |
|---|---|
| File | New Project, Open Project, Open Recent, Save, Save As, Project Info, Autosave, Clear All Cache and Reload |
| Edit | Copy, Paste, Settings |
| View | Panels submenu, Layouts submenu |
| Output | New Output Window, Open Output Manager, Active Outputs |
| Info | Where are you coming from?, Tutorials, Quick Tour, Timeline Tour, Changelog, About, Imprint, Privacy Policy, Contact |
| Shortcut | Action |
|---|---|
Ctrl+N |
New Project |
Ctrl+S |
Save Project |
Ctrl+Shift+S |
Save As |
Ctrl+O |
Open Project |
- Displayed at the left of the menu bar
- Click to edit or rename
- Shows an unsaved indicator when changes are pending
- New Project prompts for a project name and folder
- Open Project opens an existing project folder
- Open Recent shows browser-remembered projects and can clear that recent list
- Save / Save As follow the folder-based project model
- Autosave still exposes enable/disable plus 1, 2, 5, and 10 minute intervals for interval-save mode
- Save Mode itself lives in Settings -> General, and the default branch behavior is continuous save with a short debounce after changes
- Clear All Cache and Reload clears localStorage, IndexedDB, caches, and service workers
- Where are you coming from? reopens the welcome/onboarding chooser
- Tutorials opens the tutorial campaign picker
- Quick Tour starts the panel introduction campaign
- Timeline Tour starts the timeline deep dive campaign
- Changelog opens the changelog dialog
- About shows app and version information
- Imprint / Privacy Policy / Contact open the legal dialog pages
The welcome/onboarding chooser can also apply shortcut-preset defaults based on the editor background the user selects.
All docked panels can be:
- Dragged to rearrange
- Grouped in tabs
- Resized via split panes
- Closed and reopened from the View menu
- Floated as independent windows
- Maximized from the hovered tab with the fullscreen shortcut
- Dropped into the center of a pane with a large anchored preview, or onto the tab bar for exact tab insertion
- Dropped onto the outer dock edges to create full-height side strips or full-width top/bottom strips
| Action | Method |
|---|---|
| Switch tab | Click |
| Cycle tabs | Middle mouse scroll |
| Drag tab | Hold for 500 ms, then drag |
| Insert into tab group | Drag into the tab group and choose one of the visible gap cubes |
| Maximize hovered tab | Hover a dock tab and use the fullscreen shortcut |
- Floating panels keep their own position, size, and z-order
- They can be brought to the front by clicking
- They can be redocked by clicking
Dockor by dragging the floating panel title tab onto a dock target
Undock to Windowopens a dock tab as a separate browser window- The detached browser window renders the selected panel through the main editor runtime, so edits and controls affect the main app state
- Detached browser windows keep their last local position and size across refreshes
- The detached browser window can return the panel to the main layout with
Dock back
MasterSelects currently exposes 18 active dockable panel types, plus the Slot Grid overlay that sits on top of the Timeline. The old ai-video, youtube, and download panel types are treated as deprecated saved-layout migration targets; generation and downloads now live inside the Media Panel.
| Panel | Type ID | Surface |
|---|---|---|
| Multi Preview | multi-preview |
4-slot composition preview grid |
| Preview | preview |
Main composition preview canvas |
| Timeline | timeline |
Multi-track editor and playback surface |
| Media | media |
Media browser, folders, and project items |
| Properties | clip-properties |
Unified clip inspector |
| History | history |
Undo/redo history |
| Audio Mixer | audio-mixer |
Track and master audio controls |
| Node Workspace | node-workspace |
AI-assisted node workspace |
| Export | export |
Render and export controls |
| MIDI Mapping | midi-mapping |
Editable list of assigned MIDI notes and trigger previews |
| AI Chat | ai-chat |
Editing assistant chat |
| AI Segment | ai-segment |
Local SAM2 segmentation tools |
| AI Scene Description | scene-description |
Scene list with playback sync |
| Multi-Cam | multicam |
Multicam sync and EDL tools |
| Transitions | transitions |
Transition library |
| Waveform | scope-waveform |
Waveform scope |
| Histogram | scope-histogram |
Histogram scope |
| Vectorscope | scope-vectorscope |
Vectorscope scope |
- Panels submenu: all dockable panels in one flyout
- Inside Panels, entries are grouped into Core, AI, Scopes, and Work in Progress
- Panel entries show their current visible/on state directly in the menu and update immediately when toggled
- Layouts submenu: named layouts, default layout selection, and loading saved layouts
- Main composition output canvas
- Source selector supports the active composition, a named composition, or a layer-index source
- Per-panel transparency grid toggle
- Multiple preview panels can be opened and floated
- Stats overlay is available
- 4-slot grid for showing multiple compositions at once
- Can auto-distribute the active composition's layers or use custom per-slot assignments
- Per-panel transparency grid toggle
- Multi-track video and audio editor
- Composition tabs for switching open compositions
- Playback controls, snapping, and ruler
- Slot Grid overlay is part of the timeline workflow
- Media browser with folders, compositions, and generated project items
- Single toggle button switches between list view and grid view
- Reorderable column headers in list view
- Grid breadcrumb navigation for folder drilling
- Add menu for compositions, folders, text, 3D text, solids, cameras, splat effectors, mesh primitives, and Gaussian splat import
- Dragging files or folders from the OS recreates the folder structure inside the project
- Dropping multiple OS files directly on the timeline asks whether to place them side by side or stacked on new layers, while still importing through the Media Panel file path first
- Drag-to-timeline support
- Type-specific project items for text, solids, meshes, cameras, and splat effectors
- Board mode right-drag supports smooth edge autopan; dragging far out onto a timeline lane hands off to the same timeline drag preview/drop path as list-view media drags, then restores the item at its original board position
- Bottom-right Generate tray expands into the FlashBoard prompt composer for video, image, speech, and music generation without opening a separate dock tab
- Appearance settings include a separate Wooden media panel theme checkbox, default off, that switches the Media Panel to the wooden studio skin; disabling it leaves the standard dark panel chrome unchanged
- Encoder selection: WebCodecs or HTML Video
- WebCodecs and FFmpeg codec choices
- Container, resolution, frame rate, quality, and audio controls
- In/Out export and FCPXML export
- Stacked alpha export
- Progress with phase display
- Open from
View -> Panels -> MIDI Mapping - Shows all currently assigned MIDI notes and control-change bindings in one list
- Includes global transport bindings, per-marker bindings, Slot Grid trigger bindings, and property parameter bindings
- Each row shows the note, target, and resulting command behavior
- Click any transport, marker, or slot mapping card to trigger the assigned action and preview what the MIDI note does
- Mappings flash live while matching MIDI input is currently driving them
Editopens inline controls for manual channel/note changes and marker reassignment- Parameter mappings expose inline
Min/Maxrange inputs, anInverttoggle, and aDampcheckbox for smoothed value changes LearnandClearremain available directly from the panel- Marker bindings support
Jump To Marker,Play From Marker, andJump To Marker And Stop - Slot bindings can be created from the Slot Grid filled-slot context menu, which opens this panel with a pending
Listening...mapping
- GPT-backed editing assistant
- Model and provider selection
- Context-aware editing commands
- First-open onboarding card with example prompts and editor-mode guidance
- SAM2 object segmentation in the browser
- Point-based include/exclude workflow
- Real-time mask overlay
- Forward propagation for video
- Scene-by-scene video descriptions
- Search within descriptions
- Click-to-seek scene segments
- Playback-synced highlighting
- Compact bottom-right prompt entry point inside the Media Panel
- Expanded tray embeds only the compact FlashBoard prompt composer for video, image, hosted ElevenLabs audio, hosted Suno music, and non-production BYO audio/music generation
- Active generation jobs render as compact preview cards above the prompt, including queued/processing state, elapsed timer, progress, prompt, and failed-job dismissal
- Service and provider selection reflect the active backend through the FlashBoard composer
- Image, video, and audio media can be attached as ordered prompt references from the Media Panel context menu or by dragging them onto the expanded composer
- Current generation backends are MasterSelects Cloud in production, plus Kie.ai, ElevenLabs, EvoLink, and PiAPI BYO paths for non-production development. Hosted ElevenLabs speech and hosted Suno music use Cloud credits; PiAPI remains primarily as legacy compatibility/catalog metadata rather than the main runtime description for the current generator
- Composer panel for prompt/text-to-speech/music input, ordered media references, output/model selection, duration, aspect ratio, mode, multi-shot authoring, audio voice settings, and Suno song controls
- Completed generations are imported back into the media store and can be sent to the timeline; ElevenLabs and Suno audio imports under
AI Gen / Audio - The tray reuses the FlashBoard queue/import runtime without showing the full node canvas
- Downloads open from the bottom of the Media panel beside Generate and Chat
- Paste one or more URLs from major platforms
- Downloads use the same Media tray queue as generated media
- Completed downloads are imported back into the Media panel under Downloads/platform folders
- The old
youtubeanddownloaddock panels are deprecated and removed from restored layouts
- Camera sync and role assignment
- Transcript and EDL-oriented tooling
- Still marked WIP in the View menu
- Draggable transition palette for the current 2D and 3D transition families, including dissolve/dip, wipe/iris, push/slide, dedicated 2D rotate, stylize, glitch, light, zoom, motion blur, pattern, and 2.5D flip/card/roll/spinback variants.
- The palette is grouped into 2D and 3D sections. Related variants appear as a single family card; dissolve style, direction, shape, color, motion-blur style, light/film style, or pattern variants are selected in the transition-scoped Properties tab. The 2D and 3D sections can be collapsed when browsing the palette.
- Search filters grouped family cards by family names, transition IDs, variant names, descriptions, category aliases, synonym aliases such as film/depth/lens, and 2D/3D dimension labels. Glitch search includes hidden RGB split, mosaic, pixelate, and scanline variants even though the palette shows one Glitch family card. Light search includes Flash, Light Leak, Light Sweep, Projector Flicker, Film Roll, and Vignette Bloom variants while the palette keeps them grouped as one Light family. Pattern search includes visible multi-panel Puzzle Push, Shatter Glass, and Magnetic Tiles variants through the grouped Pattern family. 3D search includes separate Flip, Tumble, Roll, and Spin families for the current runtime effects; planned dev metadata adds non-draggable Cube, Door, Fold, and Peel families. Search results stay expanded even if a section was collapsed before searching.
- Family cards show a variant count. Clicking a family expands the draggable leaf variants until the pointer leaves the panel; planned dev metadata shows a Planned badge and is not draggable.
- Family-card assembly, sectioning, and search indexing live in focused transition panel helpers so the panel layout does not grow with each new transition definition.
- The transition Properties tab uses the same grouped 2D/3D selector model; its choice-button metadata and glyph mapping are kept in focused helpers so the Properties tab can grow by family without adding more panel-state code.
- Each transition item carries a plain JSON drag payload with transition ID and duration.
- The duration control keeps only the minimum bound; long transitions are allowed and rely on hold-frame fallback where source material runs out.
- Timeline hover uses source-aware ghosts: normal transition body, real-handle coverage, and red hold-frame fallback coverage.
- The panel is active in the View menu and is no longer marked WIP.
Three independent GPU-rendered scopes:
| Panel | Function |
|---|---|
| Histogram | RGB distribution graph with channel modes |
| Vectorscope | Color vector analysis |
| Waveform | Luma/RGB waveform monitor |
- View mode buttons include RGB, R, G, B, and Luma
- IRE reference remains available
- The scopes are fully GPU-rendered
Resolume-style slot grid for simultaneous multi-layer composition playback. The grid overlays the Timeline panel and lets each slot run on its own wall-clock time.
- 4 rows by 12 columns
- Rows A through D represent playback layers
- Column headers let you activate an entire column
- Slots show a mini timeline preview of the assigned composition
| Method | Action |
|---|---|
| Toolbar toggle | Switches between the normal timeline and Slot Grid |
Ctrl+Shift+Scroll Down |
Zoom out from Timeline into Slot Grid view |
Ctrl+Shift+Scroll Up |
Zoom back into Timeline while hovering a filled slot |
| Action | Behavior |
|---|---|
| Click a filled slot | Select slot clip settings, open the Slot Clip tab, and either open the comp in the editor or trigger it live depending on useLiveSlotTrigger |
| Re-click an active slot | Restart playback from the slot trim-in point |
| Click an empty slot | Deactivate that layer |
| Click a column header | Activate all compositions in that column |
| Drag a slot | Reorder or swap a composition position |
| Right-click a filled slot | Open in Editor, map MIDI to the slot, or Remove from Slot |
- Each layer tracks elapsed time independently
- Active layers loop automatically
- Background layer audio is muted by default
- Deactivating a layer returns control to the next active layer if needed
- Optional warm-deck badges show slot preparation state when
useWarmSlotDecksis enabled
See Slot Grid for the current live/deck behavior, slot-clip trimming, and context-menu actions.
The unified Properties panel adapts its tabs to the selected clip type, selected audio track/layer, selected master bus, and slot-grid mode. Tab labels are scoped with CLIP, TRACK, or MASTER; transcript tabs are shown only for clip targets. Linked video/audio companions share the same CLIP Transcript state, so selecting either side opens the same transcript view.
Selecting a timeline transition switches the panel to TRANSITION Parameters.
That tab shows the transition type, first-pass centered placement with timeline
body offset support,
hold-frame policy, duration, planned body range, real source-handle duration,
hold fallback duration, and remove action. The same duration edit operation is
used by the selected timeline body's drag-resize handle; dragging the body
updates the transition offset relative to the cut. Timeline body moves snap to
the centered cut position and source-handle edges; resize handles snap to the
same source-handle edges.
| Tab | Contents |
|---|---|
| CLIP Transform | Position, scale, rotation, opacity, blend mode, and speed |
| CLIP Effects | GPU effects list with parameters |
| CLIP Masks | Mask shapes with mode and feather controls |
| CLIP Transcript | Speech-to-text transcript with playback sync |
| CLIP Analysis | Focus, motion, face, and AI scene metadata |
| Tab | Contents |
|---|---|
| CLIP Effects | Audio effects and linked audio controls |
| CLIP Audio Edits | Non-destructive edit-stack operations |
| CLIP Transcript | Speech-to-text transcript, shared with the linked video clip when present |
| Target | Tabs |
|---|---|
| Audio track/layer | TRACK Controls, TRACK Effects, TRACK Sends |
| Master bus | MASTER Controls, MASTER Effects |
| Clip Type | Tabs |
|---|---|
| Text | Text, Transform, Effects, Masks |
| 3D Text | 3D Text, Transform, Effects, Masks |
| Clip Type | Tabs |
|---|---|
| Vector Animation | Lottie/Rive, Transform, Effects, Masks |
| Gaussian avatar | Blendshapes, Transform, Effects, Masks |
| Gaussian splat | Transform, Gaussian Splat, Effects, Masks |
| Camera | Transform |
| Splat effector | Transform, Effector |
| Slot Grid clip | Slot Clip |
- Camera clips expose
Nav Modecontrols at the top of the Transform tab. - Camera lens and gate controls also live in the Transform tab: FOV, full-frame-equivalent millimeters, Near, Far, and Resolution X/Y.
- The legacy camera Zoom and Distance controls are hidden from the Camera Transform UI to avoid mixing a real-camera surface with orbit-rig controls.
- In Scene Nav, mouse wheel over the preview moves the real camera position along the current view direction, so X/Y/Z can all change. It does not change FOV or the mm lens field.
- Camera Position X/Y/Z is the camera eye position in world space and is edited independently from lens FOV/mm; changing the lens does not rewrite or recalculate the position fields.
- Camera Resolution X/Y sets the edit-view gate aspect used to draw the camera frame; it is stored with the camera clip and has keyframe controls like the other camera settings.
- Camera Edit mode uses its own 35 mm free-camera lens by default, independent of the timeline camera clip's lens or keyframes.
FPSswitches preview navigation between orbit-style look and FPS-style look.NO KFkeeps existing camera keyframes active during playback, but routes preview navigation and MIDI camera-look input into temporary live offsets instead of writing new camera keyframes.- Live
NO KFoffsets are added on top of the keyframed camera pose for preview control and are cleared whenNO KFis turned off. - Live
NO KFoffsets are not saved to the project and are ignored for export renders, so the stored camera animation remains the source of truth.
- Solid clips show a color picker bar above the tabs
- The picker updates the clip color in place
- Tabs switch automatically based on clip type
- Clicking an audio track/layer in the Timeline or a strip in the Audio Mixer selects the same
TRACKProperties target, highlights both surfaces, and smoothly reveals off-screen timeline audio layers - Clicking the master bus selects the
MASTERProperties target - Badge counts appear for effects, masks, transcripts, and analysis readiness
- Slot grid mode switches the panel to the Slot Clip tab
- The Slot Clip tab shows the slotted composition tracks, the configured trim window, and the current live layer playhead on one range timeline
The built-in VIDEO EDIT layout is the default desktop layout:
- Left column: Media
- Center: Preview
- Right column: Properties, Export, History (Export active)
- Bottom: Timeline
Its timeline defaults to balanced video/audio focus with two visible 70 px video tracks and one visible 48 px compact audio track, so audio headers keep the bottom pan rail visible without showing the inline volume fader.
On a first empty load, VIDEO EDIT is also the active named layout, so the header switcher and Layouts menu show it as current.
The built-in AUDIO EDIT layout keeps Timeline above Media, Audio Mixer, and Properties/History. Its timeline defaults to audio focus with two visible 40 px video context tracks and one visible 96 px full-height audio track.
Multi Preview, scopes, and other panels are available from the View menu and can be floated or docked.
- The dock layout is persisted with Zustand and project state
- Floating panels are restored across sessions
- Browser window panels are restored from local dock state on refresh and stay connected when project layout hydration runs
- Invalid panel types are cleaned up on load
- Named layouts can be stored in the View menu and reused later
- The active named layout can be overwritten directly with
Save to Current Layout - Named layouts also store the timeline audio focus/display mode, track slot counts, per-slot heights, and track visibility
- Loading a saved layout animates panel movement, resizing, and reflow over 500ms
- A saved layout can be marked as the default layout
- Loading a layout creates missing tracks for saved slots without deleting extra existing tracks
Right-clicking a dock tab opens a tab menu. Undock moves that tab into a freely movable and
resizable floating panel, Undock to Window opens it in a separate browser window with a Dock back
control, Hide removes that tab, and Change to replaces the tab slot with another panel. If the
target panel is already open elsewhere, it is moved into the clicked slot instead of creating a
duplicate. The Timeline panel uses composition tabs instead of a normal panel tab; right-click the
empty part of its tab bar next to the composition tabs to open the Timeline panel menu.
Closing the active composition tab switches directly to its neighbor without running the normal composition-change animation.
| Action | Location |
|---|---|
| Save Current Layout | View -> Layouts |
| Save to Current Layout | View -> Layouts |
| Load Saved Layout | View -> Layouts |
| Set Current as Default | View -> Layouts |
| Set Saved Layout as Default | View -> Layouts |
| Load Default Layout | View -> Layouts |
Edit menu -> Settings -> MIDI
- Browser Web MIDI API support
- MIDI device connected
- Permission granted
MIDI Control (N devices)
View -> Panels -> MIDI Mappingopens the dedicated mapping panel- The panel lists all assigned transport, marker, slot, and parameter bindings
- Clicking a binding previews the exact trigger path without needing a physical MIDI note
- Matching mappings flash in the panel when the hardware input is used
- Parameter bindings can be range-adjusted, inverted, and damped directly in the mapping panel
- Empty-state guidance points back to Settings and the marker right-click menu
- Right-click a numeric parameter name in the Properties panel to open its MIDI menu and learn or clear a MIDI note/CC binding. Right-clicking the numeric value itself still resets the value to its default. Learned CC values map across the parameter's configured range and then use the same edit path as manual changes.
Configured in Settings -> Output.
| Preset | Dimensions |
|---|---|
| 1080p | 1920 x 1080 |
| 1440p | 2560 x 1440 |
| 4K | 3840 x 2160 |
| 9:16 | 1080 x 1920 |
Custom width and height are also supported. This applies to newly created compositions; the active composition can still be configured per item in the Media panel.
Configured in Settings -> Previews.
| Option | Render Size |
|---|---|
| Full | 100% |
| Half | 50% |
| Quarter | 25% |
Lower preview quality reduces GPU workload and memory use on engine-backed preview targets. It does not change export resolution or the HTML-only source monitor.
Edit menu -> Settings
| Category | Contents |
|---|---|
| General | Save mode, autosave interval/enable state, import copy behavior, timeline zoom anchor, shortcut/mouse input display, output defaults, preview quality, GPU preference, AI feature settings, and mobile/desktop view mode |
| MIDI | Browser MIDI permission state, transport learning, and device list |
| Shortcuts | Preset selection, overrides, recorder, reset, and custom preset controls |
| Appearance | Theme selection, custom theme controls, interface text scale, interface font, high-readability colors, and studio surface skins |
| Audio | Browser input/output device selection, latency mode, device API status, output-routing status, and AudioContext diagnostics |
| Transcription | Provider selection and pricing |
| Native Helper | Native helper connection, port, helper-backed flows, and decode settings |
| API Keys | OpenAI, AssemblyAI, Deepgram, Kie.ai, PiAPI (legacy/compat), ElevenLabs, and YouTube |
The Preferences dialog drag position is updated at animation-frame cadence during mouse movement so moving the dialog does not force React state updates for every raw mouse event.
The current Media generator-relevant keys are:
Kie.aifor non-production local-provider FlashBoard generation flowsKie.aialso powers hosted FlashBoard Suno music through the CloudflareKIEAI_API_KEYsecret in productionElevenLabsfor non-production BYO text-to-speech; production hosted speech uses the CloudflareELEVENLABS_API_KEYsecretPiAPIfor legacy compatibility and older catalog/pricing paths
Hosted cloud access is account/session based and does not depend on a user-entered API key in this dialog.
Top-right of the toolbar:
WebGPU (Vendor) when ready
Loading... during init
- Shows connection state when Native Helper is enabled
- Used for downloads, project file operations, and local AI bridge access
- Right-click to open
- Stay within viewport bounds
- Close on outside click
- Rename
- Delete
- Settings
- Context-specific actions
MasterSelects includes a touch-optimized component tree for mobile devices.
MobileApp.tsx replaces the desktop dock layout on mobile.
| Component | Purpose |
|---|---|
MobileApp |
Root layout, panel state, and gesture handling |
MobilePreview |
Always-visible preview canvas |
MobileTimeline |
Touch-optimized timeline with playhead and trim gestures |
MobileToolbar |
Cut, play/pause, precision mode, and timecode |
MobilePropertiesPanel |
Slide-up properties panel with Transform, Effects, and Audio tabs |
MobileMediaPanel |
Slide-in media browser and import surface |
MobileOptionsMenu |
File, export, and desktop-mode actions |
| Gesture | Action |
|---|---|
| Edge swipe | Open side panels |
| Two-finger swipe left | Undo |
| Two-finger swipe right | Redo |
| Tap toolbar buttons | Cut, play/pause, precision mode |
- The mobile UI keeps preview, timeline, media, and basic properties
- It does not expose the full dock system, floating windows, or scopes
- The options menu can switch back to desktop mode
docs/Features/README.mddocs/Features/Debugging.mddocs/Features/Playback-Debugging.md