Releases: rerun-io/rerun
0.7.0 - improved transforms, better color mapping, bug & doc fixes
Rerun is an easy-to-use visualization toolbox for computer vision and robotics.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/
Overview & Highlights
While we're working on significant updates around interfaces and customizability, here's a smaller release packed with useful improvements 🎉
- Much more powerful transformation logging
- any affine transforms works now!
- supports many more formats and shows them in the viewer as-is
- Better color mapping range detection for images and tensors
- Add support for motion JPEG via the new
jpeg_quality
parameter tolog_image
- Many small improvements to samples & documentation
In detail
🐍 Python SDK
- Improved 3D transform ingestion & affine transform support #2102
- Normalize Python typing syntax to 3.8+ #2361
- Enforce
from __future__ import annotations
in Python files #2377 - Add
jpeg_quality
parameter tolog_image
#2418
🦀 Rust SDK
- Improved 3D transform ingestion & affine transform support #2102
impl Copy for Arrow3D
. #2239 (thanks @kpreid!)
🪳 Bug Fixes
- Stable image order, fixing flickering #2191
- Fix double clicking objects no longer focusing the camera on them #2227
- Fix off-by-half pixel error in textured rectangle shader #2294
- Update wgpu-hal to 0.16.1 to fix mobile Safari #2296
- Fix some browsers failing due to 8k texture requirement, pick always highest available now #2409
- Fix visibility toggles for time series not working #2444
🌁 Viewer Improvements
- Time panel now always talks about "events" instead of "messages" #2247
- Automatically determine image/tensor color mapping & need for sRGB decoding #2342
🚀 Performance Improvements
- Optimization: avoid a memory allocation when padding RGB u8 to RGBA #2345
🧑🏫 Examples
- Example of how to embed the Rerun Viewer inside your own GUI (+ ergonomic improvements) #2250
- Objectron Rust example: install
protoc
for the user #2280 - Remove weird-looking argument parsing in examples #2398
- Fix
tracking_hf example
: put scaled thing under its own root entity #2419 - Clean up our examples #2424
- New face detection example based on MediaPipe #2360
- Update web examples #2420
- Update titles and tags for examples with real data #2416
📚 Docs
- Merge
rerun-docs
repository into this monorepo #2284 - Add manifest + readmes to examples #2309
- Fix and clean up BUILD.md #2319
- Link to
/examples
in PR description #2320 - Make examples setup a separate page #2323
- Add
site_url
tomkdocs.yml
#2326 - Add
log_cleared
to the common index #2400 - Use forked
mkdocs-redirects
#2404 - Add support for classes to generated python common API index #2401
- Added support for creating multi-resolution stacks with upload_image.py #2411
- Document annotation context in manual #2453
🕸️ Web
- Update
wasm-bindgen
to 0.2.87 #2406 - When loading on web, match style and show a progress indicator while wasm is loading #2421
📈 Analytics
- Add crash retriever script #2168
🧑💻 Dev-experience
- Image uploader script #2164
- Replace
wasm-bindgen-cli
with librarywasm-bindgen-cli-support
#2257 - Fix manual release/dispatch workflows #2230
- Add instructions on how to fix weird
gsutil
crash #2278 - Link to preview of latest commit in PR body #2287
- CI: Retry
linkinator
#2299 - Remove long dead code python unit test #2356
- Added gcloud project name to
upload_image.py
#2381 - Fix typo in
run_all.py
#2441 - Small changelog improvements #2442
- Minor fixes/improvements of
upload_image.py
#2449 - Improve changelog generator #2447
🗣 Refactors
- Centralize freestanding store helpers #2153
📦 Dependencies
0.6.0 - 3D in 2D and SDK batching
Rerun is an easy-to-use visualization toolbox for computer vision and robotics.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.6.0/index.html
Overview & Highlights
- You can now show 3D objects in 2D views connected by Pinhole transforms #2008
- You can quickly view images and meshes with
rerun mesh.obj image.png
#2060 - The correct to install the
rerun
binary is now withcargo install rerun-cli
#2183 native_viewer
is now an opt-in feature of thererun
library, leading to faster compilation times #2064- Experimental WebGPU support #1965
- SDK log calls are now batched on the wire, saving CPU time and bandwidth
In Detail
🐍 Python SDK
⚠️ BREAKING: You must now callrr.init
if you want logging to work.⚠️ BREAKING:set_enabled
has been removed.
In order to disable logging at runtime, callset_global_data_recording(None)
.
See also the doc section on this topic.log_mesh_file
: accept either path or bytes #2098- Add
draw_order
to 2D primitives #2138 - Add
rr.version()
#2084 - Add an experimental text-box component and logtype #2011
- Fix a race condition for notebooks #2073
- Redesign multi-recording & multi-threading #2061
- More robust wait for exit condition during
.serve()
#1939 - SDK batching/revamp 3: sunset
PythonSession
#1985
🦀 Rust SDK
⚠️ BREAKING:set_enabled
has been removed.
In order to disable logging at runtime, create a no-op recording viaRecordingStream::disabled()
.
See also the doc section on this topic.⚠️ BREAKING:Session
has been replaced byRecordingStream
#1983⚠️ BREAKING:native_viewer
is now an opt-in feature of thererun
library #2064- Rust SDK: bring back support for implicit splats #2059
- Introduce a 2D
DrawOrder
component #2056 - Add
Tensor::from_image_file
andTensor::from_image_bytes
#2097 - Redesign multi-recording & multi-threading #2061
🌁 Viewer Improvements
- Support projecting 3D entities in 2D views #2008
- Set Rerun viewer native app icon using eframe #1976
- Use
alt
key again for rolling camera in 3d views #2066 - Show tensors shaped [H, W, 1, 1] as images (and more!) #2075
- Show meshes and images with
rerun foo.obj bar.png
#2060 - Don't persist blueprints for unknown apps #2165
🪳 Bug Fixes
- Fix hover/select highlights when picking single points in a scene with multiple point clouds #1942
- Fix crash for missing class ids causing zero sized texture #1947
- Handle leaking of prerelease into alpha version #1953
- Fix incorrect memory usage stats for destroyed on-creation-mapped buffers #1963
- Fix: don't starve web-socket decoding task #1977
- When hovering a 3D view in the presence of images, fix previously incorrect depth shown in 2D view #2009
- Fix: use the mac icon on mac #2023
- SDK batching/revamp 2.2: homegrown arrow size estimation routines #2002
- Fix twice as wide alpha-to-coverage edge on circles, leading to artifacts #2053
- Bugfix: allow hovered items to be clicked to set selection #2057
- Detect, warn and gracefully handle corrupt cells in
lookup_arrow
#2055 - Fix failing dependency install of mesh_to_sdf #2081
- Stop playback when we reach the end of the data #2085
tornado
>6.1 doesn't work with recentjupyter
#2092- Premultiply alpha of RGBA u8 images #2095
- Fix premature pausing when reaching end of still-streaming stream #2106
- 2D layering fixes #2080
- Fix depth precision issues on WebGL due to different NDC space #2123
- Fix flushing race in new multi-recording SDK #2125
- Web viewer: catch and show panic messages that happens at startup #2157
- Don't early-exit on non-pinhole transforms when looking up cameras #2194
- Mitigate depth offset precision issues on web #2187
- Fix colormaps #2204
- Fix annotation images sometimes drawn in the background #1933
- Fix hovering depth clouds #1943
- Fix incorrect 2D camera for scenes with negative 2D coordinates #2051
- Fix web depth/projection regression, causing incorrect rendering on all 3D scenes #2170
🚀 Performance Improvements
- SDK batching/revamp 1: impl
DataTableBatcher
#1980 - Upgrade arrow2/convert and use native buffers for the tensor u8 types #1375
- Use the same RRD encoding for the SDK comms as for everything else #2065
- Optimize GLTF/GLB texture loading in debug builds #2096
- Premultiply the alpha on the GPU #2190
- Switch compression algorithm from zstd to lz4 #2112
🧑🏫 Examples
- Join threads at end of multi-threading example #1934
- Add argument parsing to the rerun_demo #1925
- Use zipfile python library instead of
unzip
command in arkitscene #1936 - Fix backslashes in arkitscene rigid transformation path #1938
- Fix mp_pose example 2D points having incorrectly interpreted depth #2034
- SDK batching/revamp 2.1:
clock
example for Rust #2000 - Add
scripts/run_all.py
#2046 - Check
examples/python/requirements.txt
in CI #2063 - Fix glb mesh data set downloads #2100
- Add more examples to https://app.rerun.io/ #2062
🖼 UI Improvements
- Update egui to latest and wgpu to 0.16 #1958
- Add keyboard shortcut for "Follow", and stop following on "Restart" #1986 (thanks @h3mosphere!)
- Improve UI for keypoint and class-ids of annotations contexts #2071
- Improvements to memory measurements and reporting #2069
- Switch from
egui_dock
toegui_tiles
#2082 - Allow horizontal scrolling in blueprint panel #2114
- Nicer (& fixed up) help texts for space views #2070
- Allow dragging time cursor in plots #2115
🕸️ Web
- Set the GC limit to 2.5GB on web #1944
- Better crash reports on Web, plus WebGPU support detection #1975
- Work around sebcrozet/instant#49 #2094
- Update
wasm-bindgen
to 0.2.86 #2161
🎨 Renderer Improvements
- Full (experimental) WebGPU support [#1965](https://github.com/rer...
v0.5.1
0.5.1 - Patch Release - 2023-05-01
Overview & Highlights
This Release fixes a few small bugs on top of the v0.5.0 release.
In Detail
v0.5.0
0.5.0 - Jupyter MVP, GPU-based picking & colormapping, new datastore!
23-04-20_17.08.46.patched.mp4
Updating
Python: pip install -U rerun-sdk
Rust library: rerun = "0.5.0"
Rust binary: cargo install rerun
Overview & Highlights
This new release adds MVP support for embedding Rerun in Jupyter notebooks, and brings significant performance improvements across all layers of the stack.
- Rerun can now be embedded in Jupyter notebooks
- Tested with Jupyter Notebook Classic, Jupyter Lab, VSCode & Google Colab; checkout our How-to guide
- Try it out live on Google Colab
- All colormapping tasks are now done directly on the GPU
- This yields very significant performance improvements for colormapping heavy workload (e.g. segmentation)
- Try it out in our new
segment_anything
example that shows off the latest models from Meta AI
- GPU picking & hovering now works with all of our primitives, including meshes & depth clouds
- This fixes all the shortcomings of the previous CPU-based system
- Rerun's automatic backprojection of depth textures ("depth clouds") is now feature complete
- Try it out in our updated
nyud
example
- Our datastore has been completely revamped to more closely match our latest data model
- This yields very significant performance improvements for workloads with many events
- Checkout this post for a detailed walkthrough of the changes
In Detail
🐍 Python SDK
- Document that we also accept colors in 0-1 floats #1740
- Don't initialize an SDK session if we are only going to be launching the app #1768
- Allow torch tensors for
log_rigid3
#1769 - Always send
recording_id
as part ofLogMsg
#1778 - New
reset_time
API #1826 #1854 - Always flush when we remove a sink #1830
- More robust wait for exit condition during .serve() #1939
🪳 Bug Fixes
- Fix broken outlines (hover/select effect) for lines #1724
- Fix logged obb being displayed with half of the requested size #1749 (thanks @BenjaminDev!)
- Fix
log_obb
usage #1761 - Always create the
log_time
timeline #1763 - Fix undo/redo selection shortcut/action changing selection history without changing selection #1765
- Fix various crashes #1780
- Fix crash when trying to do picking on depth clouds d94ca3dd35e73e1984ccb969d0c7abd0d3e0faa9
- ci: fix benchmarks #1799
- ci: fix
cargo deny
#1806 - Fix "too many points" crash #1822
- Allow re-use of
RowId
s if no conflict is possible #1832 - Reduce memory used by staging belts on Web #1836
- Test and handle all tensor dtypes as images #1840
- Fix the python build when running without
web_viewer
enabled #1856 - Error instead of
expect
insidemsg_encode
#1857 - Fix shutdown race condition in
re_sdk_comms
client #1861 - Fix broken instance picking in presence of images #1876
- Make sure JPEGs are always decoded #1884
- Fix crash when saving store to file #1909
- Don't clean up
LogDb
s that only contain aBeginRecordingMsg
#1914 - Fix picking entities with image + another object (or label) twice #1908
- Fix double clicking camera no longer focusing on said camera #1911
- Fix annotation images sometimes drawn in the background #1933
- Use
zipfile
python library instead ofunzip
command inarkitscene
demo #1936 - Fix backslashes in
arkitscene
rigid transformation path #1938 - Fix hover/select highlights when picking single points in a scene with multiple point clouds #1942
- Fix hovering depth clouds #1943
🚀 Performance Improvements
- batching 4: retire
MsgBundle
+ batching support in transport layer #1679 - Optimize the depth-cloud shader when
depth=0
#1729 arrow2_convert
primitive (de)serialization benchmarks #1742arrow2
estimated_bytes_size
benchmarks #1743arrow2
erased refcounted clones benchmarks #1745- benchmarks for common vector ops across
smallvec
/tinyvec
/std #1747 - Columnar
TimePoint
s in data tables and during transport #1767 - Compile with
panic = "abort"
#1813 - Process 2D points per entities like 3D points #1820
- re_query: use latest data types (
DataRow
/DataCell
) #1828 - Depth cloud textures are now cached frame-to-frame #1913
🧑🏫 Examples
- Add new
ARKitScenes
example #1538 (thanks @pablovela5620!) - New example code for Facebook research's
segment-anything
#1788 - Add
minimal_options
example for Rust SDK #1773 (thanks @h3mosphere!) - Remove manual depth projection from
car
andnyud
examples #1869 - Always spawn instead of fork in multiprocessing example #1922
- Add
--num-frames
arg to canny (webcam) example #1923 - Add argument parsing to
rerun_demo
#1925 - Join threads at end of
multithreading
example #1934
📚 Docs
- Add
typing_extensions
torequirements-doc.txt
#1786 - Fix typos in notebook readme #1852
- Update docs related to notebook #1915
🖼 UI Improvements
- Hover rays for tracked 3D cameras #1751
- Collapse space-view by default if there is only one child #1762
- Option to show scene bounding box #1770
- Assign default colors to class-ids when annotation context is missing #1783
- Add Restart command and keyboard shortcut for moving time to start of timeline #1802 (thanks @h3mosphere!)
- New option to disable persistent storage #1825
- Show previews of colormaps when selecting them #1846
- Smooth out scroll wheel input for camera zooming #1920
🤷♂️ Other Viewer Improvements
- Change
EntityPathHash
to be 64 bit #1723 - Central
GpuReadback
handling for re_viewer, experimental space view screenshots #1717 - Readback depth from GPU picking #1752
- Use GPU picking for points, streamline/share picking code some more #1814
- Use GPU picking for line(like) primitives, fix
interactive
flags #1829 - Use GPU colormapping when showing images in the GUI #1865
🕸️ Web
- Make CI publish
latest
tagged web-viewer toapp.rerun.io
#1725 - Implement...
v0.5.0-alpha.0
publish_crates.sh: fix crate ordering
Development Build
Installing the pre-release Python SDK
- Download the correct
.whl
. - Run
pip install rerun_sdk<...>.whl
(replace<...>
with the actual filename) - Test it:
rerun --version
What's Changed
- Post-release cleanup by @emilk in #1726
- batching 4: retire
MsgBundle
+ batching support in transport layer by @teh-cmc in #1679 - Change EntityPathHash to be 64 bit by @Wumpf in #1723
- Central GpuReadback handling for re_viewer, experimental space view screenshots by @Wumpf in #1717
- GPU based picking with points by @Wumpf in #1721
- improved renderer label handling by @Wumpf in #1731
- Datastore: revamp bench suite by @teh-cmc in #1733
- Make CI publish
latest
tagged web-viewer toapp.rerun.io
by @emilk in #1725 - Optimize the depth-cloud shader when depth=0 by @emilk in #1729
- remove unnecessary dependencies by @vsuryamurthy in #1711
- Improved readback data handling by @Wumpf in #1734
- GPU based mesh picking in viewer by @Wumpf in #1737
arrow2_convert
primitive (de)serialization benchmarks by @teh-cmc in #1742- Fix logged obb being displayed with half of the requested size by @BenjaminDev in #1749
- benchmarks for common vector ops across
smallvec
/tinyvec
/std by @teh-cmc in #1747 - Hover rays for tracked 3D cameras by @Wumpf in #1751
- Improve dealing with raw buffers for texture read/write by @Wumpf in #1744
arrow2
erased refcounted clones benchmarks by @teh-cmc in #1745arrow2
estimated_bytes_size benchmarks by @teh-cmc in #1743- Readback depth from GPU picking by @Wumpf in #1752
- Add new ARKitScenes example by @pablovela5620 in #1538
- Fix log_obb usage by @emilk in #1761
- Python SDK: document that we also accept colors in 0-1 floats by @emilk in #1740
- Collapse space-view by default if there is only one child by @emilk in #1762
- Always create the log_time timeline by @jleibs in #1763
- Columnar timepoints in data tables and during transport by @teh-cmc in #1767
- Fix undo/redo selection shortcut/action changing selection history without changing selection by @Wumpf in #1765
- Don't initialize an SDK session if we are only going to be launching the app by @jleibs in #1768
- Allow torch tensors for log_rigid3 by @jleibs in #1769
- Option to show scene bounding box by @emilk in #1770
- Fix a whole lot of crashes, all at once by @emilk in #1780
- Add typing_extensions to requirements-doc.txt by @jleibs in #1786
- auto_color class-ids if they are present by @jleibs in #1783
- Don't run 3rd party bench suites on CI by @teh-cmc in #1787
- Use copilot markers in PR template by @emilk in #1784
- re_format: barebone support for custom formatting by @teh-cmc in #1776
- Always send recording_id as part of LogMsg by @jleibs in #1778
- Refactor: Add new helper crate
re_log_encoding
by @emilk in #1772 - New example code for facebook research segment anything by @jleibs in #1788
- Implement
re_tuid::Tuid::random()
on web by @emilk in #1796 - ci: fix benchmarks by @teh-cmc in #1799
- Add
minimal_options
example for Rust SDK by @h3mosphere in #1773 - setup_web.sh supports pacman package manager by @urholaukkarinen in #1797
- ci: fix
cargo deny
(crossbeam-channel
outdated since yesterday's release) by @teh-cmc in #1806 - Compile with
panic = "abort"
by @emilk in #1813 - Add
rerun --strict
: crash if any warning or error is logged by @emilk in #1812 - Refactor: Remove
TensorTrait
by @emilk in #1819 - End-to-end testing of python logging -> store ingestion by @emilk in #1817
- Fix e2e test on CI: Don't try to re-build rerun-sdk by @emilk in #1821
- Use gpu picking for points, streamline/share picking code some more by @Wumpf in #1814
- Process 2D points per entities like 3D points by @Wumpf in #1820
- New option to disable persistant storage by @jleibs in #1825
- New API to reset_time by @jleibs in #1826
- Datastore revamp 1: new indexing model & core datastructures by @teh-cmc in #1727
- Datastore revamp 2: serialization & formatting by @teh-cmc in #1735
- Datastore revamp 3: efficient incremental stats by @teh-cmc in #1739
- Datastore revamp 4: sunset
MsgId
by @teh-cmc in #1785 - Datastore revamp 5:
DataStore::to_data_tables()
by @teh-cmc in #1791 - Datastore revamp 6: sunset
LogMsg
storage + save store to disk by @teh-cmc in #1795 - Datastore revamp 7: garbage collection by @teh-cmc in #1801
- Don't assert if inserting a rowid with a matching timepoint does not create a conflict by @jleibs in #1832
- re_query: up to date with latest data types and structures by @teh-cmc in #1828
- datastore: incremental metadata registry stats by @teh-cmc in #1833
- RFC: datastore state of the union & end-to-end batching by @teh-cmc in #1610
- Fix too many points crash by @Wumpf in #1822
- Use GPU picking for line(like) primitives, fix
interactive
flags by @Wumpf in #1829 - Reduce memory used by staging belts on Web by @Wumpf in #1836
- Always flush when we remove a sink by @jleibs in #1830
- GPU colormapping, first step by @emilk in #1835
- Test and handle all tensor dtypes as images by @emilk in #1840
- Install the rerun-sdk in CI using --no-index and split out linux wheel build to run first. by @jleibs in #1838
- GPU tensor colormapping by @emilk in #1841
- Show previews of colormaps when selecting them by @emilk in #1846
- Implement billinear filtering of textures by @emilk in #1850
- MVP Support for inline-rendering of Rerun within jupyter notebooks by @jleibs in #1798
- Disable wheel tests for x86_64-apple-darwin by @jleibs in #1853
- Fix typos in notebook readme by @jleibs in #1852
- Fix the python build when running without web_viewer enabled by @jleibs in #1856
- Error instead of expect inside msg_encode. by @jleibs in #1857
- Restore: New API to reset_time (#1826) by @jleibs in #1854
- Revert "Implement billinear filtering of textures (#1850)" by @jleibs in #1859
New Contributors
- @Sjouks made their first contribution in #1609
- @vsuryamurthy made their first contribution in #1711
- @BenjaminDev made their first contribution in #1749
- @pablovela5620 made their first contribution in #1538
- @h3mosphere made their first contribution in #1773
- @urholaukkarinen made their first contribution in #1797
Full Changelog: v0.2.0...prerelease
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...
v0.3.1
v0.3.0
After a successful launch a couple of weeks ago, we're back with our second release!
With a few exceptions this release focuses on internal refactors & improving our processes.
However, we think you'll enjoy these goodies that made it in nonetheless!
23-03-02_18.44.38.patched.mp4
You can now generate point clouds directly from depth textures and choose a wide variety of color maps.
Check out this video on how to use it.
This is a lot faster and more convenient than doing so manually in your own code
Some caveats: Picking is not yet working and visible history may behave differently (related to #723)
Other highlights:
- Viewer
- SDK
- Python packages now work with Ubuntu-20.04 #1334
- u8 segmentation stay u8 now (they converted to u16 before) #1376
- 2D Line strips can now be logged directly #1430
- Add a
strict
mode to the Python SDK where misuses of the API result in exceptions being raised.#1477 - Fix disabling Python API through
init
not working #1517
- General
- We build now with fewer build dependencies (there is however still more work to do!).
Notably, we previously used a version of thetime
crate which had a security issue (CVE-2020-26235), thanks @mpizenberg for helping out! - Print more information & troubleshooting info on crash
- We build now with fewer build dependencies (there is however still more work to do!).
Meanwhile, we did a bunch of improvements to our manual. If you had trouble running Rerun so far, check our updated troubleshooting page (and as always, please open an issue if something doesn't work).
.rrd
files no longer load
In Detail
New Features
- Generate point clouds directly from depth textures
- Python SDK: Add strict mode #1477
- OS independent Zoom factor & serialization thereof #1448
- Labels for 3D objects have now a color can now be selected & hovered #1438
- Add 2d support for linestrips #1430
- Add signal handler on *nix with troubleshooting and stacktrace #1340
- Point users to our troubleshooting page on panic #1338
Performance
- Speed up conversions for color arrays in Python #1454
- Speed up fixed-sized array iteration #1050
- Speed up tensor handling by padding data through more directly
- Add option to show performance metrics in the UI in release builds too #1444
- Faster stable diffusion sample #1364
- SDK: stream to disk with
save
feature #1405 re_renderer
has now a direct CPU->GPU copy mechanism
Small improvements & Bugfixes
- UI
re_renderer
- Heuristic for camera frustum length is now based on scene size #1433
- Fix python type signature for tensor names #1443
- Don't convert u8 segmentation images to u16 #1376
- Docs (excluding the manual)
- Improve the docs of
connect
andserve
#1450 - Update log_mesh and log_meshes docs. #1286
- Add guidelines for adding dependencies in a PR #1431
- Add a few more sections to
CODE_STYLE.md
#1365 - Fixup for some doc links #1314
- Document undocumented environment variables on help page. #1335
- Link to SDK operating modes doc in both SDK #1330
- Improve the docs of
- More information in
--version
#1388 - Remove already broken
show
method from Python SDK #1429 - Analytics
- Versioned log streams streams #1420
- Fix path issues when running debug viewer within workspace #1341
- Detailed errors for re_renderer
include_file!
#1339 - Limit logging in web-viewer to
warn
in order to workaround a crash issue (and reduce log spam) 1514 - Fix disabling API through
init
not working #1517
CI, Testing & Build improvements
- Reduce build dependencies
- Use different artifact names for wasm/js in debug builds #1428
- Separate mac wheels & trigger wheel build from ui #1499
- Add spell checking to CI #1492
- Repo size
- Python
- Testing
- Add a test of memory use when logging a lot of big images #1372
- Switch ci_docker to a container based on ubuntu 20.04 #1334
- Release handling
- Switch release action to ncipollo #1489
- Fix o...
v0.2.0
What's Changed
- Good looking Blueprint View by @emilk in #962
- Make buttons smaller, and everything a bit tighter by @emilk in #970
- Widget hover effect by @emilk in #935
- Select single objects directly and click through selection by @Wumpf in #964
- Optimize loading of segmentation maps by @emilk in #978
- Tweak store profile scopes by @emilk in #979
- re_renderer: delegate 2D texture padding to
Queue::write_texture
by @teh-cmc in #975 - Remove Classic Python SDK by @emilk in #977
- New visibility buttons by @emilk in #983
- Specify time for DataUi queries by @emilk in #980
- Update to released versions of huggingface libs by @nikolausWest in #981
- re_analytics: fixed salt for hashed props by @teh-cmc in #958
- Prepare for switching to the
re_int_histogram
crate by @emilk in #984 - Only run test benches rather than full bench on CI by @jleibs in #992
- Remove a lot of classical stuff by @emilk in #988
- Clean up component imports by @jondo2010 in #985
- Hack depth offset in order to make objects not disappear by @Wumpf in #990
- Fix crash when zooming out camera too far by @Wumpf in #986
- Rust: rename objects and fields by @emilk in #993
- Fix hovering bug introduced in The Great Removal by @emilk in #998
- Update readme and remove the docs in favor of dedicated repo by @jleibs in #995
- Update to Rust 1.67 by @emilk in #1000
- Update all of the docstrings on public-facing APIs to numpy style by @jleibs in #1001
- Refactor
InstanceId
by @emilk in #999 - bind to all network interfaces by @teh-cmc in #1005
- Rename
Instance
toInstanceKey
by @emilk in #1002 - use wasm target-dir for
bacon wasm
by @teh-cmc in #1009 - Use
Display
for errors by @emilk in #1007 - Better looking tabs by @emilk in #1011
- Improve colmap example by @nikolausWest in #1008
- Fix rendering empty batches of lines and points, needlessly generating draw calls by @Wumpf in #989
- Less bright frustum by @Wumpf in #1015
- Issue templates with "👀 needs triage" by @nikolausWest in #1016
- Hide MsgId & InstanceId for on-hover ui by @Wumpf in #1017
- Show Space View options in tab bar by @emilk in #1027
- Nicer frustum ray by @Wumpf in #1019
- Improved workflow for adding/removing objects by @Wumpf in #1013
- Introduce Extension Components by @jleibs in #1023
- Tensor view ui improvements by @Wumpf in #1022
- lint against using dbg!() macro in production code by @emilk in #1029
- Fix compilation failure due to bad merge by @Wumpf in #1030
- rust SDK: raw 3D meshes and example by @teh-cmc in #1010
- Click space view title to select it by @emilk in #1032
- Switch to a generator for our common-API registry as well. by @jleibs in #1035
- Catch it when we break the docs by @jleibs in #1040
- python SDK: raw 3D meshes and example by @teh-cmc in #1026
- CI: Attempt to apply cancel-on-progress only on PR:s, not on main by @emilk in #1051
- Slightly nicer tensor view by @emilk in #1028
- Skip data selection section for space views and data blueprint groups by @Wumpf in #1039
- DataUI impls for rect/linestrip2d/linestrip3d/vec2d/vec3d by @Wumpf in #1038
- Preview component data by @Wumpf in #1034
- Add
ComponentName::short_name
helper function by @emilk in #1053 - Improved text space view blueprint by @Wumpf in #1055
- Build+Deploy Python Wheels in CI by @jondo2010 in #996
- Show all instance values in the selection panel by @emilk in #1056
- more spaceview blueprint improvements by @Wumpf in #1057
- Speed up Point3D by @jleibs in #1064
- Update gltf to 1.1 by @emilk in #1071
- Misc code cleanup by @emilk in #1070
- Nicer wait message by @emilk in #1069
- Fix play/pause toggle annoyance by @emilk in #1066
- Same height for tab bar and title bars of side panels by @emilk in #1072
- Workflow fixes for Python Wheel release by @jondo2010 in #1059
- Nicer collapsing sections in the selection view by @emilk in #1067
- ui: use the crosshair for zoom previews everywhere by @teh-cmc in #1073
- raw meshes: support albedo factors, clean up examples and acknowledge lack of support for .obj by @teh-cmc in #1081
- Allow root space views transforms to other roots by @Wumpf in #1075
- Update some Rust crates by @emilk in #1090
- Improved tensor view settings by @Wumpf in #1082
- expose egui debug options in debug menu by @Wumpf in #1089
- Nicer ready text by @emilk in #1078
- Improve tensor view margins by @emilk in #1091
- Nicer top bar on web by @emilk in #1080
- Timeline panel design details by @Wumpf in #1088
- Ship rerun package inside of a rerun_sdk folder by @jleibs in #1085
- Update to winit 0.28 by @emilk in #997
- Increase maximum number of points from 1 Mi to 4 Mi by @emilk in #1093
- Hide perf stats in release, + tweak separator lines by @emilk in #1095
- Icons for space views and blueprint groups by @Wumpf in #1096
- Fix python bridge preventing logging transforms to root child by @Wumpf in #1097
- Use Selection color from design token by @Wumpf in #1092
- Revert "Fix python bridge preventing logging transforms to root child" by @nikolausWest in #1098
- Don't make top-level spaces their own children by @jleibs in #1100
- Rename
Selection
toItem
,MultiSelection
toItemCollection
by @emilk in #1104 - Simple boiler-plate idea for examples by @jondo2010 in #1058
- Use less "arrow" in re_viewer by @emilk in #1105
- Use a grid in entity properties ui by @emilk in #1106
- Restore previous non-tracked camera pose on esc by @Wumpf in #1102
- Default spaceview names are now last space path bit only unless it is root by @Wumpf in #1103
- EntityPath::from_str must parse the given string by @teh-cmc in #1114
- On push sync the docs to gh-pages by @jleibs in #1086
- Rust SDK: introduce
MsgSender
builder-like interface for logging data by @teh-cmc in #1037 - Better ComponentBundle invariants by @jondo2010 in #1112
- Rust SDK: remove deprecated APIs & examples by @teh-cmc in #1107
- Renamed
spawn_and_connect
to justspawn
by @emilk in #1101 - Windows/Linux: work towards replacing native window frame with our own custom buttons by @emilk in #1094
- use forward/backwards icon in selection panel by @Wumpf in #1128
- Generate an RRD file during the build which we inject into the wheel by @jleibs in #1087
- gh-pages rust docs should redirect to
rerun
crate by @jleibs in https://github...