Skip to content

Releases: rerun-io/rerun

0.10.1 - Bug fixes

02 Nov 16:45
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

Overview & Highlights

This is a small release primarily to tie up some loose ends for our C++ SDK.

🌊 C++ SDK

  • Avoid possible link/symbol errors but defaulting all OSes to static linking of arrow #4101
  • Fix compilation errors with C++20 #4098
  • Improve C++ SDK perf 5x by respecting CMAKE_BUILD_TYPE and enabling mimalloc #4094
  • Reduce amount of cmake log from building & downloading libArrow #4103

🧑‍💻 Dev-experience

  • C++ Windows CI #4110
  • Add MacOS C++ CI, add Linux C++20 CI #4120

Read the full changelog at https://github.com/rerun-io/rerun/blob/main/CHANGELOG.md

0.10.0 - C++ SDK

30 Oct 17:41
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

Release blog post: https://www.rerun.io/blog/cpp-sdk

Overview & Highlights

  • The C++ SDK is finally here!
    #include <rerun.hpp>
    
    int main() {
        const auto rec = rerun::RecordingStream("rerun_example_points3d_simple");
        rec.spawn().exit_on_failure();
    
        rec.log("points", rerun::Points3D({{0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}}));
    }
  • Add an integrated getting-started guide into the viewer splash screen
  • Add a new and improved spawn method in the Rust SDK
  • Add support for NV12-encoded images #3541 (thanks @zrezke!)
  • We now publish pre-built binaries for each release at https://github.com/rerun-io/rerun/releases

Details

🌊 C++ SDK

  • Has all the features of the Python and C++ SDK:s

🐍 Python SDK

  • Add RERUN_STRICT environment variable #3861
  • Fix potential deadlock when saving to file after logging at the end of a Python program #3920
  • Warn if no resolution provided to Pinhole #3923
  • Python: remove unconditional sleep on spawn #4010
  • Support pathlib.Path for rr.save #4036
  • Add disable_timeline function #4068
  • Support fast install of the rerun viewer with cargo binstall rerun-cli thanks to cargo binstall

🦀 Rust SDK

  • Introduce re_types_core #3878
  • Fix crash when using RecordingStream::set_thread_local on macOS #3929
  • Add improved spawn function #3996 #4031
  • Redesign clap integration #3997 #4040
  • RecordingStream: introduce connect_opts #4042
  • Add disable_timeline function #4068

🪳 Bug Fixes

  • Fix grayscale images being too dark #3999
  • Prevent badly sized tensors from crashing the viewer #4005
  • Fix selection history right-click menu not working #3819

🌁 Viewer Improvements

  • Replace --strict flag with RERUN_PANIC_ON_WARN env-var #3872
  • Support NV12-encoded images #3541 (thanks @zrezke!)

🧑‍🏫 Examples

  • --max-frame support for tracking examples #3835

📚 Docs

  • Synchronize code examples and their screenshots #3954
  • Improve docs for TextDocument example #4008
  • Fix typos in documentation and code comments #4061 (thanks @omahs!)

🖼 UI Improvements

  • Add basic support for in-app "Quick Start" guides #3813 #3912
  • Add copy-button to markdown code blocks #3882
  • Add warning in the Quick Start guides about Safari breaking Copy to Clipboard #3898

🎨 Renderer Improvements

  • Add easy way to dump out final wgsl shader #3947

🧑‍💻 Dev-experience

  • Approve all workflow runs for a specific contributor PR #3876
  • Make codegen I/O-free and agnostic to output location #3888
  • Configure pytest to fail on warnings #3903
  • Improve taplo output on failure #3909
  • Automatically synchronize build.rerun.io & release assets #3945
  • New helper script to run fast lints and pre-push hook that runs it #3949
  • CI: Rerun CLI as a release asset #3959
  • Add script to generate RRD vs. screenshots comparisons #3946
  • Add a new build Environment option for CondaBuild to improve conda-built artifacts #4015
  • Lock python in CI to 3.11 #4033
  • Changed spawn() and the rerun script to call into rerun_bindings (12x startup time improvement) #4053

