Skip to content

v1.0.0

Choose a tag to compare

@brentyi brentyi released this 06 Jul 13:31
· 210 commits to main since this release

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

Fast 2D Plotting

  • Integrated uPlot for fast, real-time data visualization (#486) - by @slecleach

Collision Meshes for URDFs

  • Support both visual and collision meshes when loading URDF (#487) - by @sea-bass

Latency Compensation

  • Framerate compensation for poor network connections (#495, #505)

API Changes

Breaking Changes

  • add_box() and add_icosphere() now return BoxHandle and IcosphereHandle instead of MeshHandle (#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:
    • positions → points for splines (#493)
    • point_ball_norm → point_shape for point clouds (#429)
    • set_environment_map() → configure_environment_map() (#428)
    • auto_close → auto_close_seconds for notifications timeout (#508)

Additions

  • gui.add_html() - render custom HTML content (#387)
  • gui.add_text() - now supports multiline text (#431) - by @zerolover
  • add_point_cloud() - added precision="float16"/"float32" argument (#427) - by @ArthurAllshire
  • Transform controls callbacks: on_drag_start and on_drag_end (#479)
  • File downloads with save_immediately= flag (#386)
  • Canvas size configuration support (#422) - by @zerolover
  • Camera frustum variants option (#500)
  • add_box and add_icosphere now 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 pyliblzfse to 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= and dummyWindowTitle= 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