PyViz3D / 文档 / 快速开始

快速开始

5 分钟上手。从随机点云到浏览器中的交互式 3D 可视化,全部代码不超过 10 行。

Hello World

最简单的示例:生成随机点云并在浏览器中查看。

import pyviz3d as viz import numpy as np # 创建 Visualizer 实例 v = viz.Visualizer() # 生成 2000 个随机点,位置和颜色 positions = np.random.rand(2000, 3) * 10 colors = np.random.rand(2000, 3) # RGB 0~1 # 添加点云,名称为 "cloud" v.add_points("cloud", positions, colors) # 保存并自动在浏览器打开 v.save("my_visualization")
运行后自动打开浏览器,访问 http://localhost:8000 查看交互式 3D 可视化。鼠标左键旋转,右键平移,滚轮缩放。

点云可视化

从文件加载真实点云数据(支持 .ply、.pcd 格式):

import pyviz3d as viz import numpy as np # 方式一:使用 Open3D 读取文件 try: import open3d as o3d pcd = o3d.read_point_cloud("sample.pcd") points = np.asarray(pcd.points) colors = np.asarray(pcd.colors) # 如果文件包含颜色 except ImportError: # 方式二:手动加载 numpy 数据 data = np.load("points.npy") points = data['positions'] colors = data.get('colors', np.ones_like(points)) v = viz.Visualizer() v.add_points("My Point Cloud", points, colors) v.save("pcd_viewer")

多数据类型组合

PyViz3D 支持同时添加多种数据类型:

import pyviz3d as viz import numpy as np v = viz.Visualizer() # 点云 v.add_points("点云", points, colors) # 3D 边界框(轴对齐) v.add_boxes( name="边界框", positions=np.array([[0,0,0]]), # 中心点坐标 sizes=np.array([[2,1,3]]), # 长宽高 colors=np.array([[1,0,0]]), # 红色 alpha=0.3 # 透明度 0~1 ) # 箭头(表示方向) v.add_arrows( name="方向箭头", positions=np.array([[0,0,0]]), vectors=np.array([[1,0,0]]), # 方向向量 colors=np.array([[0,1,0]]) # 绿色 ) # 文字标签 v.add_text( name="标签", text="起始点", positions=np.array([[0,0.5,0]]), colors=np.array([[1,1,0]]) # 黄色 ) v.save("combined_view")

相机与视角控制

设置相机视角,让可视化从特定角度展示:

v = viz.Visualizer() v.add_points("cloud", points, colors) # 设置相机位置和目标点 v.set_camera( position=[10, 5, 10], # 相机位置(xyz) look_at=[0, 0, 0], # 相机看向的点 up=[0, 0, 1] # 上方向向量 ) v.save("fixed_view")

分享可视化

将可视化上传到 PyViz3D 服务器,生成可分享的链接:

v = viz.Visualizer() v.add_points("cloud", points, colors) # 发布到服务器,生成公开 URL url = v.publish("my_project") print("查看链接:", url) # https://3d.pointcloudviz.top/view/xxxxxx
publish() 会将数据上传到 3d.pointcloudviz.top 服务器,适合快速分享给同事或嵌入报告。