Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/Features/3D-Layers.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ Create mesh clips from the Media Panel via `+ Add > Mesh` or the context menu:
- Rotation dragging follows the selected projected local ring and applies the delta as a local-axis rotation before converting back to Euler transform values. This keeps red, green, and blue controls aligned with the visual local gizmo even after the object is already rotated.
- Double-clicking an axis resets that single component, while double-clicking the white center hub resets the active transform group.
- The W/E/R hotkeys switch between Move, Rotate, and Scale while the preview overlay is active.
- 3D object handles remain visible and selectable in normal preview, layer Edit mode, camera Edit mode, and camera orthographic edit views. Clicking a handle selects that clip and activates the native scene gizmo for the selected 3D object.

### Scene Camera

Expand All @@ -103,7 +104,7 @@ Camera clips expose their own Properties tab with:

The Transform tab becomes scene-navigation controls for the active camera clip. In FPS mode, the preview accepts WASD/QE navigation plus uncapped mouse look. Free scene navigation now belongs to camera clips rather than gaussian-splat clips.

When Edit mode is enabled while the playhead is over a camera clip, the preview switches to a temporary edit-view camera. Orbiting, panning, and zooming this view does not write transform changes back to the real camera clip; entering and leaving Edit mode blends between the edit-view camera and the timeline camera. In that edit-view, the real timeline camera is drawn as a small projected camera wireframe with a direction/frustum indicator. The full viewport gizmo appears only when that camera clip is selected, and explicit gizmo drags still edit the camera clip through the normal transform/keyframe path. Camera clips do not show a viewport gizmo in the normal view. The 2D layer bounding-box editor is only active in Edit mode when no camera clip is active at the playhead.
When Edit mode is enabled while the playhead is over a camera clip, the preview switches to a temporary edit-view camera. Orbiting, panning, and zooming this view does not write transform changes back to the real camera clip; entering and leaving Edit mode blends between the edit-view camera and the timeline camera. In that edit-view, shortcuts `1`, `2`, and `3` animate to orthographic Front, Side, and Top views, and `4` animates back to the normal edit-view camera. Edit views draw a projected Blender-style world grid that animates with the camera view instead of snapping as a screen overlay: Front uses XY at `z=0`, Side uses YZ at `x=0`, and Top/free camera uses XZ at `y=0`. In the camera edit views, wheel zoom and Shift-drag/MMB/RMB pan only move the temporary viewport, regular 3D object handles stay visible and selectable, and selecting a non-camera 3D object activates the same native scene gizmo used by the normal preview. The real timeline camera is drawn as a small projected camera wireframe with a direction/frustum indicator. The full viewport gizmo appears only when that camera clip is selected in the normal edit-view camera, and explicit gizmo drags still edit the camera clip through the normal transform/keyframe path. Camera clips do not show a viewport gizmo in the normal view. The 2D layer bounding-box editor is only active in Edit mode when no camera clip is active at the playhead.

Camera rotation keyframes interpolate through the shortest angular path so timeline flights do not spin the long way around when yaw, pitch, or roll crosses a 360-degree wrap. Camera transform keyframes for pan, distance, zoom, forward travel, and rotation render through world-pose interpolation: the camera eye and target are interpolated between keyed world poses, keeping FPS-look moves, zoom-outs, and vertical-look roll moves from drifting away between keyframes.

Expand Down
3 changes: 2 additions & 1 deletion docs/Features/Keyboard-Shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ On Mac, `Ctrl` maps to `Cmd` and `Alt` maps to `Option`.

### Preview

- `Tab` toggles preview edit mode on the active editable preview source.
- `Tab` toggles preview edit mode on the focused editable preview, or on the first editable preview when no preview has focus.
- `1`, `2`, `3`, and `4` highlight the matching slot in the multi-preview panel.

### Panels
Expand All @@ -123,6 +123,7 @@ On Mac, `Ctrl` maps to `Cmd` and `Alt` maps to `Option`.

- `Tab` only works when the preview source is editable.
- The preview panel ignores the shortcut when showing a non-editable source monitor.
- In camera edit mode, `1`, `2`, `3`, and `4` animate only the focused/first edit preview between Front, Side, Top, and Camera view.

### Docking

Expand Down
4 changes: 4 additions & 0 deletions docs/Features/Preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Current preview-related overlays and modes include:
- Non-active compositions are rendered as independent targets.
- `renderScheduler` drives those targets without depending on the main editor preview loop.
- Each target can toggle its own transparency grid state.
- Edit mode is panel-local: the Edit button only affects that preview, and the global `Tab` shortcut targets the focused preview or, with no focused preview, the first editable preview.

### Output Windows

Expand Down Expand Up @@ -138,6 +139,9 @@ Edit mode is a canvas overlay for layer transforms.
- Shows bounding boxes and drag handles for the selected layer.
- Supports zoom, pan, and transform gestures.
- Uses a full-container overlay canvas so pasteboard space outside the composition remains interactive.
- Multiple preview panels can mix edit and non-edit views at the same time.
- 3D object handles remain visible across preview modes; selecting one activates the native 3D scene gizmo for that clip.
- Edit views can render a projected world grid that follows camera-view animation instead of snapping as a screen overlay. The grid plane matches the edit view: Front uses XY at `z=0`, Side uses YZ at `x=0`, and Top/free camera uses XZ at `y=0`.

### Limitation

Expand Down
37 changes: 37 additions & 0 deletions src/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -10991,6 +10991,7 @@ input[type="checkbox"] {
}

.preview-camera-wireframe-line {
fill: none;
stroke: rgba(20, 184, 166, 0.78);
stroke-width: 1.5;
stroke-linecap: round;
Expand All @@ -11016,6 +11017,42 @@ input[type="checkbox"] {
drop-shadow(0 0 5px rgba(45, 212, 191, 0.58));
}

.preview-scene-world-grid {
position: absolute;
inset: 0;
overflow: visible;
pointer-events: none;
}

.preview-scene-world-grid-line {
fill: none;
stroke: rgba(148, 163, 184, 0.22);
stroke-width: 1;
stroke-linecap: round;
stroke-linejoin: round;
vector-effect: non-scaling-stroke;
filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.7));
}

.preview-scene-world-grid-line.major {
stroke: rgba(148, 163, 184, 0.36);
}

.preview-scene-world-grid-line.axis-x {
stroke: rgba(239, 68, 68, 0.58);
stroke-width: 1.6;
}

.preview-scene-world-grid-line.axis-y {
stroke: rgba(34, 197, 94, 0.58);
stroke-width: 1.6;
}

.preview-scene-world-grid-line.axis-z {
stroke: rgba(59, 130, 246, 0.58);
stroke-width: 1.6;
}

.preview-scene-object-handle.selected {
background: #2563eb;
box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.92), 0 8px 20px rgba(0, 0, 0, 0.45);
Expand Down
10 changes: 10 additions & 0 deletions src/changelog-data.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
[
{
"date": "2026-04-27",
"type": "improve",
"title": "Camera Edit Views Gain Orthographic Shortcuts and Adaptive Grids",
"description": "Camera edit mode now supports animated 1/2/3/4 switching between Front, Side, Top, and Camera views, keeps 3D object handles and native gizmos available, and draws view-matched XY/YZ/XZ grids for orientation.",
"section": "Preview / Camera",
"commits": [
"61691bbe"
]
},
{
"date": "2026-04-27",
"type": "improve",
Expand Down
Loading
Loading