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
+22-1Lines changed: 22 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,28 @@ 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 MasterSelects Debug Bridge
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
42
63
43
64
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. |
20
22
| Gaussian avatar import | Legacy only | Import is blocked; existing projects may still expose blendshape editing. |
21
23
| Temporal / particle splat settings | Experimental | Wired in the engine/export path, but not yet exposed as a dedicated properties tab. |
22
24
@@ -34,7 +36,7 @@ Legacy gaussian-avatar support still exists in code for migration and old projec
34
36
35
37
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.
36
38
37
-
Camera clips and splat effectors only affect the shared Three.js scene. They do not drive the native gaussian-splat renderer.
39
+
Camera clips and 3D effectors only affect the shared Three.js scene. They do not drive the native gaussian-splat renderer.
38
40
39
41
## Stable 3D Features
40
42
@@ -51,6 +53,8 @@ Camera clips and splat effectors only affect the shared Three.js scene. They do
51
53
- Models are auto-centered and normalized to fit the viewport.
52
54
- Default lighting is Ambient plus Directional lighting.
53
55
- 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.
54
58
55
59
### Primitive Meshes and 3D Text
56
60
@@ -90,11 +94,14 @@ The Transform tab also turns into camera-orbit controls for the active scene cam
90
94
Gaussian splat clips are imported from `.ply` and `.splat` files.
91
95
92
96
- Clips are created as `is3D: true`.
93
-
- The clip-level render tab exposes `useNativeRenderer`, `maxSplats`, `sortFrequency`, `splatScale`, `nearPlane`, and `farPlane`.
97
+
- The clip-level render tab exposes `useNativeRenderer`, `maxSplats`, `sortFrequency`, `splatScale`, `orientationPreset`, `nearPlane`, and `farPlane`.
94
98
- The default renderer is the shared Three.js scene path.
95
99
- Native WebGPU rendering is optional and off by default.
96
-
- The shared-scene route participates in scene cameras and splat effectors.
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.
97
103
- 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.
98
105
99
106
Some gaussian-splat settings exist in the data model and export pipeline but are not yet surfaced as a full dedicated UI:
100
107
@@ -104,16 +111,20 @@ Some gaussian-splat settings exist in the data model and export pipeline but are
104
111
105
112
Those are wired through the renderer and export code, but they should still be treated as in-progress surface area.
106
113
107
-
## Splat Effectors
114
+
## 3D Effectors
108
115
109
-
Splat effector clips are timeline clips that only affect Three.js splats.
116
+
3D effector clips are non-rendering timeline clips that influence shared-scene 3D layers.
110
117
111
118
- Modes: `repel`, `attract`, `swirl`, and `noise`
112
119
- Controls: strength, falloff, speed, and seed
113
120
- Transform scale acts as the effector radius
114
121
- 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
115
126
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.
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.
117
128
118
129
## Legacy Gaussian Avatars
119
130
@@ -133,7 +144,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
+18-6Lines changed: 18 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,29 +29,40 @@ 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 dropdown
32
+
- Model selection badge with popover
33
+
- Shared hosted-credit pricing per model
33
34
- Conversation history
34
35
- Clear chat button
35
36
- Auto-scrolling
36
37
- 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
37
42
38
43
### Available Models
39
44
```
40
-
GPT-5.2, GPT-5.2 Pro
41
-
GPT-5.1, GPT-5.1 Codex, GPT-5.1 Codex Mini
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
42
49
GPT-5, GPT-5 Mini, GPT-5 Nano
43
50
GPT-4.1, GPT-4.1 Mini, GPT-4.1 Nano
44
51
GPT-4o, GPT-4o Mini
45
-
o3, o4-mini, o3-pro (reasoning)
52
+
o3, o4-mini, o3-mini
46
53
```
47
54
48
55
Default model: `gpt-5.1`
49
56
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
+
50
60
### Editor Mode
51
-
When enabled:
61
+
The AI chat panel always runs with editor tools enabled:
52
62
- Includes timeline context in prompts
53
63
- Uses the exported AI tool catalog from `src/services/aiTools/definitions`
54
64
- The chat UI applies its own approval gate before calling mutating or sensitive tools
65
+
- Users can temporarily bypass those confirmations from the panel
55
66
- AI can manipulate timeline directly
56
67
57
68
The current tool surface is 79 exported tool definitions across 15 exported definition groups. Two dispatch gaps remain in the shared registry:
@@ -92,6 +103,7 @@ That console surface is dev-only. The Vite dev bridge and the Native Helper HTTP
92
103
- Active IN / OUT / REF assignments appear as removable color badges around the prompt box
93
104
- Hovering a prompt-box badge strongly emphasizes the linked board node for as long as the badge is hovered
94
105
- 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
95
107
- IN / OUT / REF outlines scale with zoom and use a stronger glow so references stay readable while navigating the board
96
108
97
109
### Current Backends
@@ -100,7 +112,7 @@ The current AI Video stack is no longer best described as "PiAPI as one unified
100
112
101
113
| Backend | Where it is used | Notes |
102
114
|---------|------------------|-------|
103
-
|`Kie.ai`| Classic generator and FlashBoard |Current provider list comes from `getKieAiProviders()`; user-supplied key in Settings |
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 |
104
116
|`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 |
105
117
|`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
+4-1Lines changed: 4 additions & 1 deletion
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 and Nano Banana 2
16
+
-`kieai` for Kie.ai Kling 3.0, Seedance 2.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,10 +68,13 @@ 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
71
72
- Kie.ai Nano Banana 2 image generation
72
73
- Cloud Kling 3.0 video
73
74
- Cloud Nano Banana 2 image generation
74
75
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
+
75
78
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
+12-6Lines changed: 12 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,9 @@ 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
+
42
45
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.
43
46
44
47
### Import Methods
@@ -54,7 +57,7 @@ Click the **+ Add** button for creating new items:
54
57
-**3D Text** - New 3D text mesh item
55
58
-**Solid** - New solid color item (placed in auto-created "Solids" folder)
56
59
-**Camera** - New camera item
57
-
-**Splat Effector** - New splat-effector item
60
+
-**3D Effector** - New shared-scene 3D effector item
58
61
-**Mesh** ▶ - Submenu with 3D primitive meshes (placed in auto-created "Meshes" folder):
59
62
- Cube, Sphere, Plane, Cylinder, Torus, Cone
60
63
- Creates a `MeshItem` which can be dragged to the timeline as a 3D clip
@@ -75,11 +78,13 @@ Imports use a two-phase approach:
75
78
76
79
1.**Phase 1 (instant):** A placeholder entry appears immediately in the panel with `isImporting: true`, showing file name and size
77
80
2.**Phase 2 (background):** Full processing runs in the background:
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)
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)
83
88
84
89
**Deduplication:** Files with matching name + size are automatically skipped.
85
90
@@ -448,6 +453,7 @@ interface MediaFile {
448
453
- Uses actual media duration
449
454
- Audio-only files restricted to audio tracks
450
455
- 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
451
457
- Compositions cannot be dragged into themselves (active comp check)
452
458
- Mesh items create 3D clips with `is3D: true` and `meshType` (rendered via Three.js)
0 commit comments