Skip to main content
Version: 3.4 (unreleased)

Flight Path User Guide

A flight path is an animated camera fly-through of your scene. You capture a series of viewpoints (keyframes) from the 3D view, VRGS interpolates a smooth camera path between them, and you can then play it back, fine-tune the timing on a dedicated timeline editor, choreograph which objects are visible at each moment, add spoken narration, and record the result to a movie. Flight paths are ideal for presentations, virtual field trips, and rendering polished fly-over videos of an outcrop.

Works in both renderers

Flight paths run in both the OpenGL and Vulkan 3D views, but they are no longer equal. Narration, guided tours, pause-and-look-around and the timeline transport strip are Vulkan-only. Everything else — capturing viewpoints, building and re-timing the path, scenes, gamepad recording, motion blur and movie recording — works in both. The only thing still exclusive to OpenGL is the presentation-mode controls for stepping a slide deck. Individual features are called out below; if you are authoring guided tours, use the Vulkan renderer.

Concepts

TermMeaning
Viewpoint (control point / keyframe)A captured camera pose — position, orientation (pitch/roll/yaw), zoom and clip planes. These are the keyframes you edit.
Interpolated pathThe dense per-frame camera poses VRGS computes between your viewpoints. This is what plays back and records; it is rebuilt automatically whenever you change a viewpoint.
SegmentThe span between two consecutive viewpoints. Each viewpoint stores a frame count that sets how long the segment takes.
SceneA saved snapshot of object visibility — including large geometry such as meshes and point clouds — that can be triggered along the path, so objects appear or disappear as the camera flies (see Scenes).
Narration clipA piece of recorded or imported audio placed at a point on the path's timeline, so commentary plays as the camera reaches it (see Narration).

The camera uses the same drone-style convention as the rest of VRGS: pitch (look up/down), yaw (heading) and roll. Orientation values in the viewpoint properties are shown in radians.

Creating a flight path

  1. Open the Interpretation tree (the project tree that holds interpretation objects).
  2. Right-click the Flight Paths branch and create a new flight path. It appears in the tree with empty Viewpoints and Scenes sub-branches.
  3. Select the flight path. The Flight Path contextual tab appears on the ribbon, and the Flight Path Timeline panel auto-opens at the bottom of the window.

A flight path needs at least two viewpoints before it can be interpolated.

Capturing viewpoints

Navigate the 3D view to the shot you want, then add a viewpoint:

  • On the Flight Path ribbon tab, choose Add Viewpoint. The current camera pose (position, orientation, zoom and near/far clip planes) is captured as a new keyframe and added to the path.
  • Repeat for each shot. Viewpoints are listed under the flight path's Viewpoints branch and drawn as small camera glyphs in the 3D view.
Gamepad recording

Toggle Record from Gamepad to capture viewpoints automatically as you fly with a gamepad. A new viewpoint is dropped whenever the camera has moved more than a set distance or rotated more than a set angle since the last one. Tune Record Distance (m) and Record Angle (deg) in the flight path's properties under Gamepad Recording.

In the Vulkan view this rides the gamepad poll, so Game Controller mode has to be on for the camera to be read at all. In OpenGL it runs from that view's own game loop.

Viewpoint properties

Select a viewpoint in the tree to edit it in the properties panel:

PropertyDescription
View PositionThe camera's X/Y/Z location.
Direction/Yaw, Angle/Pitch, Rotation/RollCamera orientation, in radians.
Zoom FactorLens zoom / field-of-view at this viewpoint.
FramesHow many frames the segment leaving this viewpoint takes — the primary timing control.
SmoothStepEase the motion in and out of this viewpoint (for the per-segment interpolation methods).

You can also update a viewpoint to the current camera (right-click it, or use the timeline — see below), and copy / paste / duplicate viewpoints from the tree context menu.

Building the path

Once you have two or more viewpoints, build the interpolated path from the ribbon:

  • Create Path — an open path from the first viewpoint to the last.
  • Create Closed Path — a loop that returns from the last viewpoint back to the first.

Interpolation method

