Skip to content

0.37.0

Latest

Choose a tag to compare

@rerun-bot rerun-bot released this 01 Sep 09:50
· 19 commits to main since this release

Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


🧳 Migration guide: https://rerun.io/docs/changelog/changeset-0-37#breaking-changes

✨ Overview & highlights

  • Assets in catalogs, data shared across all segments
  • Improved selection panel navigation
  • State timeline view improvements
  • Export recordings and blueprints from the web Viewer
  • rerun rrd stats tells you whether a recording should be optimized
  • Experimental dataloaders use a unified fetch and decode pipeline
  • Faster video decoding for training
  • Faster manifest generation for video datasets

📖 Release notes: https://rerun.io/docs/changelog/changeset-0-37#highlights

⚠️ Breaking changes

  • All SDKs: datatypes is renamed to encodings. The old spelling still works, deprecated.
  • Rust: the SDK now requires Rust 1.96 or later.
  • Rust, C++: setting a recording id no longer disables recording properties. Opt out with send_properties(false).
  • Rust: Loggable is replaced by ArrowDataType, ToArrow, ToArrowOpt, FromArrow and FromArrowOpt.
  • Python: the rerun-sdk[datafusion] and rerun-sdk[dataplatform] extras are removed, use rerun-sdk[catalog].
  • Python: the experimental Mp4Reader emits VideoStream:is_keyframe as a single sparse marker chunk.
  • Python: experimental dataloader decoders now decode a whole fetch block at a time.
  • Python: experimental dataloader windows list explicit offsets instead of an inclusive range.

🧳 Migration guide: https://rerun.io/docs/changelog/changeset-0-37#breaking-changes

🔎 Details

🌊 C++ API

  • Rename datatypes to encodings 582f273
  • Send recording properties even when a recording id is set f40451b

🐍 Python API

  • Rename datatypes to encodings 582f273
  • Add manifest support for the map dataset e5077f3
  • dataloader: Batch decoding of fetched samples 132284c
  • Remove deprecated rerun-sdk[datafusion] and rerun-sdk[dataplatform] in favor of rerun-sdk[catalog] b51a09a
  • Experimental dataloaders use a unified fetch and decode pipeline ec9488e
  • Make windows supported for all decoders, force is_keyframe for video fields c7feeed
  • Faster video decoding: frame views, YUV output, and FFmpeg threading 23d97be
  • dataloader: skip samples whose decoders return None 19dd869
  • Rely on keyframes only for the manifest 4dea0aa
  • Include assets in segment_store() 52a16b8

🦀 Rust API

  • Rename datatypes to encodings 582f273
  • Send recording properties even when a recording id is set f40451b
  • Update to Rust 1.96.0 dcfb289
  • Replace Loggable with four (de)serialization traits de85d2f
  • Add a standalone rrd::optimize_file API to the rerun crate 7f4ee31
  • refactor: split importers into their own a la carte features to improve compile times #12899 (thanks @claytonwramsey!)

🪳 Bug fixes

  • fix: keep query_dataset response schemas consistent for empty results 0d6f3ec
  • Fix recovery of MCAP messages with truncated index 3a9622f
  • Fixes broken state timeline when lanes end with Clear c358596
  • Show 3D labels projected into 2D views d1a572a (thanks @chunibyo-wly!)
  • Show MCAP CLI processing time as float seconds 99ca6b4
  • Remove "Reset overrides to default blueprint" button fda2f10
  • Fix dataframe API rejecting non-nullable outer list fields on MCAP-converted recordings c44ca0c
  • Fix error messages for potentially recoverable MCAP files 56b5be0
  • Fix TransformAxes3D blanking the whole 3D view when one frame is unresolvable 7c76d0d (thanks @lsy3, @luke-alloy!)
  • Skip unloadable meshes instead of failing import a013fe4
  • Fix containers not re-layouting when views are hidden afbb031
  • Fixes click on state lanes not selecting the entity de1f2c3
  • Fix opening links 04e6e08
  • Reflect dynamic Struct proto into JSON and guard against recursion 1202ee7
  • fix: validate e-tags mid-registrations and on get_rrd_manifest e0c458f
  • Fix video playing when there's many samples at the same timestamp 31d6687
  • Fixes incompatible visualizers showing up in context menu c8a597c
  • Pass through frame info with av1 decoder 2c579bb
  • Fix detecting various link types (s3, gs, ftp etc.) as things we can open 3fa4313
  • Failure to load will now stay in loading screen (with error) for all log sources f30766b
  • Don't warn if an open asset is removed 24ca9b5
  • Fix URDF prismatic joints sliding along the wrong axis 397a4a5

🌁 Viewer improvements

  • Visible time range control for state view c4c0f03
  • Viewer downloading asset chunks and caching them c0e306c
  • State Timeline accepts dropping entities 3cb5761
  • Dataset Asset UI 700cfe5
  • Use /dataset/<entry_id> for URI's leading to datasets 5025e20
  • Pins time cursor to center of state timeline e2df8f0
  • Registering & Unregistering assets in viewer 5ab20d4

🚀 Performance improvements

  • Speed up schema reflection of ROS 2 MCAP channels 7b1aa5f
  • Support incremental ingest for SortedTemporalChunks #12812 (thanks @0n41rd4!)

🖼 UI improvements

  • Improved selection panel navigation 3d82d44
  • Add back/forward history to the selection panel 2b9f5e4

🕸️ Web

  • Add save_recording & save_blueprint javascript APIs a2660e5

🧑‍💻 Dev-experience

  • Add an MP4Reader skill and fix a bug caught in reviewing the skill e71975f

🤷‍ Other

  • Chunk-index-based mergeability assessment 03c1a26
  • Always put IsKeyframe into their own chunks 1e2790d