0.9.1 - Bug fixes and performance improvements

13 Oct 06:33
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

Overview & Highlights

  • A bunch of bug fixes
  • Fix big performance regression when hovering images
  • The Rerun Viewer should now be visible to the system accessibility system

🐍 Python SDK

  • Added support for PyTorch array to Boxes2D's array convenience argument #3719
  • Fix default stroke width handling in log_line_strip_Xd and log_obbs #3720
  • Warn/raise when passing incompatible objects to log #3727
  • Refactor rerun.AnyValues to handle None input more gracefully #3725
  • Default DisconnectedSpaces boolean to true in Python #3760

🦀 Rust SDK

  • Fix return type of entity_path!() and entity_path_vec!() on empty input #3734 (thanks @kpreid!)
  • Export RecordingStreamError #3777

🪳 Bug Fixes

  • Fix bug when joining cleared optional components #3726
  • Update winit to 0.28.7 to fix UI glitch on macOS Sonoma #3763
  • Show 1D-tensors as bar charts #3769
  • Fix loading of .obj mesh files #3772
  • Fix crash when loading huge image #3775
  • Fix performance regression when viewing images and tensors #3767

🌁 Viewer Improvements

  • Turn on AccessKit accessibility integration #3732
  • Display space views using ViewCoordinates from closest ancestor #3748
  • Improve 3D view bounds handling of camera frustums #3749 #3815 #3811
  • Improve heuristics around 2D vs 3D space-view creation #3822

🚀 Performance Improvements

  • Optimize gathering of point cloud colors #3730

🧑‍🏫 Examples

  • Fix open photogrammetry example not working on Windows #3705

📚 Docs

  • Document that entity-path rerun/ is reserved #3747

🖼 UI Improvements

  • Show all entities/components in the Streams UI, even if empty for the selected timeline #3779

🧑‍💻 Dev-experience

  • Less automatic build.rs shenanigans #3814

🗣 Refactors

  • Refactor our build.rs files #3789

📦 Dependencies

  • Update ewebsock to 0.4.0 #3729
  • Update winit to 0.28.7 #3763

0.9.0 - New Logging API

05 Oct 16:47
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

Overview & Highlights

Rerun 0.9.0 is a big release, that introduces a brand new logging API.
This API is code-generated from a common definition, meaning the Python and Rust SDKs are very similar now.
This will let us more easily extend and improve the API going forward.
It is also the basis for our C++ API, which is coming in Rerun 0.10.0.

Read the migration guide for details!

0.9.0 Welcome Screen

Other highlights:

  • 🏃‍♀️ Large point clouds are up to 3x faster now
  • 📚 Markdown view support
    • 🔗 with easy to use in-viewer entity & component links
  • 📺 New startup screen
  • 🐛 Lots and lots of bugfixes
    • 👷‍♀️ Internally we have now way more automated testing for the new API surfaces
  • ✨ drag & drop for images & meshes (even on web!), time display in local time (thanks @jparismorgan!),
    .obj mesh support, default enabled memory limit, new how-to guide for custom data… and many many more smaller features!

Read the full changelog at https://github.com/rerun-io/rerun/blob/main/CHANGELOG.md

0.8.2 - More bug fixes

05 Sep 10:47
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

🪳 Bug Fixes

  • Fix quadratic slowdown when ingesting data with uniform time #3088
  • Normalize quaternions #3094
  • Improve error message in common re_renderer crash #3070
  • Fix crash on reaching line number limit #3093
  • Handle serde-field that fails to deserialize #3130
  • GC the blueprints before saving while preserving the current state #3148

🧑‍🏫 Examples

  • Make custom_space_view example more verbose #3123

🖼 UI Improvements

  • Change the "slow-down-camera" modifier to Alt on non-Mac #3051 (thanks @h3mosphere!)

🎨 Renderer Improvements

  • Warn if using software rasterizer (lavapipe or llvmpipe) #3134

📦 Dependencies