The method is set in the flight path properties. Smooth (the default) is recommended for camera work:

MethodBehaviour
SmoothA time-aware spline with continuous velocity and rotation across every keyframe. Best general-purpose choice; produces natural, glide-free motion.
LinearStraight-line constant-velocity segments.
CosineEased segments (slow in/out).
Cubic / CatmullRomClassic interpolating splines through the viewpoints.
HermiteSpline with adjustable Tension and Bias (set in the properties) for tighter or looser curves.
note

Orientation is always interpolated through quaternions, so the camera takes the shortest rotational path and never flips, even between widely separated headings.

Smoothing

The Smooth Path command runs an additional smoothing filter over the interpolated frames, damping out any residual jitter. The number of passes is set by Smooth Iterations in the properties.

Playing back

Use the player on the Flight Path ribbon tab, or right-click the flight path in the tree and choose Play:

ControlAction
PlayStart playback. The same button becomes Pause while playing, Resume while paused, and Continue while the tour is held at a stop-and-talk marker.
EscStop the tour and hand the camera back.
StartJump to the first frame.
EndJump to the last frame.
Step Forward / BackAdvance or rewind one frame. A running tour pauses first, so stepping never fights the clock.
StopEnd the tour outright and keep the camera where the path left it. On the timeline's transport strip; Esc does the same.

The same controls sit on a transport strip along the top of the Flight Path Timeline panel, with a running readout of the tour's position and total length. The readout is also where the tour tells you what it is doing — Paused, Recording, Stopped to talk — press Continue — so you do not have to work it out from the buttons.

Clicking in the 3D view while the tour is playing takes the camera back and ends the tour — useful when you want to break out and look at something. While the tour is paused, clicking navigates normally instead (see below).

Playback runs to the clock

A path plays at its real duration, measured against the project frame rate — not at whatever speed the display happens to manage. On a heavy scene the picture skips frames and stays on time rather than sliding into slow motion, so a 60-second path takes 60 seconds on every machine. This is what lets narration stay in step with the picture, and what makes a preview a truthful rehearsal of the recorded movie.

Pause and look around

Pausing is not the same as stopping: the tour stays open at its current position and the camera is handed back to you.

  1. Press Pause (or the Play button, which becomes Pause during playback).
  2. Navigate freely — orbit, zoom, pan, fly with W A S D Q E. The pivot is re-anchored on whatever you were looking at when you paused, so the first drag behaves the way it does anywhere else in VRGS.
  3. Press Resume. If you moved the camera, it eases smoothly back onto the path over about half a second rather than snapping, then playback continues from exactly where it stopped.

Press Esc at any point to abandon the tour and keep the camera where it is.

Stopping to discuss is the point

This is the core teaching interaction: fly to an outcrop, pause, talk about what is on screen while your audience looks around, then carry on. Scrubbing the timeline while paused works too — resume picks up from wherever you left the playhead.

Vulkan only

Pause-and-look-around requires the Vulkan renderer. In the OpenGL view the Play button still stops rather than pauses.

The timeline editor

The Flight Path Timeline panel is the heart of flight-path editing. It shows the path as stacked time-vs-value tracks with a keyframe strip and a time axis along the bottom. It opens automatically when a flight path is active.

Tracks

TrackShows
SpeedCamera speed per frame (always shown). Spikes and dips reveal where the camera rushes or stalls.
AccelerationChange in speed — where the camera is speeding up (above the line) or slowing down (below). Toggle via right-click.
OrientationPitch, roll and yaw curves. Toggle via right-click.
ScenesOne coloured bar per scene, showing when each is active (see Scenes). Shown when the path has scenes.
NarrationOne bar per narration clip, spanning the time it plays, with its waveform and caption drawn inside it (see Narration). A stop-and-talk clip is an orange pin instead, because it occupies no time. Shown when the path has narration.

The left axis shows raw values; the right axis shows them in intuitive units (degrees for orientation, per-second for speed/acceleration) at the project frame rate. The bottom axis reads out time in seconds.

Working in the timeline

