写在前面大伙儿是不是在 3D 可视化上经常觉得卡壳?要么代码太繁琐,要么交互做不出来。今天来唠唠一个特别香的工具——viser,让你在 Python 里也能轻松搞定“3D+交互”场景。
什么是 viser?简单一句话:viser 是一个基于浏览器的 Python 3D 可视化库,内置各种场景元素,甚至能配合 SSH 远程调试。
- • API 丰富:点云、网格、骨骼、线框……各种“3D 原语”随便调。
- • GUI 组件齐全:按钮、滑条、输入框、颜色选择……点一点就能改变场景。
- • 交互工具:点选、变换控制柄(gizmo)、多视角切换……完全不输专业软件。
- • 摄像机编程控制:脚本里就能调整视角、渲染参数。
- • 纯前端客户端:打开浏览器就能操作,画面不卡顿。
它解决了哪些痛点?相信你也遇到过:
- 1. 想看点云或网格,画图函数写半天,效果还不行;
viser 就是专为这些场景而生,你几行代码就能搭建一个可交互的 3D “小应用”。

快速上手 & 代码示例先装包:
pip install viser# 如果想跑示例,加上 [examples]pip install viser[examples]
下面一个点云示例,30 秒搞定:
import numpy as npimport viser# 启动服务器server = viser.ViserServer()# 创建随机点云pts = np.random.randn(10000,3)# 添加到场景server.scene.add_points("/random_cloud", pts, size=0.01, color=(255,100,100))# 跑起来,在终端会打印链接,浏览器打开即可server.serve()
再来段带 GUI 的示例,动态调整点的大小和颜色:
# … 前面启动 server 同上 …size_slider = server.gui.add_slider("Point Size",0.001,0.1, step=0.001, initial_value=0.01)color_picker = server.gui.add_rgb("Color", initial_value=(100,200,255))handle = server.scene.add_points("/cloud", pts, size=size_slider.value, color=color_picker.value)@size_slider.on_updatedef_(evt): handle.size = size_slider.value@color_picker.on_updatedef_(evt): handle.color = color_picker.value
优缺点对比
小结
- • 如果你想在 Python 项目里快速集成可交互 3D 可视化,viser 无疑是利器。
- • 从点云到骨骼动画,从按钮滑条到变换操控,大家几行代码就能把可视化“玩”起来。
- • 虽然现在还没做成 Blender、Three.js 那么全能,但对于科研、数据分析、模型调试,完全够用。
再强调一句:完全 Web 端,SSH 远程也能拿来直接演示,超级方便。未来功能肯定会更多,文档也会更完善。赶紧试试,说不定下一个可视化小神器就是你写的!
项目地址:https/github.com/nerfstudio-project/viser