0.8.1 - Bug Fixes

17 Aug 14:20
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

🐍 Python SDK

  • Add a warning category and stacklevel to rerun warnings.warn calls #2985

🪳 Bug Fixes

  • Fix always redrawing in the presence of a 3D space view #2900
  • Fix unable to set camera spinning until camera has moved #2990

🌁 Viewer Improvements

  • Allow changing plot aspect ratio with scroll + cmd/ctrl + alt #2742
  • Automatically select user timeline if no timeline was explicitly selected yet #2986

🧑‍🏫 Examples

  • Add Helix to demo.rerun.io #2930

📈 Analytics

  • Make sure re_analytics never log higher than at debug level #3014

0.8.0 - Infrastructure investments and more transform improvements - 2023-07-27

27 Jul 20:07
df05f49
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

Overview & Highlights

  • log_pinhole is now easier to use in simple cases and supports non-RDF camera coordinates. #2614
    • You only need to set focal length and optional principal point instead of setting the full 3x3 matrix.
    • There is also a new argument: camera_xyz for setting the coordinate system. The default is RDF (the old
      default). This affects the visible camera frustum, how rays are projected when hovering a 2D image, and how depth
      clouds are projected.
  • The visualizer can now show coordinate arrows for all affine transforms within the view. #2577
  • Linestrips and oriented bounding boxes can now be logged via batch APIs in python.
    • See: log_linestrips_2d, log_linestrips_3d, #2822 and log_obbs #2823
  • Rust users that build their own Viewer applications can now add fully custom Space Views. Find more information here.
  • New optional flush_timeout specifies how long Rerun will wait if a TCP stream is disconnected during a flush. #2821
    • In Rust, RecordingStream::connect now requires flush_timeout specified as an Option<Duration>.
      • To keep default behavior, this can be specified using the rerun::default_flush_time() helper.
    • In Python flush_init_sec is now an optional argument to rr.connect()
  • In Rust, the RecordingStream now offers a stateful time API, similar to the Python APIs. #2506
    • You can now call set_time_sequence, set_time_seconds, and set_time_nanos directly on the RecordingStream,
      which will set the time for all subsequent logs using that stream.
    • This can be used as an alternative to the the previous MsgSender::with_time APIs.
  • The Rerun SDK now defaults to 8ms long microbatches instead of 50ms. This makes the default behavior more suitable for use-cases like real-time video feeds. #2220
  • The web viewer now incremental loads .rrd files when streaming over HTTP. #2412

Open Photogrammetry Preview

Ongoing Refactors

  • There have been a number of significant internal changes going on during this release with little visible impact.
    This work will land across future releases, but is highlighted here since much of it is visible through the
    changelog.
    • The layout of the Viewer is now controlled by a Blueprint datastore. In the future this will allow for direct API
      control of the layout and configuration of the Viewer. A very early prototype of this functionality is available
      via the rerun.experimental module in Python.
    • An entirely new code-generation framework has been brought online for Rust, Python and C++. This will eventually enable
      new object-centric APIs with a more scalable, consistent, and ergonomic experience.
    • Bringup of C++ support is now underway and will eventually become our third officially supported SDK language.

Known Regressions

  • Due to the Blueprint storage migration, blueprint persistence on web is currently broken. Will be resolved in:
    #2579

In Detail

🐍 Python SDK

  • Clean up warnings printed when rr.init hasn't been called #2209
  • Normalise Python typing syntax to 3.8+ #2361
  • Simpler, sturdier stateful time tracking in both SDKs #2506
  • Fix not taking np.array for single colors #2569
  • Add a basic pyright config #2610
  • Improve log_pinhole and support non-RDF pinholes #2614
  • Expose batch APIs for linestrips #2822
  • Expose batch APIs for oriented bounding boxes #2823

🦀 Rust SDK

  • Add example for adding custom Space Views #2328
  • Simpler, sturdier stateful time tracking in both SDKs #2506
  • Automagic flush when take()ing a MemorySinkStorage #2632
  • Logging SDK: Log warnings if user data is dropped #2630
  • Add support for RecordingStream::serve #2815