InteractionResult
Click in the timeline areaMove the playhead to that frame and snap the camera there (scrubbing).
Drag in the timeline areaScrub continuously — the 3D view follows the playhead.
Click a keyframe tick (bottom strip)Select it and snap the camera to that viewpoint.
Drag a keyframe tick left/rightChange that segment's duration (its frame count). The path rebuilds live.
Mouse wheelZoom the time axis, anchored under the cursor. Use the scrollbar to pan when zoomed in.
Drag a track boundaryResize the tracks to give a curve more room.
Right-click the keyframe stripAdd, Update from 3D view, or Delete a keyframe at that point.
Right-click a trackToggle the Acceleration, Orientation, Scenes and Narration tracks, set the project frame rate, or add narration at that time. As the leader of a live field trip, also share the path as a guided tour.
Drag a narration clipMove it to a different time. A clip pinned to a keyframe snaps from keyframe to keyframe instead, and stays pinned where it lands.
tip

Right-clicking an empty part of the keyframe strip lets you add a keyframe at that exact time (capturing the current camera), and right-clicking an existing keyframe lets you update it to the live camera without leaving the timeline. The path, the 3D view and the tree all stay in sync.

Every timeline edit is a single undo step — press Ctrl+Z to revert a drag, add, delete or scene change.

Timing and duration

A path's length is the sum of its per-segment frame counts, converted to seconds at the project frame rate (set in the project / display options). Several tree commands help you set timing in bulk:

CommandEffect
Set FramesSet the frame count on the selected viewpoint(s).
Set Frames per MetreSet frame counts proportional to each segment's length, for constant ground speed.
Set DurationScale the whole path to a target total duration in seconds.
Set Duration (Selected)Distribute a duration across the selected viewpoints.
Scale DurationMultiply all frame counts by a factor to speed up or slow down the whole path.
note

Durations are computed using the project frame rate, so a 60-second path really is 60 seconds in the recorded movie. Make sure the project frame rate matches your intended output.

Scenes: visibility choreography

Scenes let you change what is visible as the camera flies — for example, revealing an interpretation layer as you approach it, swapping a photorealistic mesh for an interpreted surface, or hiding clutter during a wide shot.

  1. Set up the object visibility you want in the 3D view.
  2. On the Flight Path ribbon tab, choose Add Scene. The current visibility state is captured as a scene under the flight path's Scenes branch.

What a scene captures

A scene records the on/off state of the objects in the 3D view at the moment you capture it, and restores exactly that set whenever it becomes active. This includes your large geometry — triangulated meshes, point clouds, tiled meshes and Gaussian splats — alongside interpretations, annotations, images and the other object types. There is no separate picker: whatever is switched on when you choose Add Scene is what the scene shows.

Loaded up front, so nothing pops in

Meshes and point clouds are streamed from disk, so when you start playback VRGS loads everything the path's scenes reference before the camera moves. For a path that touches large clouds this can take a few seconds and shows a progress dialog — but it guarantees the data is resident before it is needed. This matters most when you are recording a movie, where a mesh fading in halfway through a shot would ruin the take.

Scenes captured in an earlier version

Earlier versions never switched meshes or point clouds off — they stayed on regardless of scenes. To keep those projects looking the same, a scene captured before 3.4 leaves your large geometry alone until you re-capture it (right-click the scene → Update, or Update from 3D view on the timeline). Re-recording brings the currently visible meshes and point clouds under that scene's control.

A scene becomes active in one of two ways:

  • Spatial trigger (ROI) — the scene activates whenever the camera comes within the scene's Region of Interest radius of the point where it was captured.
  • Temporal trigger — the scene activates over an explicit frame range you set on the timeline.

Editing scene timing on the timeline

With the Scenes track visible, each scene is a coloured bar:

InteractionResult
Drag a bar's edgeAdjust the scene's start or end frame.
Drag the bar bodyMove the whole active range.
Right-click a sceneSet start / end from playhead, convert to a spatial (ROI) trigger, or snap the range to wherever the camera enters/leaves the ROI.
Triggers stay put when you re-time the path

