3D & media workflows

Post-processing

Move captured datasets into RealityCapture, Gaussian Splatting, animation, and garment workflows.

4D Gaussian Splatting processing

This page records a 4D Gaussian Splatting pipeline built around a synchronized multi-camera capture. It is an experimental post-processing workflow rather than a built-in Camera Server process task. Tool versions, scripts, and model-training settings change quickly, so verify each external project's current instructions before starting.

Capture and organize the source dataset

  1. Use Camera Server Camera control to connect, synchronize, and trigger the cameras.
  2. Capture a complete image sequence with consistent exposure, focus, and lighting.
  3. Keep the original dataset intact and make a working copy for frame extraction and reconstruction.
  4. Confirm that camera numbering, timestamps, filenames, and audio or trigger references are preserved.

The quality of the temporal result depends on consistent capture timing and camera registration. Fix missing or misnumbered source files before moving to training.

Example pipeline

The legacy workflow used these stages:

  1. Camera control and trigger: Xangle Camera Server.
  2. Sound synchronization and frame extraction: PeakAlign.
  3. Camera registration: RealityScan or a compatible RealityCapture workflow.
  4. Sparse point-cloud generation per frame: RealityScan driven by a custom script.
  5. Gaussian Splat training: Postshot using a custom script and an MCMC-based training workflow.
  6. Floater removal: PointNuker.
  7. Compositing and review: After Effects with a Gaussian Splat importer and a flicker-reduction tool where needed.

This list is a pipeline map, not a claim that each tool is required or supported by Camera Server. Keep the intermediate files for every stage so a failed training run does not require a new capture.

Camera registration and frame preparation

Register the cameras using a clean reference dataset and the current RealityScan or RealityCapture workflow. Review the solved camera positions before generating per-frame point clouds.

Use PeakAlign or an equivalent tool to relate the sound or trigger event to the extracted image frames. Check the offset on a short test sequence before extracting the complete production range. Keep the source audio, frame numbering, and offset values together in the working project.

Training and cleanup

Train the splat from the registered per-frame data using settings appropriate for the available GPU and the intended playback quality. Training time and memory use vary with camera count, frame count, resolution, and scene complexity.

After training:

  • Review the motion for temporal drift and flicker.
  • Remove floaters conservatively so valid moving details are not lost.
  • Check the beginning, middle, and end of the sequence, not only a representative frame.
  • Export an intermediate preview before committing to a long final render.

Current limitations

The original article was marked as a work in progress. There is no universal Camera Server button that completes this pipeline. Custom scripts, RealityScan, Postshot, PointNuker, and compositing tools remain external dependencies with their own licensing, hardware, and version requirements.

Document the Camera Server build, camera layout, frame rate, audio offset, registration project, scripts, training settings, and cleanup decisions with each production. That record is more useful than copying a fixed benchmark from an older rig.