Vuer Components
Import: from vuer.schemas import Box, Sphere, TriMesh, Urdf, PointCloud, ...
Common Properties
All components: key , position=[x,y,z] , rotation=[x,y,z] , scale , matrix (4x4), children
Primitives
Box(key="box", args=[w, h, d], color="red") Sphere(key="s", args=[radius, wSegs, hSegs]) Cylinder(key="c", args=[rTop, rBot, height, segs]) Capsule(key="cap", args=[radius, height, capSegs, radSegs]) Cone, Plane, Ring, Torus, TorusKnot
Custom Geometry
TriMesh(key="mesh", vertices=np.array, faces=np.array, colors=np.array) PointCloud(key="pcd", vertices=np.array, colors=np.array, size=0.01)
Models
Urdf(key="robot", src="/static/robot.urdf", jointValues={"joint1": 0.5}) Glb(key="model", src="/static/model.glb", scale=0.1) Obj, Ply, Stl, Fbx, Dae # Same pattern Splat(key="splat", src="/static/scene.splat") # Gaussian splatting
Cameras & Lighting
PerspectiveCamera(key="cam", fov=75, position=[5,5,5], makeDefault=True) Frustum(key="f", fov=60, aspect=1.6, near=0.1, far=10, showFrustum=True) AmbientLight, DirectionalLight, PointLight, SpotLight
Images
Img(src="url", key="img") # DOM image Img(np_array, key="np") # From numpy Image(img_array, position=[0,1,-2], key="p") # 3D plane ImageBackground(src="bg.jpg", distance=10) # Camera-facing
Interaction
Movable(key="m", children=[Box(key="box")]) # Drag & drop Gripper(key="g", pinchWidth=0.04) # Gripper viz
Organization
group(key="grp", children=[...]) Scene(children=[...], bgChildren=[Grid()], rawChildren=[AmbientLight()]) DefaultScene(...) # Includes default lighting/controls