If you drag a keyframe, add/delete a viewpoint, or toggle motion blur — anything that changes the path's length — temporal scene triggers are rescaled proportionally, so a scene keeps firing at the same point along the path rather than drifting off.

Narration: guided tours

A flight path can carry spoken commentary. Record it against the moving camera, or import audio you prepared elsewhere, and it plays in step with the picture — turning a fly-through into a self-guided virtual field trip a student can open and watch on their own.

Vulkan only

Narration requires the Vulkan renderer. Clips authored here are saved with the project either way, but the OpenGL view will not play them.

Adding narration

Right-click anywhere on the timeline and choose:

CommandWhat it does
Record while the tour plays…Starts the tour from the time you right-clicked and records as it flies, with nothing covering the 3D view — so you can describe what you are looking at. Stop with the same menu item, Esc, or by pausing.
Record here (tour paused)…Records with the tour parked at that moment. A small dialog shows elapsed time and a level meter; press Cancel to stop. Best for a stop-and-talk clip, where the camera is not moving anyway.
Import audio file…Brings in an existing WAV, MP3, M4A or WMA file, placed at the time you right-clicked.

While recording over live playback the Narration track shows ● REC, the elapsed time and a live level meter — check the level is moving before you commit to a long take. Any narration already on the path is muted for the duration, so the microphone does not pick up your earlier commentary through the speakers.

All three appear on the Narration track once the path has clips, and on the timeline's general right-click menu before that — the track only appears once there is something to show.

Recordings are normalised when you stop, so a quiet microphone still gives usable narration. Imported files are left exactly as they are.

Narration files are copied into the project, into an AUDIO folder beside your other project data. A tour whose audio lives on one person's desktop would be silent for everyone else, so VRGS takes its own copy; the project folder is what backups, version control and cloud sync carry.

How narration and the camera stay together

While a clip is playing, the audio leads and the picture follows. If the display cannot keep up on a heavy scene, the camera skips frames to stay with the voice rather than letting the commentary drift out of step. Between clips the tour carries on at its normal rate, picking up exactly where the audio left off.

The practical consequence: what you hear in preview is what you get in the recorded movie, on any machine.

Timing narration

Clip positions are stored in seconds, not frames. Anything that rebuilds the interpolated path — toggling motion blur, changing the project frame rate — therefore leaves your commentary where you put it, instead of shifting it around.

Drag a clip along the Narration track to move it. Clips show a waveform, so you can line the start of a phrase up against a keyframe by eye rather than by guesswork. A clip's length comes from its audio file and cannot be trimmed here — record or edit a shorter take instead.

Pinning commentary to a keyframe

By default a clip sits at a fixed time. That is fine until you re-time the path — lengthen the approach to the outcrop, change the frame rate, drag a keyframe — and every piece of commentary after the change is suddenly describing the wrong thing.

Pin the clip to its keyframe instead. Right-click the clip and choose Pin to nearest keyframe. The clip snaps onto that keyframe and gets a small white tack at its left edge, and from then on it travels with the keyframe: re-time the segment and the commentary moves with it.

  • Dragging a pinned clip snaps it from keyframe to keyframe and re-pins it where it lands, so it stays pinned.
  • Right-click and choose Pinned to keyframe N (unpin) to release it back to a fixed time, where it is now.
  • If you delete the keyframe a clip is pinned to, the clip stays exactly where it is and quietly becomes unpinned — it is never moved somewhere you did not put it.
Pin the stops

Stop-and-talk clips are the ones that most want pinning: the whole point of a stop is that it belongs to a place, not to a moment.

On-screen captions

A clip can carry text that appears over the 3D view while it plays — a formation name, an age, a question for the group.

Right-click the clip and choose Add on-screen caption…, and type the text. It can run to several lines. The caption appears centred along the bottom of the view while its clip is sounding, wrapped to fit, and disappears when the clip ends. It is also drawn inside the clip's bar on the timeline, so you can see at a glance which take carries which words.

Leave the box empty to remove a caption.

Managing clips

Right-click a clip on the Narration track:

