You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+1-22Lines changed: 1 addition & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,28 +38,7 @@ Die alten Claude-Commands unter `C:\Users\admin\.claude\commands\` sollen in Cod
38
38
39
39
Wenn ein Skill nicht verfuegbar ist, direkt ueber lokale Skripte, MCP-Tools, HTTP-Bridge oder API arbeiten. Nicht an Claude-Command-Dateien haengen bleiben.
40
40
41
-
## 0.2 gstack Integration
42
-
43
-
`gstack` ist fuer strukturierte Planung, Reviews, Browser-QA und Security-Checks verfuegbar. Global installieren, nicht ins Repo vendorisieren.
-`gstack-qa`, `gstack-qa-only`, `gstack-browse`, `gstack-open-gstack-browser` und `gstack-setup-browser-cookies` fuer Browser-QA, Repros und auth-geschuetzte Flows
60
-
-`gstack-upgrade` verwenden, statt eine Repo-lokale gstack-Kopie zu pflegen
61
-
62
-
## 0.3 MasterSelects Debug Bridge
41
+
## 0.2 MasterSelects Debug Bridge
63
42
64
43
Fuer App-Debugging existieren lokale AI-Tools hinter `POST http://localhost:5173/api/ai-tools`. Voraussetzung: Dev-Server laeuft und die App ist im Browser geoeffnet.
- Claude Code: `git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup --team`
41
-
- Windows: Git Bash oder WSL verwenden; `bun` und `node` muessen installiert sein
42
-
- Nach der Codex-Installation Codex neu starten, damit neue Skills geladen werden
43
-
44
-
Einsatzregeln:
45
-
46
-
-`/masterselects` bleibt erste Wahl fuer Timeline-, Preview-, Clip- und Debug-Bridge-Automation in der lokalen App
47
-
-`gstack-office-hours`, `gstack-autoplan`, `gstack-plan-eng-review`, `gstack-plan-design-review` und `gstack-plan-devex-review` fuer Discovery, Scope und Plan-Qualitaet in Codex
48
-
-`/office-hours`, `/autoplan`, `/plan-eng-review`, `/plan-design-review` und `/plan-devex-review` fuer denselben Workflow in Claude Code
49
-
-`gstack-review` oder `/review` fuer unabhaengige Code-Reviews
50
-
-`gstack-investigate` oder `/investigate` fuer Root-Cause-Debugging statt Trial-and-Error-Fixes
51
-
-`gstack-cso` oder `/cso` fuer Security-Reviews
52
-
-`gstack-qa`, `gstack-qa-only`, `gstack-browse`, `gstack-open-gstack-browser`, `gstack-setup-browser-cookies` oder die entsprechenden Slash-Commands fuer Browser-QA, Repros und auth-geschuetzte Flows
53
-
-`gstack-upgrade` oder `/gstack-upgrade` verwenden, statt eine Repo-lokale gstack-Kopie zu pflegen
| 3D effector clips | Stable but specialized | They influence shared-scene 3D layers live at playback time. |
19
+
| Splat effector clips | Stable but specialized | They deform Three.js splats live at playback time. |
22
20
| Gaussian avatar import | Legacy only | Import is blocked; existing projects may still expose blendshape editing. |
23
21
| Temporal / particle splat settings | Experimental | Wired in the engine/export path, but not yet exposed as a dedicated properties tab. |
24
22
@@ -36,7 +34,7 @@ Legacy gaussian-avatar support still exists in code for migration and old projec
36
34
37
35
Three.js is used as the shared 3D scene for classic 3D layers and for the default gaussian-splat route. The native gaussian-splat renderer is a separate WebGPU path, enabled by the clip-level `useNativeRenderer` setting.
38
36
39
-
Camera clips and 3D effectors only affect the shared Three.js scene. They do not drive the native gaussian-splat renderer.
37
+
Camera clips and splat effectors only affect the shared Three.js scene. They do not drive the native gaussian-splat renderer.
40
38
41
39
## Stable 3D Features
42
40
@@ -53,8 +51,6 @@ Camera clips and 3D effectors only affect the shared Three.js scene. They do not
53
51
- Models are auto-centered and normalized to fit the viewport.
54
52
- Default lighting is Ambient plus Directional lighting.
55
53
- The Transform panel exposes a wireframe debug toggle for model clips.
56
-
- Numbered `.glb` files like `frame000000.glb`, `frame000001.glb`, `frame000002.glb` are grouped into one model-sequence asset during import.
57
-
- GLB sequences currently default to 30fps and use frame-based playback through the existing model clip path.
58
54
59
55
### Primitive Meshes and 3D Text
60
56
@@ -94,14 +90,11 @@ The Transform tab also turns into camera-orbit controls for the active scene cam
94
90
Gaussian splat clips are imported from `.ply` and `.splat` files.
95
91
96
92
- Clips are created as `is3D: true`.
97
-
- The clip-level render tab exposes `useNativeRenderer`, `maxSplats`, `sortFrequency`, `splatScale`, `orientationPreset`, `nearPlane`, and `farPlane`.
93
+
- The clip-level render tab exposes `useNativeRenderer`, `maxSplats`, `sortFrequency`, `splatScale`, `nearPlane`, and `farPlane`.
98
94
- The default renderer is the shared Three.js scene path.
99
95
- Native WebGPU rendering is optional and off by default.
100
-
- Numbered `.ply` or `.splat` files like `scan000000.ply`, `scan000001.ply`, `scan000002.ply` are grouped into one gaussian-splat sequence asset during batch import.
101
-
- Gaussian-splat sequences currently stay on the shared Three.js scene path even if a clip was previously set to native render.
102
-
- The shared-scene route participates in scene cameras and 3D effectors.
96
+
- The shared-scene route participates in scene cameras and splat effectors.
103
97
- The native route uses its own camera-style navigation controls in the Transform tab.
104
-
- A per-clip `3D Effector` toggle in the Transform tab lets you opt shared-scene splat/model layers in or out.
105
98
106
99
Some gaussian-splat settings exist in the data model and export pipeline but are not yet surfaced as a full dedicated UI:
107
100
@@ -111,20 +104,16 @@ Some gaussian-splat settings exist in the data model and export pipeline but are
111
104
112
105
Those are wired through the renderer and export code, but they should still be treated as in-progress surface area.
113
106
114
-
## 3D Effectors
107
+
## Splat Effectors
115
108
116
-
3D effector clips are non-rendering timeline clips that influence shared-scene 3D layers.
109
+
Splat effector clips are timeline clips that only affect Three.js splats.
117
110
118
111
- Modes: `repel`, `attract`, `swirl`, and `noise`
119
112
- Controls: strength, falloff, speed, and seed
120
113
- Transform scale acts as the effector radius
121
114
- They do not render visible content on their own
122
-
- Shared-scene gaussian splats use the direct splat deformation path
123
-
- Shared-scene gaussian-splat sequences also use that direct splat deformation path frame by frame
124
-
- Models, primitive meshes, and 3D text receive object-level motion
125
-
- Native gaussian splats ignore 3D effectors because they do not run in the shared Three.js scene
126
115
127
-
This is a shared-scene 3D feature that is stable in the UI, but it does not extend into the native gaussian-splat renderer.
116
+
This is a good example of a specialized 3D feature that is stable in the UI, but limited to the shared-scene splat path.
128
117
129
118
## Legacy Gaussian Avatars
130
119
@@ -144,7 +133,7 @@ If you see avatar-specific code paths in the renderer or AI tooling, treat them
Copy file name to clipboardExpand all lines: docs/Features/AI-Integration.md
+6-18Lines changed: 6 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,40 +29,29 @@ GPT-powered editing with 79 exported tools across 15 exported definition groups,
29
29
30
30
### Features
31
31
- Interactive chat interface
32
-
- Model selection badge with popover
33
-
- Shared hosted-credit pricing per model
32
+
- Model selection dropdown
34
33
- Conversation history
35
34
- Clear chat button
36
35
- Auto-scrolling
37
36
- Tool execution indicators
38
-
- Styled approval cards for mutating/sensitive tool calls
39
-
- Compact control pills below the prompt box
40
-
- Optional per-panel approval bypass toggle below the send button
41
-
- Thinking-effort selector for supported OpenAI chat models
42
37
43
38
### Available Models
44
39
```
45
-
GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano
46
-
GPT-5.3 Chat, GPT-5.3 Codex
47
-
GPT-5.2, GPT-5.2 Codex
48
-
GPT-5.1, GPT-5.1 Codex Mini
40
+
GPT-5.2, GPT-5.2 Pro
41
+
GPT-5.1, GPT-5.1 Codex, GPT-5.1 Codex Mini
49
42
GPT-5, GPT-5 Mini, GPT-5 Nano
50
43
GPT-4.1, GPT-4.1 Mini, GPT-4.1 Nano
51
44
GPT-4o, GPT-4o Mini
52
-
o3, o4-mini, o3-mini
45
+
o3, o4-mini, o3-pro (reasoning)
53
46
```
54
47
55
48
Default model: `gpt-5.1`
56
49
57
-
The dropdown is sourced from `src/shared/openAiModelCatalog.ts`. That same catalog also drives hosted chat billing in `functions/lib/modelPricing.ts`, so the UI label and the charged credits stay in sync.
58
-
The same catalog also marks which models support OpenAI reasoning effort controls, so the chat panel only shows the Thinking control when the selected model can use it.
59
-
60
50
### Editor Mode
61
-
The AI chat panel always runs with editor tools enabled:
51
+
When enabled:
62
52
- Includes timeline context in prompts
63
53
- Uses the exported AI tool catalog from `src/services/aiTools/definitions`
64
54
- The chat UI applies its own approval gate before calling mutating or sensitive tools
65
-
- Users can temporarily bypass those confirmations from the panel
66
55
- AI can manipulate timeline directly
67
56
68
57
The current tool surface is 79 exported tool definitions across 15 exported definition groups. Two dispatch gaps remain in the shared registry:
@@ -103,7 +92,6 @@ That console surface is dev-only. The Vite dev bridge and the Native Helper HTTP
103
92
- Active IN / OUT / REF assignments appear as removable color badges around the prompt box
104
93
- Hovering a prompt-box badge strongly emphasizes the linked board node for as long as the badge is hovered
105
94
- Nano Banana 2 accepts up to 14 ordered reference images; the composer labels them as `REF 1`, `REF 2`, ... so prompts can refer to them explicitly
106
-
- FlashBoard's Kie.ai catalog includes Kling 3.0, Seedance 2.0, and Nano Banana 2; Seedance 2.0 currently ships as a Board-only Kie option with text-to-video and image-to-video support
107
95
- IN / OUT / REF outlines scale with zoom and use a stronger glow so references stay readable while navigating the board
108
96
109
97
### Current Backends
@@ -112,7 +100,7 @@ The current AI Video stack is no longer best described as "PiAPI as one unified
112
100
113
101
| Backend | Where it is used | Notes |
114
102
|---------|------------------|-------|
115
-
|`Kie.ai`| Classic generator and FlashBoard |Classic provider list comes from `getKieAiProviders()`; FlashBoard extends the Kie catalog with Seedance 2.0; user-supplied key in Settings |
103
+
|`Kie.ai`| Classic generator and FlashBoard |Current provider list comes from `getKieAiProviders()`; user-supplied key in Settings |
116
104
|`MasterSelects Cloud`| Classic generator and FlashBoard when hosted access is available | Hosted credits/account flow; board mode resolves to hosted Kling when no local Kie key is present |
117
105
|`PiAPI`| Legacy compatibility and some catalog/pricing metadata | Still present in older history/key migration paths and FlashBoard pricing/catalog helpers, but not the primary runtime path the current panel describes |
Copy file name to clipboardExpand all lines: docs/Features/FlashBoard.md
+1-4Lines changed: 1 addition & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ FlashBoard is the AI canvas workspace behind the AI Video panel's Board mode. It
13
13
FlashBoard is not a separate model backend. It is a workspace layer on top of the existing AI services:
14
14
15
15
-`piapi` for the PiAPI catalog
16
-
-`kieai` for Kie.ai Kling 3.0, Seedance 2.0, and Nano Banana 2
16
+
-`kieai` for Kie.ai Kling 3.0 and Nano Banana 2
17
17
-`cloud` for hosted Kling 3.0 and hosted Nano Banana 2
18
18
19
19
The AI Video panel switches into FlashBoard when the user selects Board mode. If the user has no Kie.ai key and is signed in to MasterSelects Cloud, the board uses the hosted cloud service scope. Otherwise it stays on Kie.ai.
@@ -68,13 +68,10 @@ The board uses the shared catalog from `FlashBoardModelCatalog`:
68
68
69
69
- PiAPI video providers from the shared PiAPI catalog
70
70
- Kie.ai Kling 3.0 video
71
-
- Kie.ai Seedance 2.0 video
72
71
- Kie.ai Nano Banana 2 image generation
73
72
- Cloud Kling 3.0 video
74
73
- Cloud Nano Banana 2 image generation
75
74
76
-
Seedance 2.0 is currently exposed only in FlashBoard on the Kie.ai path. The existing Classic AI Video flow remains narrower and continues to focus on the classic Kie provider list.
77
-
78
75
The classic AI Video flow is narrower: it currently exposes only the Kie.ai Kling 3.0 provider list, while FlashBoard exposes the richer catalog.
Copy file name to clipboardExpand all lines: docs/Features/Media-Panel.md
+6-12Lines changed: 6 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,9 +39,6 @@ The panel also accepts a few specialized asset types that flow into the timeline
39
39
-`model` files: OBJ, glTF/GLB, FBX
40
40
-`gaussian-splat` files: PLY, SPLAT
41
41
42
-
Numbered `.glb` files with a shared prefix are detected as a sequence during batch import. A folder containing `frame000000.glb`, `frame000001.glb`, `frame000002.glb` and so on will appear as one model asset instead of many separate files.
43
-
Numbered `.ply` or `.splat` files with a shared prefix are also detected as a sequence during batch import. A folder containing `scan000000.ply`, `scan000001.ply`, `scan000002.ply` and so on will appear as one gaussian-splat asset instead of many separate files.
44
-
45
42
Lottie imports are treated as first-class media items. `.json` files are only accepted when their contents actually match Lottie structure, so arbitrary JSON data is not misclassified as animation.
46
43
47
44
### Import Methods
@@ -57,7 +54,7 @@ Click the **+ Add** button for creating new items:
57
54
-**3D Text** - New 3D text mesh item
58
55
-**Solid** - New solid color item (placed in auto-created "Solids" folder)
59
56
-**Camera** - New camera item
60
-
-**3D Effector** - New shared-scene 3D effector item
57
+
-**Splat Effector** - New splat-effector item
61
58
-**Mesh** ▶ - Submenu with 3D primitive meshes (placed in auto-created "Meshes" folder):
62
59
- Cube, Sphere, Plane, Cylinder, Torus, Cone
63
60
- Creates a `MeshItem` which can be dragged to the timeline as a 3D clip
@@ -78,13 +75,11 @@ Imports use a two-phase approach:
78
75
79
76
1.**Phase 1 (instant):** A placeholder entry appears immediately in the panel with `isImporting: true`, showing file name and size
80
77
2.**Phase 2 (background):** Full processing runs in the background:
81
-
- Media info extraction (dimensions, duration, FPS, codec, bitrate, audio detection)
82
-
- Thumbnail generation (for video and image files)
83
-
- File hash calculation (for deduplication and proxy matching)
84
-
- Copy to project RAW folder when `copyMediaToProject` is enabled, or when the import is forced
85
-
- Numbered GLB sequence grouping into a single 30fps model-sequence asset
86
-
- Numbered PLY/SPLAT sequence grouping into a single 30fps gaussian-splat sequence asset
87
-
- Existing proxy detection (by file hash)
78
+
- Media info extraction (dimensions, duration, FPS, codec, bitrate, audio detection)
79
+
- Thumbnail generation (for video and image files)
80
+
- File hash calculation (for deduplication and proxy matching)
81
+
- Copy to project RAW folder when `copyMediaToProject` is enabled, or when the import is forced
82
+
- Existing proxy detection (by file hash)
88
83
89
84
**Deduplication:** Files with matching name + size are automatically skipped.
90
85
@@ -453,7 +448,6 @@ interface MediaFile {
453
448
- Uses actual media duration
454
449
- Audio-only files restricted to audio tracks
455
450
- Files still importing or missing cannot be dragged to timeline
456
-
- Numbered gaussian-splat sequences always stay on the shared Three.js 3D renderer path after drop
457
451
- Compositions cannot be dragged into themselves (active comp check)
458
452
- Mesh items create 3D clips with `is3D: true` and `meshType` (rendered via Three.js)
0 commit comments