Repository navigation
v1.0.0
First stable release of Viser. Thanks to everyone who helped 🙂
We also have a white paper coming soon™, please stay tuned for this!
New Features
Batched Mesh Rendering
- High-performance batched rendering for meshes and GLB files (#391, #438, #439, #449, #466, #467, #503, #504) - by @chungmin99
- Per-instance transformations, colors, and scales
- Automatic LOD (Level of Detail) for improved performance
Shadow Rendering
- Added shadow rendering support, with cascaded shadow maps for directional lights (#375, #397, #411, #412, #417) - by @beckyfeng08
Fast 2D Plotting
- Integrated uPlot for fast, real-time data visualization (#486) - by @slecleach
Collision Meshes for URDFs
Latency Compensation
API Changes
Breaking Changes
add_box()andadd_icosphere()now returnBoxHandleandIcosphereHandleinstead ofMeshHandle(#475)- Batched axes props now consistent with
add_batched_axes()signature (#418)
Deprecations
- Most methods now require keyword arguments - positional arguments deprecated with warnings (#509)
- Warnings will be printed if the old API is used.
- Renamed APIs:
Additions
gui.add_html()- render custom HTML content (#387)gui.add_text()- now supports multiline text (#431) - by @zeroloveradd_point_cloud()- addedprecision="float16"/"float32"argument (#427) - by @ArthurAllshire- Transform controls callbacks:
on_drag_startandon_drag_end(#479) - File downloads with
save_immediately=flag (#386) - Canvas size configuration support (#422) - by @zerolover
- Camera frustum variants option (#500)
add_boxandadd_icospherenow have default arguments (#501)
Bug Fixes
This is a full list of merged PRs. Many of them address recent regressions, so it's not representative of bugs in prior releases.
Rendering & Display
- Fixed static analysis for button handles (#384)
- Fixed visibility toggle for directional lights and edge cases (#423, #434)
- Fixed uniform initialization in Gaussian splat shader (#447)
- Fixed point cloud shader compatibility for Firefox (#454)
- Fixed regression for broadcasted point cloud shape (#445)
- Fixed prop updates for batched meshes (#466)
- Fixed button rendering artifacts when varying
control_width(#507)
Transform Controls & Scene Updates
- Fixed pose updates for re-added scene nodes (#490)
- Ensure transform control pose is updated after remounting (#492) - by @hongsukchoi
- Transform controls now flush update messages on drag end (#485)
Client/Server Communication
- Suppress key error when flushing disconnected clients (#440)
- Fixed slow image encoding in
_encode_image_binary()(#494) - by @alberthli - Position notifications correctly when dummyWindowDimensions is set (#442)
- Fixed
gui.configure_theme(show_share_button=False)(#426) - Improved file transfer robustness (#471)
- Client/server version consistency checking via WebSocket subprotocol (#441)
URDF & File Handling
- Fixed package name in error message (#410) - by @sea-bass
- Local import for
pyliblzfseto avoid dependency issues (#498)
Performance Improvements
- Faster prop updates for meshes and point clouds (#388, #420)
- Faster GLB loading (#430)
- More efficient scene tree implementation (#478)
- Optimized control panel rendering (#484, #496, #497)
UI/UX Enhancements
- Redesigned control panel with improved organization (#484)
- Re-added visibility painting for scene tree table (#389)
- Minor GUI whitespace adjustments (#394)
- Support for non-literal colors in GUI components (#456)
- Added
dummyWindowDimensions=anddummyWindowTitle=search parameters (#402)
Infrastructure & Dependencies
- Upgraded to React 19, r3f v9, three r174, Mantine 7.17.2 (#409)
- Updated @react-three/drei to ^10.0.5 (#419, #425)
- Converted documentation from Markdown to RST (#421)
- Removed Google Analytics tag for privacy (#407) - by @kikislater
- Fixed Python 3.8 compatibility (#395)
- Upper-bounded dependency versions for stability (#502)
Examples & Documentation
- Added vertex selector to SMPL example (#433)
- Improved URDF documentation (#472)
- Reorganized examples and documentation (#474, #499, #506)
- Updated example code to avoid breaking pip installations (#446)
New Contributors
- @sea-bass made their first contribution in #410
- @kikislater made their first contribution in #407
- @zerolover made their first contribution in #422
- @ArthurAllshire made their first contribution in #427
- @slecleach made their first contribution in #486
- @hongsukchoi made their first contribution in #492
- @alberthli made their first contribution in #494