CommandEffect
Stop and talkTurns the clip into a stop — the tour parks at that point while the commentary plays (see below).
Wait for ContinueFor a stop: wait for you to press Continue instead of moving on when the clip ends.
Pin to nearest keyframeTie the clip to a keyframe so re-timing the path carries it along (see above). Reads Pinned to keyframe N (unpin) once it is pinned.
Add / Edit on-screen caption…Text shown over the 3D view while this clip plays.
Volume, Fade in, Fade outLevel for this clip, and how it eases in and out.
Delete narration clipRemoves the clip from the path. Ctrl+Z puts it back — the audio file survives until you next save, at which point a take nothing references is cleaned up.

Every clip edit — moving, pinning, captioning, deleting, changing volume or fades — is a single undo step, so Ctrl+Z puts it back.

A clip drawn grey has lost its audio file, usually because a project was copied without its AUDIO folder. It keeps its place on the timeline so you can see what is missing, but it will not sound; re-import the audio to fix it.

Stop and talk

Continuous voice-over is rarely what teaching sounds like. The real shape is fly to the outcrop, stop, talk about it, carry on — and that is what a stop-and-talk clip does.

Right-click a clip and choose Stop and talk. It changes from a bar to an orange pin, because a stop occupies no time on the timeline: the tour parks at that point for exactly as long as the commentary lasts, however long that turns out to be.

When the tour reaches the pin:

  • The camera stops on that frame and the clip starts playing.
  • You can look around while it plays — orbit, zoom, fly — exactly as when paused. The tour is holding its place, not frozen.
  • If you leave it alone, the view drifts slowly around the spot rather than sitting dead still, so a long piece of commentary does not look like the application has hung. The moment you touch the camera the drift stops and it is yours.
  • When the clip finishes, the tour carries on by itself.
Re-record freely

Because a stop takes no timeline space, replacing its commentary with a longer or shorter take changes nothing else. The path does not need rebuilding and every clip after it stays exactly where you put it — which is not true of the old approach of padding a path with extra frames.

Waiting for you instead

A stop can wait for an explicit Continue rather than moving on by itself — useful when you want to take questions. Right-click the pin and tick Wait for Continue. The Play button becomes Continue while the tour is held.

Playing a tour to a field trip

A narrated tour can be played to everyone in a Virtual Field Trip at once, with every participant's camera following the leader's.

Only the transport is shared — play, pause, position. The narration itself plays from each person's own copy of the project, so nothing is streamed and the audio is as clean for the person on a hotel wifi as for the one next to the server.

Everyone needs the project

Every participant must have the same project open locally. A guest who cannot open the project cannot join a tour — they would have no outcrop to look at either.

To lead a tour:

  1. Make sure the project is saved. A flight path only gets the shared identity other clients can resolve when it is saved, and an unsaved path will be refused.
  2. Right-click anywhere on the timeline and choose Share as a guided tour for the field trip. This appears only when you are the leader of a live trip.
  3. Everyone's copy of VRGS now loads the tour's geometry. The transport readout counts them in — Waiting for 3 of 9 to load…
  4. When it says Everyone is ready, press Play. The tour starts on every machine at once.

The wait is not optional politeness — it is what stops three participants freezing mid-flight and then being yanked forward to catch up. If someone is wedged, the readout eventually offers press Play to start anyway, and the tour begins without them.

As a participant: the tour simply starts, and your camera follows. Press Play at any point to step out and look around on your own; the tour carries on for everybody else. Your own stops, pauses and captions all behave exactly as they do in a solo tour.

Not yet in this release

There is no roster display of who has stepped out, and no one-click "catch up" to re-join the group where they now are. Rejoin by restarting the tour on your machine.

Movie export

Recorded movies do not hold — a video cannot wait for you. Stops are ignored during export in this release, so a narrated tour with stops is best watched live.

Presentation mode and slides

A flight path can carry a slide deck (the Slides branch in the tree). Add images to it, then link individual slides to viewpoints so that the relevant slide is shown as a billboard overlay as the camera reaches each viewpoint. Step through viewpoints with Next / Previous Viewpoint, and toggle the overlay with the presentation controls. This is useful for guided, narrated tours.

