Skip to content

ciphers

Classic video generation is one-shot—you prompt, wait, and if the clip is slightly wrong you start over.

Core trick

Re-renders each natural-language edit from a locked seed image and motion plan, so refinements do not restart the whole clip.

Tags

Description

Classic video generation is one-shot—you prompt, wait, and if the clip is slightly wrong you start over. MotionDesk turns that into an iterative loop: seed a still (NB2 Lite), have Gemini 3 Flash draft the motion plan and edit chips, animate it (Omni Flash), then keep refining with natural language (and optional style/element reference images) without regenerating from scratch. It mainly helps people who need short, directed motion clips and hate one-shot regen loops: Product / brand marketers — animate stills, swap materials or backgrounds, keep lighting consistent for ads and social Creators & short-form editors — iterate camera, mood, and props conversationally for Reels/Shorts (especially 9:16) Designers & art directors — explore style transfers and look variants from a locked seed without restarting the shot Indie filmmakers / storyboarders — build multi-shot narrative beats from planned takes, then refine each clip with chat Demo builders / hackathon teams — show a full NB2 → plan (Gemini 3 Flash) → Omni generate/edit pipeline end to end
karthik1codes/motiondesk★ 00 forksTypeScriptCreated Jul 11, 2026 · last push Jul 11, 2026

README excerpt

# SignDesk — Conversational Video & Motion

Generic tutor workspace for the **Gemini Omni Flash** challenge.

**Pipeline:** NB2 Lite seed stills → Gemini 3 Flash motion prompt → Omni Flash video → Omni Flash multi-turn edits.

Theme is intentionally generic (`src/lib/theme.ts`). Swap branding later for **AI Kitchen** without rewriting orchestration.

## Models

| Role | Model ID | Job |
| --- | --- | --- |
| Seed / keyframe | `gemini-3.1-flash-lite-image` | Fast stills |
| Motion prompt | `gemini-3.5-flash` | Draft Omni animation prompt from the seed brief |
| Generate + edit video | `gemini-omni-flash-preview` | Animate + conversational edits via Interactions API |

**Edit channel:** text instructions (and optional reference images for swaps). **Audio input is not supported** on the Omni Flash Gemini API yet — do not build voice-edit as a required path.

## Stack

- Next.js 15 (App Router) + TypeScript + Tailwind
- `@google/genai` (Interactions API for Omni; `generateContent` for NB2 Lite)
- In-memory sessions (demo) — replace later for production

## Quick start

```bash
cp .env.local.example .env.local
# set GEMINI_API_KEY=...

npm install
npm run dev
```

Open [http://localhost:3000](http://localhost:3000).

## Architecture

```text
src/
├── app/
│   ├── page.tsx                 # Tutor UI
│   └── api/
│       ├── session/route.ts     # Create session
│       ├── seed/route.ts        # NB2 Lite still
│       ├── video/route.ts       # Omni generate (turn 1)
│       └── ed

Team