Releases: rerun-io/rerun
0.16.0: More blueprint control from code
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://rerun.io/viewer/version/0.16.0/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.16.0/rerun_cpp_sdk.zip
Release.0.16.mp4
✨ Overview & highlights
- 🟦 Customize views in code: We started exposing some view properties in the blueprint!
- 📋 Included are:
- Visible time ranges
- check this new how-to guide & example that demonstrates this with plots
- Time Series legend & y-axis configuration
- 2D & 3D View background color
- 2D View bounds
- Visible time ranges
- 📚 learn more on the new view blueprint doc pages
- 🚀 …more to come in the future!
- 📋 Included are:
- 🕰️ Deprecated
timeless
in favor of newstatic
logging- Except for the name change, they behave similarly in most use cases. Unlike with timeless, static data…
- …can't be mixed with non-static data on the same component.
- …will override previous static data and not keep old data in memory.
- Check out our migration guide.
- Except for the name change, they behave similarly in most use cases. Unlike with timeless, static data…
- 🖼️ 2D View's pan & zoom got redone, it's now a free canvas without any scroll bar
- 🤖 Added an example to use Rerun with ROS2.
As always there's a lot going on under the hood:
- 🚚 We streamlined our development processes & CI and examples.
- 🕸️ Our web page is about to switch from React to Svelte, making it a lot snappier!
- 💿 Instance key removal in 0.15.0 opened the door to major simplifications in our data store, this
will make it easier for us to improve performance and implement data streaming. - 🤗 We're making it easier to work with HuggingFace's Gradio API. Stay tuned! Most things for this already landed in this release and we'll soon build more direct support on top.
0.15.1 - Fix Python notebooks
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://rerun.io/viewer/version/0.15.1/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.15.1/rerun_cpp_sdk.zip
- Fix timeout in notebooks by making the
app_url
correctly point toapp.rerun.io
#5877 - CMake: Allow to call
find_package(rerun_sdk)
two or more times #5886 (thanks @traversaro!)
0.15.0 - Blueprints from Python
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://rerun.io/viewer/version/0.15.0/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.15.0/rerun_cpp_sdk.zip
The biggest news is the ability to create a blueprint via the Python logging API. Check out our associated blog post for more information.
import rerun.blueprint as rrb
blueprint = rrb.Blueprint(
rrb.Vertical(
rrb.Spatial3DView(name="3D", origin="/"),
rrb.Horizontal(
rrb.TextDocumentView(name="README", origin="/description"),
rrb.Spatial2DView(name="Camera", origin="/camera/image"),
rrb.TimeSeriesView(origin="/plot"),
),
row_shares=[3, 2],
)
rrb.BlueprintPanel(expanded=True),
rrb.SelectionPanel(expanded=False),
rrb.TimePanel(expanded=False),
)
The blueprint can then be sent to the viewer with
rr.send_blueprint(blueprint)
Or stored to a file, and then later opened in the viewer:
blueprint.save("my_nice_dashboard.rbl")
In this case, the results looks something like this:
Blueprints are currently only supported in the Python API, with C++ and Rust support coming later.
✨ Overview & highlights
- 🟦 Configure the layout and content of space views from Python (docs)
- 🖧 More powerful and flexible data loaders (docs)
- 🖵 Improved UI for managing recordings and applications
- 💾 Save and load blueprint files in the viewer
- 🎨 Configurable background color for 3D Space Views #5443
- 💪 Linux ARM64 support #5489 #5503 #5511
- 🖼️ Show examples in the welcome page
- 🖱️ Improve context-menu when right-clicking items in the blueprint panel and streams tree
- ❌ Remove
InstanceKey
from our logging APIs #5395 (migration guide) - ❌ Remove groups from blueprints panel #5326
🔎 Details
🪵 Log API
- Replace
MarkerShape
with code-generatedenum
type #5336 - Key-less data model 1: scrap
InstanceKey
from public logging APIs #5395 - Remove the check for
WrongNumberOfInstances
#5399 - Control panel expanded state via blueprint APIs #5484
- Remove deprecated
TimeSeriesScalar
#5604 - Customizable data loaders #5327 #5328 #5330 #5337 #5351 #5355 #5379 #5361 #5388
🌊 C++ API
- Fix arrow libraries from download & build not being found in some cases #5366
- CMake: Add
RERUN_INSTALL_RERUN_C
option to disable installation ofrerun_c
library #5374 (thanks @traversaro!) - CMake: Fix
install
not finding externalarrow
for dynamic linking #5375 (thanks @traversaro!) - Make
pinhole.hpp
robust againstmin/max
preprocessor macros (typically fromwindows.h
) #5432 - Build C++ SDK for Linux ARM64 #5489
- Generate fewer
.cpp
files: Inline forward serialization of transparent components to their respective datatypes #5544 - Fix
RERUN_C_BUILD_ARTIFACT
path value ifCARGO_BUILD_TARGET
env variable is set #5547 (thanks @traversaro!)
🐍 Python API
- All python components that wrap a
bool
now implement__bool__
#5400 - Add the remaining space views and name them consistently #5498
- Add option to include blueprint in an
.rrd
when calling.save(…)
#5572 - Allow naming space view containers #5626
🦀 Rust API
🪳 Bug Fixes
- Sort text log space view on currently selected timeline #5348
- Fix parents of queried paths getting visualized, fix 2D objects not showing at all in 3D if their camera parent is not included #5424
- Fix: allow creating 3D space views for pinhole-only 3D scenes #5563
- Fix depth cloud bounding boxes for depth cloud visualizations with transforms #5578
- Fix image view not handling images with extra leading dimensions of size
1
#5579 - Fix web viewer crash on invalid url parameter #5631
- Be consistent in how items are removed from selection #5643
- Fix layout issue on welcome screen for narrow window, triggering debug assertion #5650
- Fix broken 2D space view heuristics in Python Notebooks #5674
- Avoid a hang on linux by always create the renderer, even when we have no store_view #5724
- Fix crash/freeze when zooming out too far in a plot #5737
- Fix
draw_order
not working #5794
🌁 Viewer Improvements
- Remove groups from blueprints panel #5326
- Improved tracking of which space views were generated by a heuristic #5419
- Configurable background color for 3D Space Views #5443
- Save recordings from web viewer #5488
- Support loading
.rbl
blueprint files #5513 - Tensor space view can now show images #5567
- Entity path query now shows simple statistics and warns if nothing is displayed #5693
- Go back to example page with browser Back-button #5750
- On Web, implement navigating back/forward with mouse buttons #5792
- Support displaying 1D tensors #5837
🧑🏫 Examples
- New
incremental_logging
example #5462 - New standalone example showing blueprint configuration of some stock #5603
- New example visualizing KISS-ICP #5546 (thanks @02alexander!)
- Remove car example #5576
- Add blueprint to
arkit_scenes
example, leveraging the viewer's ability to re-project 3D->2D #5510 - Add blueprint to
nuscenes
example #5556 - Add blueprint to Face Tracking example #5616
- Add blueprint to Gesture Detection example #5619
- Add blueprint to Human Pose Tracking example #5612
- Add blueprint to Live Camera Edge Detection example #5613
- Add blueprint to LLM Embedding Ner example #5614
- Add blueprint to Objectron example #5617
- Add blueprint to Signed Distance Fields example #5635
- Add blueprint to the RGBD example [#5623](https://github....
0.14.1 - Fix C++ build artifacts
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://app.rerun.io/.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.14.1/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.14.1/rerun_cpp_sdk.zip
This release is identical to 0.14.0 and merely fixes an issue in the build artifacts for C++: 0.14.0 only contained binaries for Linux x64.
This release has the full set for Linux x64, Windows x64, Mac x64 & Mac Arm64.
0.14.0 - "Unlimited" point clouds & lines, quality of life improvements, bugfixes
0.14.release.video.final.mp4
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://app.rerun.io/.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.14.0/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.14.0/rerun_cpp_sdk.zip⚠️ There was a problem in our build pipeline causing this release to only contain Linux artifacts and none for Mac & Windows. This is fixed in 0.14.1.
Originally, we planned to do only a bugfix release, but we got an unexpected amount of goodies amassed already.
We're still ramping up for programmable blueprints (soon!), but meanwhile enjoy these improvements in 0.14!
Overview & Highlights
- 📈 Limits for number of points & lines per space view lifted.
- 🖱️ Added context menu (right-click) actions for items on the Blueprint panel. (Only getting started on this, more actions in future releases!)
- 🚀 Speed improvements for scenes with many transforms and large point clouds.
- 🔺 Built-in STL mesh support.
- 🎥 First-person camera.
- 🐛 Fixes regressions in Space View spawn heuristics from 0.13, and many more bugfixes.
- 🧑🏫 Two new examples: Gesture Recognition & RRT* Pathfinding
Details
🪵 Log API
- Add helpers for perspective cameras #5238
- Fix
spawn
starting the viewer even if logging is disabled #5284
🐍 Python API
- Add missing python docs for
disable_timeline
&reset_time
#5269 - Fix missing error message when passing
from_parent
+ rerun transform type torerun.Transform3D
#5270
🦀 Rust API
- Fix using
rerun
crate as a dependency on CI #5170
🪳 Bug Fixes
- Enforce the rule: heuristics should never add a new view that would be completely covered by an existing view #5164
- Remove log spam when quickly resizing the viewer #5189
- Fix incorrect minimum supported rust version mentioned in docs and examples #5195
- Less restrictive visualizability constraints of 2D entities, improved space view generation heuristics #5188
- Fix ugly UI for some arrow data #5235
- Fix missing redraw upon resetting blueprint #5262
- Fix non-deterministic redundancy check for space view spawning heuristic #5266
- Fix resetting vertical axis when using non-uniform zoom on Time Series #5287
🌁 Viewer Improvements
- Clear all blueprints in RAM and on disk when clicking "Reset Viewer" #5199
- Improve the orbit eye to always maintain an up-axis #5193
- Focus on current bounding-box when resetting camera-eye on a 3D space view (double click it) #5209
- Add STL mesh support #5244
- Add first person 3D eye-camera #5249
🚀 Performance Improvements
- More robust handling of maximum texture size for non-color data, slight perf improvements for large point clouds #5229
- Cached transforms & disconnected spaces for faster scenes with many transforms #5221
- Optimized cpu time for 3D point clouds (once again!) #5273
- Only compute store/caching stats when the memory panel is opened #5274
- Increase the max WebSocket frame limit for the native client #5282
🧑🏫 Examples
- Add Gesture Recognition example #5241 (thanks @andreasnaoum!)
- Add example visualizing RRT* #5214 (thanks @02alexander!)
📚 Docs
- Fix broken link in the installing-viewer documentation #5236 (thanks @BirgerMoell!)
🖼 UI Improvements
- Context Menu 1: Basic scaffolding and simple actions #5163
- Context menu 2: add support for multiple selection #5205
- Context menu 3: add "Move to new container" context menu action #5210
- Context menu 4: add "Clone space view" action #5265
- Context menu 5: refactor into multiple files #5289
- Clickable path parts in selection-panel #5220
- Don't show the blueprint section when selecting recordings #5245
- Use the same icon for recordings everywhere #5246
🎨 Renderer Improvements
- Lift point cloud size limitations #5192
- Lift line vertex/strip count limitations #5207
- Fix banding artifacts of 3D space view's skybox #5279
📦 Dependencies
0.13.0 - Fast time series, improved layout editing & UI overrides
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://app.rerun.io/.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.13.0/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.13.0/rerun_cpp_sdk.zip
This release focuses on scalar time series -- both from a performance and UI perspectives. Check out our associated blog post for more information.
Overview & Highlights
-
📈 Rerun can now visualize many time series in the kHz range in real-time:
- The new query cache optimizes data access, improving query performance by 20-50x
- Sub-pixel aggregation prevents unnecessary overdraw when rendering plots, improving rendering time by 30-120x
- Points, lines, arrows and boxes all benefit from query caching too to a lesser extent, yielding 2-5x performance improvements
-
🖼 UI overrides:
- The new
Scalar
,SeriesLine
&SeriesPoint
archetypes allow for customizing plots both at logging and visualization time - Customize marker shapes, marker sizes, etc from code or directly through the UI
- Specify axis labels, lock axes, etc from code or directly through the UI
- The new
-
🌁 Viewer:
- The number of compute threads can now be controlled using the
--threads
/-j
flag - Added support YUY2-encoded images (thanks @oxkitsune!)
- Space views can now be drag-and-dropped directly from the blueprint tree
- Scenes with 100+ entities are now up to 5x faster.
- The number of compute threads can now be controlled using the
-
🚚 New Space View and Container creation workflow:
- When selected, containers have a children list in the Selection Panel, where new Space Views and Containers may be added.
- New modal dialog to add Space Views and Containers.
- The same dialog is also available from the
+
button of the Blueprint tree UI. - The Space View's origin can now be edited in the Selection Panel.
- The container hierarchy can now be cleaned up with the new
Simplify Hierarchy
button in the Selection Panel for containers.
-
🦀 The rust SDK now exposes an optional integration with the
mint
crate -
🕸️ The web UI SDK now supports loading multiple
.rrd
URLs -
🔺 The web viewer now renders using WebGPU by default (when available), leading to lower memory usage on Chrome.
You can override this behavior using?renderer=webgl
/?renderer=webgpu
url parameter, or restart with WebGL/WebGPU respectively from the options menu.
As well as a lot of miscellaneous bug fixes and usability improvements: see details below.
Check out our migration guide.
Details
🪵 Log API
- Mark TimeSeriesScalar as deprecated in all SDKs and documentation #5102
🌊 C++ API
- Document that in C++ PinholeProjection::from_mat3x3 is column major #4843
- Include LICENSE files into C++ SDK Assets #4870 (thanks @rgolovanov!)
- Fix C++ arrow build flag forwarding #4921 (thanks @rgolovanov!)
🦀 Rust API
- Add integration with the
mint
crate #4753
🐍 Python API
- Fix support for compressing mono images by respecting mode to determine depth #4847
🪳 Bug Fixes
- External loader: don't do process IO on compute thread-pool #4942
- Fix a Visible Time Range UI issue where the summary string would display the wrong data range #5034
- Clear empty containers after tile drag-and-drop #5044
- Allow for very large meshes & plots by always picking the largest available GPU buffer size #5053
- Fix forever repaint of big scenes #5071
- Fix
RERUN_FLUSH_NUM_BYTES
and data size estimations #5086 - Make
rectangle_fs.wgsl
compile on chrome despite angle/mesa bug (#3931) #5074
🌁 Viewer Improvements
- Introduce Scalar, SeriesLine, and SeriesPoint archetypes with their own visualizers #4875
- Support modifying the plot style by introducing a generic framework for overriding components #4914
- Introduce a new blueprint archetype for AxisY configuration in a plot #5028
- Improve the selection/hover behavior for plots #5096
- Click a spatial space view background to select the space view itself #4796
- Double-clicking an entity in the blueprint & time panels focuses the 3D camera on it #4799
- When loading a .ply file, warn about ignored properties #4934
- Make it easier to position 3D eye-camera center #4943
- Include tessellation and rendering in CPU time shown in top bar #4951
- Allow selection of entities directly in the plot space view #4959
- Texture support for raw
Mesh3D
logging #4894
🚀 Performance Improvements
- Add
--threads
/-j
to control number of compute threads #5021 - Introduce the query cache:
- Primary caching 3: bare-bone latest-at caching #4659
- Primary caching 4: runtime toggle support #4680
- Primary caching 5: 2D & 3D point clouds #4681
- Primary caching 6: TextLogs & TimeSeries #4698
- Primary caching 7: Always expose the data time in query responses #4711
- Primary caching 8: implement latest-at data-time cache entry deduplication #4712
- Primary caching 9: timeless latest-at support #4721
- Primary caching 10: latest-at cache invalidation #4726
- Primary caching 11: cache stats and integration with memory panel #4773
- Primary caching 12: bare-bone range support #4784
- Primary caching 13: stats & memory panel integration for range queries #4785
- Primary caching 14: don't bake
LatestAt(T-1)
results into low-level range queries #4793 - Primary caching 15: range read performance optimization #4800
- Primary caching 16: context-free range semantics #4851
- Primary caching 17: timeless range #4852
- Primary caching 18: range invalidation (ENABLED BY DEFAULT 🎊) #4853
- Primary caching 19 (final): make cache globals non-static #4856
- Integrate query caching with more primitives:
- Configurable dynamic plot aggregation based on zoom-level #4865
- Improved automatic view creation heuristic, major speedup for scenes with many entities #4874
- Optimize point clouds #4932
🧑🏫 Examples
- Update all examples that use
TimeSeriesScalar
to useScalar
instead #5042
📚 Docs
- Improve documentation of the
Clear
archetype #4760 DisconnectedSpace
now only applies to spatial space views #4935- Fill gaps in image encoding documentation, fix how python documents union variants #4988
🖼 UI Improvements
0.12.1 - Data loader bug fixes
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
- C++: https://github.com/rerun-io/rerun/releases/download/0.12.1/rerun_cpp_sdk.zip
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.12.1/
🌊 C++ API
- Fix CMake trying to pick up test folders outside of the Rerun project/zip #4770 (thanks @KevinGliewe!)
- Document that
Mat3x3
andMat4x4
constructors are column major #4842
🦀 Rust API
🪳 Bug Fixes
- Fix external data loader plugins on Windows #4840
- Reduce latency when loading data from external loaders #4797
- Always point to versioned manifest when building a versioned binary #4781
🧑💻 Dev-experience
- External loaders: remove warnings on duplicated binary on
$PATH
#4833
🤷♂️ Other
0.12.0 - Data Loaders, Container-editing, and Python-3.12
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.12.0/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.12.0/rerun_cpp_sdk.zip
Related blog post: Introducing plugins for loading any file to Rerun.
Overview & Highlights
- 🌁 The Rerun Viewer now supports a plugin system for creating arbitrary external data loaders.
- 🕸️ More built-in examples are now available in the viewer.
- 🐍 The Python SDK now works with Python-3.12.
- 📘 Blueprint containers can now be selected and modified.
- 🚀 In the native viewer, space views are now evaluated in parallel for improved performance.
- 🧑🏫 Support and guide for sharing a recording across multiple processes.
- 📁 Entity-paths allowed characters and escaping are now more file-like #4476:
- There is no need for " quotes around path parts, instead we now use \ to escape special characters.
- You need to escape any character that isn't alphabetical, numeric, ., -, or _.
Details
🌊 C++ API
- Exposing
recording_id
in C and C++ SDKs #4384 - All C++ preprocessor macros start now with RR_ (instead of a mix of RR_ and RERUN_) #4371
- C++ & Python API: add helpers for constructing an entity path #4595
🐍 Python API
- Add
--stdout
/-o
to our CLI helper library #4544 - C++ & Python API: add helpers for constructing an entity path #4595
- Python SDK: introduce deferred garbage collection queue #4583
- Add support for Python 3.12 #4146
🦀 Rust API
- Exposing
recording_id
in Rust SDK #4383 - Add
--stdout
/-o
to our CLI helper library #4544 - Document how to construct an entity path for the Rust logging API #4584
🪳 Bug Fixes
- Bugfix: show labels on segmentation images with trivial dimensions #4368
- Datastore: don't eagerly sort in bucket split routine on ingestion path #4417
- Resolve spurious blueprint panel group collapsing #4548
- Fix rectangle that indicates the zoomed pixel area on hover being one pixel to small #4590
- Fix wrong RowId order of logged data #4658
- Make scroll-to-zoom a lot more responsive in 3D views #4668
- Fix heuristic object properties being broken in some cases / fix DepthMeter being ignored sometimes #4679
🌁 Viewer Improvements
- Make viewer contexts's render context reference non-mutable #4430
- The Rerun Viewer can now consume from stdin
- Support for custom DataLoaders:
DataLoader
s 0: utility for hierarchicalEntityPath
from file path #4516DataLoader
s 1: introduce, and migrate to,DataLoader
s #4517DataLoader
s 2: add text-basedDataLoader
(.txt
,.md
) #4518DataLoader
s 3: add 3D point cloudDataLoader
(.ply
) #4519DataLoader
s 4: add generic folderDataLoader
#4520DataLoader
s 5: add support for external binaryDataLoader
s (PATH) #4521DataLoader
s 6: first-class support forIncompatible
#4565DataLoader
s 7: support for customDataLoader
s #4566
- 3D->2D & 2D->3D selection visualizations stick now around on selection #4587
- The viewer now supports segmentation images logged natively as floats #4585
- Fix incorrect bounding box calculation for camera view parts #4640
🚀 Performance Improvements
🧑🏫 Examples
- Add nuScenes-based lidar examples #4407 (thanks @roym899!)
- Nightly builds #4505
- Add LLM token classification example #4541 (thanks @roym899!)
📚 Docs
- Shared recordings 3: add how-to guide #4385
- Document our crate organization in ARCHITECTURE.md #4458
🖼 UI Improvements
- Plot legend visibility and position control (part 1): route
EntityProperties
toSpaceViewClass
methods #4363 - Plot legend visibility and position control (part 2): minor UI spacing improvement #4364
- Reset accumulated bounding box when resetting camera #4369
- Plot legend visibility and position control (part 3): legend UI added for both timeseries and bar charts space views #4365
- Improve component data table UI in the selection panel #4370
- Add optional color component to BarChart archetype #4372
- Resolve unexpected view-partitioning by only bucket images when creating a new 2d view #4361
- Restore
egui_plot
auto-bounds state after dragging the time cursor in timeseries space views #4270 - Make Space View containers selectable and editable #4403
- Improve selection and hover behavior of viewport's tabs #4424
- Improve the Selection Panel UI for components when a single item is selected #4416
- Show connection status in top bar #4443
- Add the possibility to add empty space views of all registered types #4467
- Add experimental Dataframe Space View #4468
- Show e2e latency in metric ui in top panel #4502
- Show leading slash when formatting entity paths #4537
- Improve entity size stats: include whole subtree #4542
- Add support for modal windows to
re_ui
and use it for the Space View entity picker #4577 - Show entity path parts (entity "folder" names) unescaped in UI #4603
- Improve Rerun Menu with link to Rerun Discord #4661
- Introduce container icons and update space views and UI icons #4663
- Initial support for manually adding container and space view in the hierarchy #4616
- Change modal position to a fixed vertical distance from the top of the window #4700
🕸️ Web
- Load examples manifest via HTTP #4391
- Remove builds and usage of
demo.rerun.io
#4418 - Open all links in a new tab #4582
🎨 Renderer Improvements
- Log wgpu adapter on web #4414
- Interior mutability for re_renderer's static resource pools (RenderPipeline/Shader/Layouts/etc.) #4421
- Make draw data creation no longer require a mutable re_renderer context #4422
- Move re_renderer examples to its own crate in order to make workspace level examples less confusing [#4472](https://github.com...
0.11.0 - C++ improvements & better Visible History
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli
- Online demo: https://app.rerun.io/version/0.11.0/
- C++
FetchContent
: https://github.com/rerun-io/rerun/releases/download/0.11.0/rerun_cpp_sdk.zip
Release blog post: https://www.rerun.io/blog/cpp-sdk
visible.time.range.mp4
Overview & Highlights
- 🌊 C++ SDK improvements
- Reference docs are live!
- 2x-5x faster logging
- CMake install support and other CMake setup improvements
- Support for custom components & archetypes
- Zero copy logging for images, various API improvements
- 📈 Visual History -> Visual Time Range
- Time series plots can now limit its query to a range
- Much more powerful UI, allowing query ranges relative to time cursor
- 🕸️ The viewer can now be easily embedded in your web apps via our npm package
- 🐍
⚠️ Legacy Python API now removed, check the migration guide if you're not usingrr.log
yet - 🦀 The new
StoreSubscriber
trait allows to be notified of all changes in the datastore. This can be used to build custom indices and trigger systems, and serves as a foundation for upcoming performance improvements. Check out our example for more information.
- Time cursor sometimes stops scrolling correctly on plot window
- Still doesn't work with transforms
Special thanks to @Dvad & @dangush for contributing!
Details
🌊 C++ SDK
- Support std::chrono types for
set_time
onrerun::RecordingStream
#4134 - Improve rerun_cpp readme & CMakeLists.txt #4126
- Replace the many parameters of
rerun::spawn
/rerun::RecordingStream::spawn
with astruct
#4149 - Make on TextLogLevel PascalCase (instead of SCREAMING CASE) to avoid clashes with preprocessor defines #4152
- Reduce rerun_c library size (by depending on fewer unnecessary crates) #4147
- Fix unnecessary includes in code generated headers #4132
- Doxygen documentation & many doc improvements #4191
- Rename
rerun::ComponentBatch
torerun::Collection
(and related constructs) #4236 - Use
rerun::Collection
almost everywhere we'd usestd::vector
before #4247 - Significantly improve C++ logging performance by using C FFI instead of arrow IPC #4273
- Further improve C++ logging for many individual log calls by introducing a component type registry #4296
- All C++ datatypes & components now implement a new Loggable trait #4305
- Add C++ Custom Component example #4309
- Expose Rerun source/include dir in CMakeLists.txt (
RERUN_CPP_SOURCE_DIR
) #4313 - Support cmake install #4326
- Export TensorBuffer & TensorDimension to rerun namespace #4331
- C++ SDK sanity checks now header/source version against rerun_c binary version #4330
- Allow creating Image/Tensor/DepthImage/SegmentationImage directly from shape & pointer #4345
🐍 Python SDK
- Python: remove legacy APIs #4037
- Remove deprecated
rerun_demo
package #4293 - Python: don't catch
KeyboardInterrupt
andSystemExit
#4333 (thanks @Dvad!)
🪳 Bug Fixes
- Fix line & points (& depth clouds points) radii being unaffected by scale & projection via Pinhole #4199
- Fix inaccessible entities being incorrectly added to space view #4226
- Silence spammy blueprint warnings and validate blueprint on load #4303
- Fix markdown heading size #4178
🌁 Viewer Improvements
- Add command to copy direct link to fully qualified URL #4165
- Implement recording/last-modified-at aware garbage collection #4183
🖼 UI Improvements
- Improve Visible History to support more general time queries #4123
- Add support for Visible History to time series space views #4179
- Make Visible History UI more ergonomic and show inherited values #4222
- Display Visible History on timeline when the mouse hovers the UI #4259
- Improve the Selection Panel with better title, context, and Space View key properties #4324
🕸️ Web
- Put web viewer on
npm
#4003 - Auto-switch port when getting AddrInUse error #4314 (thanks @dangush!)
- Generate per-PR web apps #4341
🧑💻 Dev-experience
- Simple logging benchmarks for C++ & Rust #4181
- New debug option to show the blueprint in the streams view #4189
- Use pixi over setup scripts on CI + local dev #4302
- Run deploy docs jobs serially #4232
- fix windows test config on main #4242