Skip to content

Releases: rerun-io/rerun

0.12.0 - Data Loaders, Container-editing, and Python-3.12

09 Jan 18:26
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.

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
    • Standard input/output support 1: stream RRD data from stdin #4511
    • Standard input/output support 2: Rust SDK stdout impl/examples/docs #4512
    • Standard input/output support 3: Python SDK stdout impl/examples/docs #4513
    • Standard input/output support 4: C++ SDK stdout impl/examples/docs #4514
  • Support for custom DataLoaders:
    • DataLoaders 0: utility for hierarchical EntityPath from file path #4516
    • DataLoaders 1: introduce, and migrate to, DataLoaders #4517
    • DataLoaders 2: add text-based DataLoader (.txt, .md) #4518
    • DataLoaders 3: add 3D point cloud DataLoader (.ply) #4519
    • DataLoaders 4: add generic folder DataLoader #4520
    • DataLoaders 5: add support for external binary DataLoaders (PATH) #4521
    • DataLoaders 6: first-class support for Incompatible #4565
    • DataLoaders 7: support for custom DataLoaders #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

  • Parallelize Space View system evaluation #4460
  • Limit server memory #4636

🧑‍🏫 Examples

📚 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 to SpaceViewClass 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...
Read more

0.11.0 - C++ improvements & better Visible History

28 Nov 15:02
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data

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 using rr.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.

⚠️ Known issues on Visual Time Range:

Special thanks to @Dvad & @dangush for contributing!

Details

🌊 C++ SDK

  • Support std::chrono types for set_time on rerun::RecordingStream #4134
  • Improve rerun_cpp readme & CMakeLists.txt #4126
  • Replace the many parameters of rerun::spawn / rerun::RecordingStream::spawn with a struct #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 to rerun::Collection (and related constructs) #4236
  • Use rerun::Collection almost everywhere we'd use std::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 and SystemExit #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

🗣 Refactors

  • StoreView -> StoreSubscriber #4234
  • DataStore introduce StoreEvents #4203
  • DataStore introduce StoreViews #4205

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