USD for VFX
USD for VFX puts the reconstructed mesh, calibrated cameras and plates in one folder. Plates are the lens-corrected images used for compositing. If you started from video and computed a camera track, the folder also contains the animated camera and full-resolution frames. See Video import and camera tracking to prepare the track.
Free and Lite include two photo cameras selected for parallax; Pro includes them all. A saved video track adds the animated camera and video plates. The Blender importer and scale fixes described here are available in v1.4.1.
Export the bundle
- Open the reconstructed project. For video, compute and check Camera track first.
- Apply any Refine measurements you need. The export keeps the transforms you see in the viewer, including gizmo edits, and applies them to the mesh and cameras together.
- Open Export, choose USD for VFX and select a destination folder.
- Wait for plate generation and keep all bundle files together.
The scale must be valid and uniform to preserve camera calibration. Replica rejects different scales on the three axes and mirrored transforms. The scale is already applied when you import the bundle into another application.
What's in the folder
<project>_VFX/
├── model.usda Z-up scene with mesh and calibrated cameras
├── mesh.usdz reconstructed geometry
├── images/ undistorted photo plates
├── import_in_blender.py imports and sets up the Blender scene
├── fix_in_blender.py sets up a scene imported manually
├── README.txt calibration, conventions and diagnostics
├── plate/ full-resolution video JPEGs, when a track exists
├── plate_preview.mov ProRes 422 Proxy preview, when a track exists
└── video_track.json video times, poses, calibration and gaps
The ProRes preview has a maximum long edge of 1920 px and follows the JPEG sequence's timing. It makes viewport playback easier; rendering uses the full-resolution images. Without a saved video track, the bundle contains only static cameras.
Open the bundle in Blender
Switch to Scripting, open import_in_blender.py in the Text Editor and run it. The script imports model.usda and sets calibration, metric units and render resolution. If the current scene contains other objects, it creates a new scene and leaves your existing work in place.
For video, it also selects the animated camera, sets the timeline and loads the preview as a camera background. Enter camera view and play or scrub the video. To use the full-resolution JPEGs from plate/ in the viewport, set USE_VIDEO_PREVIEW = False in the script.
You can also import model.usda manually, then run fix_in_blender.py. Current bundles already use Z as the vertical axis, so they do not need the Y-up to Z-up rotation used with older versions. Keep the bundle folder after saving your .blend: images and animation can still depend on its files.
Set up compositing
For video, the script creates an editable compositor that combines the full-resolution JPEGs with a transparent Cycles render through Alpha Over. It sets the reference mesh as a shadow catcher for the objects you add. Bring in your assets and lights, then check the result through the exported camera.
You can lower the render-resolution percentage for a test: the plate scales to the new size and stays aligned with CG. If the script finds a compositor unrelated to the bundle, it preserves it and shows a warning. SETUP_COMPOSITOR and SETUP_SHADOW_CATCHER let you turn off those setup steps.
You need to prepare lighting, HDRIs and materials yourself. The script does not add lens distortion back to the final composite. JPEGs start with the Standard display transform; a log, EXR or ACES workflow needs its own colour-management setup.
Coordinates, calibration and timing
The USD scene uses Z as the vertical axis and declares metres as its units. Replica converts the Y-up reconstruction and applies the transforms once to mesh and cameras. Cameras retain focal lengths, image dimensions and the principal point (cx and cy), which is needed to match the projection to the plate.
The exported sequence starts at frame 1 and runs at 30 fps. Replica matches each pose to the actual decoded frame timestamp, including for variable-frame-rate sources. video_track.json keeps the source times and poses in the reconstruction's Y-up space; reconstructionToWorldMatrix converts them to Z-up world metres.
Across gaps with no reliable tracking, the export holds the last valid pose and adds markers to Blender's timeline. Check those frames and cut or repair the section before the final render: a stationary camera in a gap is not a solved movement.
Replica corrects the whole video's lens distortion using the calibration from one aligned frame. Keep the lens, zoom and focus fixed during recording. Export stops if calibration is missing or frame dimensions do not match.
Re-exporting and disk space
Replica prepares a new bundle in a temporary folder and replaces the old one only when it has finished. Cancellation, failed writes or insufficient disk space leave the previous bundle intact. Personal files at the root, such as a .blend, are kept; generated scripts and plates are replaced.
Full-resolution frames can take substantial disk space. Replica checks available space during export. Keep personal assets and edits out of images/ and plate/, since Replica regenerates those folders.
Troubleshooting
The bundle contains only static cameras
Compute the camera track in Replica, then export again. Reconstructing the video alone does not produce an animated camera.
The script cannot find the bundle folder
Open the script from the exported folder and check that the USD files are still there. If needed, enter the folder's absolute path in BUNDLE_DIR. Reload the script in Blender's Text Editor after replacing it on disk.
The model and cameras appear rotated twice
Import the current bundle into a new scene with its included script. Remove any manual Y-up to Z-up rotation left over from your older workflow.
The video and model do not line up
Check calibration, fixed optics, camera intrinsics and the gap markers. The README lists any photo plates copied without distortion data. Check the video against the model in Replica before exporting too.
There are only two photo cameras
This is the Free/Lite preview limit. Pro exports all reconstructed photo cameras.
Related guides
- Video import and camera tracking
- AprilTag Scale Bar: metric scaling and L-bar leveling in Pro.
- COLMAP export: photo cameras and undistorted images for other reconstruction tools.