CameraView¶
The CameraView component creates a virtual camera in your scene that can render
images from arbitrary viewpoints. This is essential for:
Generating synthetic training data for computer vision
Creating observation inputs for robot learning
Capturing screenshots and videos of your scene
Visualizing camera frustums in 3D
Huge Caveat
if you use more than 31 virtual cameras, it breaks your mac. because it overflows the max number of webGL context, and it shuts your computer down!
Basic Usage¶
A minimal example that creates a virtual camera and displays its frustum:
import numpy as np
from vuer import Vuer, VuerSession
from vuer.schemas import DefaultScene, CameraView, Sphere, OrbitControls
app = Vuer()
@app.spawn(start=True)
async def main(sess: VuerSession):
sess.set @ DefaultScene(
Sphere(
key="sphere",
args=[0.2, 32, 32],
position=[0, 0, 0.2],
material={"color": "red"},
),
rawChildren=[
CameraView(
key="ego",
fov=20,
far=3,
width=320,
height=240,
position=[1.0, 1.0, 0.5],
rotation=[-0.3 * np.pi, 0.25 * np.pi, 0],
showFrustum=True,
monitor=False,
),
],
bgChildren=[
OrbitControls(key="OrbitControls")
],
)
await sess.forever()