🌁 Viewer Improvements

  • Better handle scroll-to-zoom in 3D views #1764
  • Add command to screenshot the application #2293
  • Show layout in blueprint tree view #2465
  • Double-click to select entity #2504
  • Add Rerun.io link/text in top bar #2540
  • New auto-layout of space views #2558
  • Add 'Dump datastore' command to palette #2564
  • Support any dtype for depth images #2602
  • Change "Save Selection" command to Cmd+Alt+S #2631
  • Consistent transform visualization for all entities with transforms #2577
  • Improve log_pinhole and support non-RDF pinholes #2614

🚀 Performance Improvements

  • Flush the batches every 8ms instead of 50 ms #2220
  • Replace image crate jpeg decoder with zune-jpeg #2376
  • Stream .rrd files when loading via http #2412

🪳 Bug Fixes

  • Fix deadlock when misusing the Caches #2318
  • Fix unstable order/flickering of "shown in" space view list on selection #2327
  • Fix transforms not applied to connections from transform context #2407
  • Fix texture clamping and color gradient selection being displayed incorrectly #2394
  • Fix projected ray length #2482
  • Tweak the depth bias multiplier for WebGL #2491
  • Clip image zoom rectangle #2505
  • Fix missing feature flags for benchmarks #2515
  • run_all.py script fixes #2519
  • Update egui_tiles with fix for drag-and-drop-panic #2555
  • Convert objectron proto.py back to using typing.List #2559
  • Exclude from objectron/proto/objectron/proto.py from just py-format #2562
  • Fix pinhole visualization not working with camera extrinsics & intrinsics on the same path #2568
  • Fix: always auto-layout spaceviews until the user interveens #2583
  • Fix freeze/crash when logging large times #2588
  • Update egui_tiles to fix crash #2598
  • Fix clicking object with single instance (of every component) selecting instance instead of entity #2573
  • Cleanup internal data-structures when process has been forked #2676
  • Fix shutdown race-condition by introducing a flush_timeout before dropping data #2821
  • Fix ui-scale based point/line sizes incorrectly scaled when zooming based on horizontal dimension #2805
  • Fix visibility toggle for maximized Space Views #2806
  • Fix loading file via CLI #2807
  • Fix disconnected space APIs in Python SDK #2832
  • Avoid unwrap when generating authkey #2804

...

See the Full CHANGELOG for more details.

0.7.0 - improved transforms, better color mapping, bug & doc fixes

16 Jun 18:52
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

  • Python: pip install rerun-sdk
  • Rust: cargo add rerun and cargo 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 to log_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 to log_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 to mkdocs.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 library wasm-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

  • Update xml-rs v0.8.13 -> v0.8.14 #2425
  • Update pip package requests to 2.31 with bug fix #2426

0.6.0 - 3D in 2D and SDK batching

25 May 21:14
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

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 with cargo install rerun-cli #2183
  • native_viewer is now an opt-in feature of the rerun 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 call rr.init if you want logging to work.
  • ⚠️ BREAKING: set_enabled has been removed.
    In order to disable logging at runtime, call set_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 via RecordingStream::disabled().
    See also the doc section on this topic.
  • ⚠️ BREAKING: Session has been replaced by RecordingStream #1983
  • ⚠️ BREAKING: native_viewer is now an opt-in feature of the rerun library #2064
  • Rust SDK: bring back support for implicit splats #2059
  • Introduce a 2D DrawOrder component #2056
  • Add Tensor::from_image_file and Tensor::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 recent jupyter #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 to egui_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

🎨 Renderer Improvements

Read more

v0.5.1

03 May 11:24
Compare
Choose a tag to compare

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

  • Bump hyper version due to RUSTSEC-2023-0034 #1951
  • Round to nearest color_index when doing color mapping #1969
  • Use an sRGB-correct gray gradient when displaying grayscale images #2014
  • Don't use console.error #1984
  • Fix failure to save files when split table contains no data #2007