How ganbo-gab/open-storyboard-canvas works
Open Storyboard Canvas is a local desktop node-canvas for AI image, video, storyboard, panorama, and director-studio work. The principal workflow is to create or open a project, arrange reference and generation nodes, submit work to a selected provider, track and materialize results, then continue editing or exporting them. Separate branches cover canvas-agent assistance, external agents, settings and portability, and director motion/video export. Edges reflect README capabilities and the sampled caller relationships; several feature internals are documented but not sampled, so uncertain wiring is omitted.
Main entry points: Canvas.tsx Canvas and nodes · canvasStore.ts Canvas state · App.tsx App shell · useCanvasGenerationPolling.ts Job tracking
Components 27
Desktop app
- App shell
src/App.tsx - Tauri runtime
src-tauri/src/lib.rs
Canvas workflow
- Canvas workspace
src/features/canvas/CanvasWorkspace.tsx - Canvas and nodes
src/features/canvas/Canvas.tsx - Canvas state
src/stores/canvasStore.ts - Canvas operations
src/features/canvas/application/canvasCommandService.ts - Generation workflow
src/features/canvas/application/canvasGenerationFacade.ts - Job tracking
src/features/canvas/hooks/useCanvasGenerationPolling.ts - AI provider gateway
src/features/canvas/infrastructure/tauriAiGateway.ts - Provider adapters
src-tauri/src/ai/providers/mod.rs - Image and video tools
src/features/canvas/ui/MultiFunctionPanel.tsx - Director studio
src/features/canvas/ui/DirectorStudioShell.tsx - Motion and export
src/features/canvas/ui/useDirectorStudioMotion.ts
Canvas agents
- Canvas agent UI
src/features/canvas/agent/ui/CanvasAgentDock.tsx - Agent controller
src/features/canvas/agent/application/canvasAgentController.ts - Agent sessions
src/features/canvas/agent/infrastructure/agentSessionRepository.ts - External agent runtime
src/features/canvas/agent/ui/useExternalAgentRuntime.ts - External agent commands
src-tauri/src/commands/external_agent/mod.rs
Project support
- Project home
src/features/project/ProjectHome.tsx - Project manager
src/features/project/ProjectManager.tsx - Project storage
src/stores/projectStore.ts - Settings and providers
src/components/SettingsDialog.tsx - Import and export
src/features/portability/application/settingsPortability.ts
Other components
- Creator
- AI services
- External agents
- Local project files
Connections 32
- Creator → App shell: opens
- App shell → Project home: shows
- App shell → Canvas workspace: opens
- Project home → Project manager: manages projects
- Project manager → Project storage: reads and updates
- Canvas workspace → Canvas and nodes: renders
- Canvas and nodes → Canvas state: reads and updates
- Canvas and nodes → Canvas operations: dispatches edits
- Canvas operations → Canvas state: updates
- Canvas and nodes → Generation workflow: submits generation
- Generation workflow → AI provider gateway: requests generation
- AI provider gateway → Tauri runtime: invokes commands
- Tauri runtime → Provider adapters: dispatches provider calls
- Provider adapters → AI services: sends requests
- Canvas and nodes → Job tracking: tracks jobs
- Job tracking → AI provider gateway: queries results
- Job tracking → Canvas state: updates results
- Canvas and nodes → Image and video tools: edits media
- Canvas and nodes → Director studio: opens studio
- Director studio → Motion and export: edits motion
- Motion and export → Canvas state: adds export
- Canvas and nodes → Canvas agent UI: opens agent
- Canvas agent UI → Agent controller: runs turns
- Agent controller → Agent sessions: persists sessions
- Agent controller → Canvas state: reads canvas context
- Canvas agent UI → External agent runtime: starts external run
- External agent runtime → External agent commands: invokes commands
- External agent commands → External agents: connects
- Settings and providers → Tauri runtime: configures runtime
- Settings and providers → Import and export: backs up settings
- Import and export → Local project files: imports and exports
- Project storage → Local project files: persists projects