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
- ARFlow Example Page #5320 (thanks @YiqinZhao!)
- Fix controlnet example for current
controlnet
package version and add blueprint #5634 - Fix RRT-Star example not showing up on website or rerun.io/viewer #5628
- Fix not logging 3D gesture z component correctly in Gesture Detection example #5630 (thanks @andreasnaoum!)
- Updated READMEs for examples: LLM Embedding-Based Named Entity Recognition, nuScenes, Objectron, Open Photogrammetry Format, Raw Mesh #5653 (thanks @andreasnaoum!)
- Updated READMEs for the examples - Batch 1 #5620 (thanks @andreasnaoum!)
📚 Docs
- Docs: improve discoverability of image compression #5675
- Improve getting started doc section #5689
- Update web viewer links #5738
- Update docs with guides and tutorials for blueprint #5641
- Update README and description of
arkit_scenes
example #5711 (thanks @BirgerMoell!) - Improve readme of
depth_guided_stable_diffusion
example #5593 (thanks @BirgerMoell!)
🖼 UI Improvements
- New timezone option: seconds since unix epoch #5450 (thanks @murgeljm!)
- Always enable entity path filter editor #5331
- Add icons for entities and components, and use them everywhere #5318
- Add support for context menu for viewport tab title and selected container's children list #5321
- Fix
ListItem
indentation so icons are properly aligned #5340 - Blueprint tree always starts at the origin now, "projected" paths are called out explicitly #5342
- Merge example page into welcome screen #5329
ListItem
's collapsing triangle is now styled consistently with the rest of the item #5354- Add helpers to enable stable and controllable collapsed state in hierarchical lists #5362
- Different icon for empty entity paths #5338
- Merge quick start guides #5378
- Update welcome screen panel illustrations #5394
- More context menu in blueprint and streams tree:
- Automatically expand and scroll the blueprint tree when focusing on an item #5482
- Save blueprint to file #5491
- Add new design guidelines for title casing etc #5501
- Automatically expand and scroll the streams tree when focusing on an item #5494
- Reduce the height of the tab bars and side panel titles #5609
- Support toggling item visibility on touch screens #5624
- Select active recording if nothing else is selected #5627
- Enable selecting data sources and blueprints and recordings in them #5646
- Warn user when a software rasterizer is used #5655
- Improve spacing and alignment of menus #5680
- Simplify Welcome Screen and use card-based layout for examples #5699
- Make selection history global instead of per recordings #5739
- Improve formatting of numbers on plot Y axis #5753
- Show all loaded applications in recordings panel #5766
- Wider selection panel by default #5777
- Tighter UI for tensor, annotation-context, view coordinates, recording #5782
- Always show welcome screen, but sometimes fade it in #5787
🕸️ Web
- Support loading multiple recordings and/or blueprints in web-viewer #5548
- Build release
.wasm
with debug symbols #5708
🧑💻 Dev-experience
- Build wheels for Linux ARM64 #5511
📦 Dependencies
🤷 Other
- Build CLI for Linux ARM64 #5503
- Allow hiding/showing entity subtrees under shown/hidden parent tree #5508
- Introduce basic support for
$origin
substitution inEntityPathFilter
#5517 - Introduce
rr.notebook_show()
to simplify notebook experience #5715 - Also remove nested inclusions when removing a subtree #5720
- Prevent gratuitous blueprint saves by not garbage collecting when the blueprint hasn't changed #5793
- Refactor
Selection
usingIndexMap
and make it more encapsulated #5569