Feature Launch: Multi-Camera Rendering · Bifrost

Feature Launch: Multi-Camera Rendering

Place up to 5 cameras in a single world and capture every angle of the same moment in one render.

Multiple cameras capturing the same scenario, rendered in a single run

Multi-view perception needs multi-view data. Until now, getting the same scenario from several perspectives meant firing off a separate render job per camera and stitching the outputs together afterwards.

Multi-Camera fixes that. Place up to 5 cameras in a single world and capture them all in one render. Every camera shoots the same frame in time. One scenario, one render, every angle.

What's New

See it in the editor and gallery

Flip the live viewport between cameras with the new camera dropdown in the editor, or call world.set_active_camera() from your notebook. A sync dot shows whether the viewport still matches that camera's set pose.

In the gallery, switch between each camera's view of the same rendered frame.

The API, in a nutshell

# add cameras (up to 5)
world.add_camera("a")
world.add_camera("b")

# configure each one independently
world.cameras["b"].set_fov(35)

scenario = world.new_scenario(num_frames=100)
scenario.render()                # renders all cameras by default
scenario.render(cameras=["b"])   # or a subset

# remove cameras that are not needed
world.remove_camera("b")

Backwards compatible: world.camera now points to the earliest camera added, so existing single-camera notebooks run exactly as before. No changes needed.

What to expect on render time

Each camera you render adds roughly 40% to generation time, scaling linearly from a single-camera baseline. A 5-camera render takes about 2.6x of a one-camera render (1 → 1.4 → 1.8 → 2.2 → 2.6).

Current limitations

Capture every angle in one run

Ready to build synchronized multi-view datasets for your perception stack?