Renderer differences

Slide billboards are drawn in both renderers — a Vulkan view shows the deck, and its multi-image slides have working prev/next/resize handles in the 3D view. The presentation-mode controls on the ribbon (Show Presentation, Minimise Presentation) are still OpenGL-only and are greyed out in a Vulkan view.

For a narrated tour, on-screen captions on the narration clips are usually the better tool — they need no images, travel with the commentary, and work in the Vulkan view where narration lives.

Motion blur

Toggle Motion Blur on the ribbon for cinematic 180° shutter blur in the recorded movie. Turning it on or off rebuilds the path so the timeline and preview immediately reflect the change.

note

Motion blur adds sub-frames internally, which increases render time. It is off by default and only affects the recorded movie, not interactive preview.

Narration keeps its timing

Toggling motion blur rebuilds the interpolated path with many more frames in it, but the path still runs for the same number of seconds — so narration clips stay exactly where you placed them, and playback still takes the same time.

Recording a movie

With the flight path active, choose Record Movie, pick an output file, and set the resolution, frame rate, motion blur and render quality in the settings dialog. VRGS then renders every frame of the path off-screen and writes an MP4.

Recording is offline, not a screen capture: each frame is rendered to completion however long it takes, so the video is smooth even where interactive preview would struggle. A progress dialog shows the frame count and has a Cancel button — cancelling still finalises a playable file containing everything captured up to that point.

Render quality

Offline capture can supersample — render larger than the video size and downsample — which is the only thing that removes the shimmer on finely textured outcrops. It costs render time proportional to the square of the factor, so try a short path first.

note

Movie recording now works in both renderers. The Vulkan view writes MP4 as described above; the OpenGL view records with its own older pipeline.

Merging and splitting paths

From the tree context menu:

  • Merge Flight Paths — select two or more flight paths and merge them into one. Their viewpoints are concatenated end to end into a single editable path.
  • Split Flight Path — split the selected path into two at its midpoint. The boundary viewpoint is shared by both halves so they join seamlessly.

Both operations preserve the viewpoints (keyframes), so the resulting paths remain fully editable, re-timeable and saveable. Splitting needs at least three viewpoints.

Exporting

Export to ASCII writes the path's viewpoints to a comma-separated text file (name, X, Y, Z, yaw, pitch, roll, near/far clip, and frame count, one row per viewpoint) for use in external tools.

Tips and troubleshooting

  • Path won't build / "At least 2 view points needed". Capture at least two viewpoints before using Create Path.
  • Motion looks jerky. Use the Smooth interpolation method, run Smooth Path a few times, and check the Speed track for sudden spikes — even out the segment frame counts where the camera rushes.
  • The camera rushes one segment and crawls another. Use Set Frames per Metre to make the speed proportional to distance, or drag the keyframes on the timeline to balance the segment durations.
  • A scene isn't appearing when expected. Check whether it uses a spatial (ROI) or temporal trigger; on the Scenes track, right-click and snap the range from the ROI sweep, or set the start/end from the playhead.
  • The recorded movie is the wrong length. The duration is computed at the project frame rate — confirm it matches the frame rate you are recording at.
  • Nothing was recorded / "check that the microphone is not muted". Another application may hold the microphone exclusively, or Windows may be blocking microphone access for VRGS (Settings → Privacy → Microphone). The level meter in the recording dialog is the quickest check: if it never moves, VRGS is not hearing anything.
  • A narration clip is grey and silent. Its audio file is missing — usually a project copied without its AUDIO folder. Re-import the audio and delete the grey clip.
  • The tour does not stop at a "stop and talk" marker. Check the clip is actually marked (it draws as an orange pin, not a bar), and that you are in the Vulkan renderer. Movie export ignores stops by design.
  • A feature is greyed out or missing. Narration, guided tours, pause-and-look-around and the transport strip need the Vulkan renderer; the ribbon's presentation-mode controls need OpenGL. Everything else works in both. Check which renderer the view is using.

See also