v0.4.0
release.0.4.0.mp4
Overview & Highlights
- Add support for mesh vertex colors #1671
- Lower memory use #1535
- Improve garbage collection #1560
- Improve the web viewer #1596 #1594 #1682 #1716 …
- Nice outlines when hovering/selecting
- Add an example of forever-streaming a web-camera image to Rerun #1502
- Fix crash-on-save on some versions of Linux #1402
- And a lot of other bug fixes
- Many performance improvements
We now host an experimental and unpolished web-viewer at https://app.rerun.io/ for anyone to try out!
In Detail
🐍 Python SDK
- Expose all Rerun enums and types to main module scope #1598
- Make
log_point
more forgiving and update docstring #1663 - Add support for mesh vertex colors #1671
🦀 Rust SDK
⚠️ Session::new
has been replaced withSessionBuilder
#1528⚠️ session.spawn(…)
->rerun::native_viewer::spawn(session, …)
#1507⚠️ session.show()
->rerun::native_viewer::show(session)
#1507⚠️ session.serve(…)
->rerun::serve_web_viewer(session, …);
#1507⚠️ rerun::global_session
is now hidden behind theglobal_session
feature flag #1507- Add support for mesh vertex colors #1671
🪳 Bug Fixes
- datastore: disable compaction (fixes 2x memory issue) #1535
- Fix garbage collection #1560
- Avoid using undefined extern "C" on windows #1577
- Fix crash on decoding old .rrd files #1579
- datastore: stabilize dataframe sorts #1549
- Stop using infinities in wgsl shaders #1594
- Workaround for alpha to coverage state leaking on (Web)GL renderer #1596
- Use a patched
wasm-bindgen-cli
with fix for 2GiB bug #1605 - Misc: make example in
log_pinhole
runable #1609 (thanks @Sjouks!) - Early-out on zero-sized space-views to prevent crashes #1623
- Print our own callstack on panics #1622
- Handle ctrl+c to gracefully shutdown the server(s) #1613
- Fix crash on serve exit, second attempt #1633
- Fix wrong remove-tooltip for entities and groups #1637
- Fix requiring requiring focus for shutdown via ctrl+c when starting viewer from command line #1646
- Fix eye spin after eye reset #1652
- Fix crash on negative radii by instead warning #1654
- Fix crash when trying to listen on a taken TCP port #1650
- Don't show 2D labels in 3D space views. #1641
- Fix Z fighting with improved depth offset math #1661
- Whether a spatial view is 2d or 3d is now reevaluated over time unless picked explicitly #1660
- Update wgpu to v0.15.3, fixing meshes on Windows Chrome #1682
- Fix a bug in the image hover code, causing the wrong RGBA values to be printed #1690
- Fix a bug that caused points to be render too large #1690
- Fix web crash on missing uniform buffer padding #1699
- Fix
memory_usage
example relying on implicit recursive features #1709 - Track changed state in nav mode combo box #1703
- Fix crash-on-save by switching file-picker dialog to
xdg-portal
#1402 - Change roll-shortcut from ALT to SHIFT #1715
- Fix CpuWriteGpuReadBelt producing unaligned gpu buffer offsets #1716
- Fix arrows requiring a radius to be visible #1720
🚀 Performance Improvements
- Add re_arrow_store profile scopes #1546
- datastore: early exit missing components at table level #1554
- datastore: track bucket count in store stats & mem panel #1555
- LogDb: dont split on index bucket size #1558
- Introduce a simpler cache dedicated to just decode JPEGs #1550
- Implement outlines for points 2d/3d/depth & use them for select & hover in Viewer #1568
- Simplify ImageCache #1551
- New time panel density graph #1557
- Refactor the Arrow Mesh3D type to use zero-copy Buffers #1691
- Remove the redundant costly transform check during categorization #1695
- batching 3:
DataRow
&DataTable
+ no bundles outside of transport #1673
🧑🏫 Examples
📚 Docs
- Link to the Python SDK build instructions in
rerun_py/README.md
#1565
🖼 UI Improvements
- Fix combining outline mask for selection & hover #1552
- Implement outlines for rectangles & use them for select & hover of image primitives in Viewer #1559
- Show log messages in egui toast notifications #1603
- Adapt UI for smaller screens #1608
- Nicer toast notifications #1621
- Don't hover things in 2D/3D views if we are dragging something #1643
- Allow rolling 3D camera with primary mouse button + alt modifier #1659
- Name space views after the space and indicate duplicate names #1653
- Add banner about mobile browsers being unsupported #1674
- Improve ui for tensors and color map selection #1683
- Only show the mobile OS warning banner on web #1685
- Improve the depth backprojection feature #1690
- Swap overlay order of selection & hover outlines #1705
- Turn on depth cloud backprojection by default #1710
- Add radius boost for depth clouds on outline #1713
🤷♂️ Other Viewer Improvements
- Fix web feature name in error messages #1521
- Use outlines for mesh selections instead of highlight colors #1540
- Implement outlines for line renderer & use them for select & hover of "line-like" primitives in Viewer #1553
- Load .rrd file over HTTP #1600
- Revert "Handle ctrl+c to gracefully shutdown the server(s)" #1632
- More eager GC, and remove
--fast-math
optimization for wasm #1656 - Detect failure to install GUI log callback #1655
- Warn when most of the RAM has been used up by Rerun #1651
- Apply color maps to all types of depth tensors #1686
- Size boosted outlines for points & lines, color & size tweaking #1667
- Default point radius to 1.5 ui points #1706
- When streaming an rrd from http: play it, don't follow it #1707
🕸️ Web
- Use
log
as our log backend instead oftracing
#1590 - Turn on allocation tracker at run-time and for web #1591
- Set correct MIME types in re_web_viewer_server #1602
- Upload web viewer to a bucket #1606
- Use hostname for default websocket address #1664
- Upload the colmap rrd file to gcloud #1666
- Show a warning by default on mobile browsers #1670
- Add analytics to the hosted index.html #1675
- Always upload latest prerelease to a dedicated prefix #1676
- Allow url param override on app.rerun.io #1678
- Show the git commit in the about section in pre-release builds #1677
- Update the web icon #1688
🎨 Renderer Improvements
- Outlines via masking & postprocessing in
re_renderer
#1532 - Add missing profiling scopes in
re_renderer
#1567 - Don't call
wgpu::Device::poll
on the web #1626 - Merge final outline render into composite step in order to fix blending #1629
- renderer: fix the groupby logic in mesh instancing #1657
- Fix outlines being offset diagonally by about half a pixel #1668
- Gpu readback belt for fast & easy data readback from gpu #1687
- Make CpuWriteGpuReadBelt texture copies easier/less error prone #1689
✨ Other Enhancement
- datastore: split out formatting & sanity checks in their own modules #1625
- Add
rerun --save
: stream incoming log stream to an rrd file #1662 - batching 1: introduce
DataCell
& retireComponentBundle
#1634 - Data store batching 2: split out component traits #1636
📈 Analytics
- Analytics: don't spam warning when there is an HTTP connection problem #1564
- Analytics: Rename "location" to "file_line" in the "crash-panic" event #1575
🗣 Merged RFCs
🧑💻 Dev-experience
- Update
rayon
#1541 - Fix some
1.68
clippy lints #1569 - Remove duplicated 'nix' crate #1479
- Better MsgId format #1566
- Lint vertical spacing in Rust code #1572
- CI: Replace wasm_bindgen_check.sh with actually building the web-viewer #1604
- Add --all-features to Rust Analyzer flags #1624
- Run clippy for wasm, with own clippy.toml config file #1628
- Update tokio v1.24.1 -> v1.26.0 #1635
- Add a workflow input for running benchmarks manually #1698
- Add missing } to fix rust workflow #1700
- Fix
lint.py
#1719 - Add a script that generates a changelog from recent PRs and their labels #1718
🤷♂️ Other
- Clean up opencv_canny example slightly b487e550dcb87225858dc6f76b791a25e938e75e
- Lint fixes 9901e7c6735356b1970ddabc926bc5378d82e057
New Contributors
Full Changelog: v0.2.0...v0.4.0