Releases: rerun-io/rerun
Development Build
Installing the pre-release Python SDK
- Download the correct
.whl. - Run
pip install rerun_sdk<...>.whl(replace<...>with the actual filename) - Test it:
rerun --version
What's Changed
- Post-release cleanup by @emilk in #1726
- batching 4: retire
MsgBundle+ batching support in transport layer by @teh-cmc in #1679 - Change EntityPathHash to be 64 bit by @Wumpf in #1723
- Central GpuReadback handling for re_viewer, experimental space view screenshots by @Wumpf in #1717
- GPU based picking with points by @Wumpf in #1721
- improved renderer label handling by @Wumpf in #1731
- Datastore: revamp bench suite by @teh-cmc in #1733
- Make CI publish
latesttagged web-viewer toapp.rerun.ioby @emilk in #1725 - Optimize the depth-cloud shader when depth=0 by @emilk in #1729
- remove unnecessary dependencies by @vsuryamurthy in #1711
- Improved readback data handling by @Wumpf in #1734
- GPU based mesh picking in viewer by @Wumpf in #1737
arrow2_convertprimitive (de)serialization benchmarks by @teh-cmc in #1742- Fix logged obb being displayed with half of the requested size by @BenjaminDev in #1749
- benchmarks for common vector ops across
smallvec/tinyvec/std by @teh-cmc in #1747 - Hover rays for tracked 3D cameras by @Wumpf in #1751
- Improve dealing with raw buffers for texture read/write by @Wumpf in #1744
arrow2erased refcounted clones benchmarks by @teh-cmc in #1745arrow2estimated_bytes_size benchmarks by @teh-cmc in #1743- Readback depth from GPU picking by @Wumpf in #1752
- Add new ARKitScenes example by @pablovela5620 in #1538
- Fix log_obb usage by @emilk in #1761
- Python SDK: document that we also accept colors in 0-1 floats by @emilk in #1740
- Collapse space-view by default if there is only one child by @emilk in #1762
- Always create the log_time timeline by @jleibs in #1763
- Columnar timepoints in data tables and during transport by @teh-cmc in #1767
- Fix undo/redo selection shortcut/action changing selection history without changing selection by @Wumpf in #1765
- Don't initialize an SDK session if we are only going to be launching the app by @jleibs in #1768
- Allow torch tensors for log_rigid3 by @jleibs in #1769
- Option to show scene bounding box by @emilk in #1770
- Fix a whole lot of crashes, all at once by @emilk in #1780
- Add typing_extensions to requirements-doc.txt by @jleibs in #1786
- auto_color class-ids if they are present by @jleibs in #1783
- Don't run 3rd party bench suites on CI by @teh-cmc in #1787
- Use copilot markers in PR template by @emilk in #1784
- re_format: barebone support for custom formatting by @teh-cmc in #1776
- Always send recording_id as part of LogMsg by @jleibs in #1778
- Refactor: Add new helper crate
re_log_encodingby @emilk in #1772 - New example code for facebook research segment anything by @jleibs in #1788
- Implement
re_tuid::Tuid::random()on web by @emilk in #1796 - ci: fix benchmarks by @teh-cmc in #1799
- Add
minimal_optionsexample for Rust SDK by @h3mosphere in #1773 - setup_web.sh supports pacman package manager by @urholaukkarinen in #1797
- ci: fix
cargo deny(crossbeam-channeloutdated since yesterday's release) by @teh-cmc in #1806 - Compile with
panic = "abort"by @emilk in #1813 - Add
rerun --strict: crash if any warning or error is logged by @emilk in #1812 - Refactor: Remove
TensorTraitby @emilk in #1819 - End-to-end testing of python logging -> store ingestion by @emilk in #1817
- Fix e2e test on CI: Don't try to re-build rerun-sdk by @emilk in #1821
- Use gpu picking for points, streamline/share picking code some more by @Wumpf in #1814
- Process 2D points per entities like 3D points by @Wumpf in #1820
- New option to disable persistant storage by @jleibs in #1825
- New API to reset_time by @jleibs in #1826
- Datastore revamp 1: new indexing model & core datastructures by @teh-cmc in #1727
- Datastore revamp 2: serialization & formatting by @teh-cmc in #1735
- Datastore revamp 3: efficient incremental stats by @teh-cmc in #1739
- Datastore revamp 4: sunset
MsgIdby @teh-cmc in #1785 - Datastore revamp 5:
DataStore::to_data_tables()by @teh-cmc in #1791 - Datastore revamp 6: sunset
LogMsgstorage + save store to disk by @teh-cmc in #1795 - Datastore revamp 7: garbage collection by @teh-cmc in #1801
- Don't assert if inserting a rowid with a matching timepoint does not create a conflict by @jleibs in #1832
- re_query: up to date with latest data types and structures by @teh-cmc in #1828
- datastore: incremental metadata registry stats by @teh-cmc in #1833
- RFC: datastore state of the union & end-to-end batching by @teh-cmc in #1610
- Fix too many points crash by @Wumpf in #1822
- Use GPU picking for line(like) primitives, fix
interactiveflags by @Wumpf in #1829 - Reduce memory used by staging belts on Web by @Wumpf in #1836
- Always flush when we remove a sink by @jleibs in #1830
- GPU colormapping, first step by @emilk in #1835
- Test and handle all tensor dtypes as images by @emilk in #1840
- Install the rerun-sdk in CI using --no-index and split out linux wheel build to run first. by @jleibs in #1838
- GPU tensor colormapping by @emilk in #1841
- Show previews of colormaps when selecting them by @emilk in #1846
- Implement billinear filtering of textures by @emilk in #1850
- MVP Support for inline-rendering of Rerun within jupyter notebooks by @jleibs in #1798
- Disable wheel tests for x86_64-apple-darwin by @jleibs in #1853
- Fix typos in notebook readme by @jleibs in #1852
- Fix the python build when running without web_viewer enabled by @jleibs in #1856
- Error instead of expect inside msg_encode. by @jleibs in #1857
- Restore: New API to reset_time (#1826) by @jleibs in #1854
- Revert "Implement billinear filtering of textures (#1850)" by @jleibs in #1859
New Contributors
- @Sjouks made their first contribution in #1609
- @vsuryamurthy made their first contribution in #1711
- @BenjaminDev made their first contribution in #1749
- @pablovela5620 made their first contribution in #1538
- @h3mosphere made their first contribution in #1773
- @urholaukkarinen made their first contribution in #1797
Full Changelog: v0.2.0...prerelease
v0.4.0
release.0.4.0.mp4
Overview & Highlights
- Add support for mesh vertex colors #1671
- Lower memory use #1535
- Improve garbage collection #1560
- Improve the web viewer #1596 #1594 #1682 #1716 …
- Nice outlines when hovering/selecting
- Add an example of forever-streaming a web-camera image to Rerun #1502
- Fix crash-on-save on some versions of Linux #1402
- And a lot of other bug fixes
- Many performance improvements
We now host an experimental and unpolished web-viewer at https://app.rerun.io/ for anyone to try out!
In Detail
🐍 Python SDK
- Expose all Rerun enums and types to main module scope #1598
- Make
log_pointmore forgiving and update docstring #1663 - Add support for mesh vertex colors #1671
🦀 Rust SDK
⚠️ Session::newhas been replaced withSessionBuilder#1528⚠️ session.spawn(…)->rerun::native_viewer::spawn(session, …)#1507⚠️ session.show()->rerun::native_viewer::show(session)#1507⚠️ session.serve(…)->rerun::serve_web_viewer(session, …);#1507⚠️ rerun::global_sessionis now hidden behind theglobal_sessionfeature flag #1507- Add support for mesh vertex colors #1671
🪳 Bug Fixes
- datastore: disable compaction (fixes 2x memory issue) #1535
- Fix garbage collection #1560
- Avoid using undefined extern "C" on windows #1577
- Fix crash on decoding old .rrd files #1579
- datastore: stabilize dataframe sorts #1549
- Stop using infinities in wgsl shaders #1594
- Workaround for alpha to coverage state leaking on (Web)GL renderer #1596
- Use a patched
wasm-bindgen-cliwith fix for 2GiB bug #1605 - Misc: make example in
log_pinholerunable #1609 (thanks @Sjouks!) - Early-out on zero-sized space-views to prevent crashes #1623
- Print our own callstack on panics #1622
- Handle ctrl+c to gracefully shutdown the server(s) #1613
- Fix crash on serve exit, second attempt #1633
- Fix wrong remove-tooltip for entities and groups #1637
- Fix requiring requiring focus for shutdown via ctrl+c when starting viewer from command line #1646
- Fix eye spin after eye reset #1652
- Fix crash on negative radii by instead warning #1654
- Fix crash when trying to listen on a taken TCP port #1650
- Don't show 2D labels in 3D space views. #1641
- Fix Z fighting with improved depth offset math #1661
- Whether a spatial view is 2d or 3d is now reevaluated over time unless picked explicitly #1660
- Update wgpu to v0.15.3, fixing meshes on Windows Chrome #1682
- Fix a bug in the image hover code, causing the wrong RGBA values to be printed #1690
- Fix a bug that caused points to be render too large #1690
- Fix web crash on missing uniform buffer padding #1699
- Fix
memory_usageexample relying on implicit recursive features #1709 - Track changed state in nav mode combo box #1703
- Fix crash-on-save by switching file-picker dialog to
xdg-portal#1402 - Change roll-shortcut from ALT to SHIFT #1715
- Fix CpuWriteGpuReadBelt producing unaligned gpu buffer offsets #1716
- Fix arrows requiring a radius to be visible #1720
🚀 Performance Improvements
- Add re_arrow_store profile scopes #1546
- datastore: early exit missing components at table level #1554
- datastore: track bucket count in store stats & mem panel #1555
- LogDb: dont split on index bucket size #1558
- Introduce a simpler cache dedicated to just decode JPEGs #1550
- Implement outlines for points 2d/3d/depth & use them for select & hover in Viewer #1568
- Simplify ImageCache #1551
- New time panel density graph #1557
- Refactor the Arrow Mesh3D type to use zero-copy Buffers #1691
- Remove the redundant costly transform check during categorization #1695
- batching 3:
DataRow&DataTable+ no bundles outside of transport #1673
🧑🏫 Examples
📚 Docs
- Link to the Python SDK build instructions in
rerun_py/README.md#1565
🖼 UI Improvements
- Fix combining outline mask for selection & hover #1552
- Implement outlines for rectangles & use them for select & hover of image primitives in Viewer #1559
- Show log messages in egui toast notifications #1603
- Adapt UI for smaller screens #1608
- Nicer toast notifications #1621
- Don't hover things in 2D/3D views if we are dragging something #1643
- Allow rolling 3D camera with primary mouse button + alt modifier #1659
- Name space views after the space and indicate duplicate names #1653
- Add banner about mobile browsers being unsupported #1674
- Improve ui for tensors and color map selection #1683
- Only show the mobile OS warning banner on web #1685
- Improve the depth backprojection feature #1690
- Swap overlay order of selection & hover outlines #1705
- Turn on depth cloud backprojection by default #1710
- Add radius boost for depth clouds on outline #1713
🤷♂️ Other Viewer Improvements
- Fix web feature name in error messages #1521
- Use outlines for mesh selections instead of highlight colors #1540
- Implement outlines for line renderer & use them for select & hover of "line-like" primitives in Viewer #1553
- Load .rrd file over HTTP #1600
- Revert "Handle ctrl+c to gracefully shutdown the server(s)" #1632
- More eager GC, and remove
--fast-mathoptimization for wasm #1656 - Detect failure to install GUI log callback #1655
- Warn when most of the RAM has been used up by Rerun #1651
- Apply color maps to all types of depth tensors #1686
- Size boosted outlines for points & lines, color & size tweaking #1667
- Default point radius to 1.5 ui points #1706
- When streaming an rrd from http: play it...
v0.3.1
v0.3.0
After a successful launch a couple of weeks ago, we're back with our second release!
With a few exceptions this release focuses on internal refactors & improving our processes.
However, we think you'll enjoy these goodies that made it in nonetheless!
23-03-02_18.44.38.patched.mp4
You can now generate point clouds directly from depth textures and choose a wide variety of color maps.
Check out this video on how to use it.
This is a lot faster and more convenient than doing so manually in your own code
Some caveats: Picking is not yet working and visible history may behave differently (related to #723)
Other highlights:
- Viewer
- SDK
- Python packages now work with Ubuntu-20.04 #1334
- u8 segmentation stay u8 now (they converted to u16 before) #1376
- 2D Line strips can now be logged directly #1430
- Add a
strictmode to the Python SDK where misuses of the API result in exceptions being raised.#1477 - Fix disabling Python API through
initnot working #1517
- General
- We build now with fewer build dependencies (there is however still more work to do!).
Notably, we previously used a version of thetimecrate which had a security issue (CVE-2020-26235), thanks @mpizenberg for helping out! - Print more information & troubleshooting info on crash
- We build now with fewer build dependencies (there is however still more work to do!).
Meanwhile, we did a bunch of improvements to our manual. If you had trouble running Rerun so far, check our updated troubleshooting page (and as always, please open an issue if something doesn't work).
.rrd files no longer load
In Detail
New Features
- Generate point clouds directly from depth textures
- Python SDK: Add strict mode #1477
- OS independent Zoom factor & serialization thereof #1448
- Labels for 3D objects have now a color can now be selected & hovered #1438
- Add 2d support for linestrips #1430
- Add signal handler on *nix with troubleshooting and stacktrace #1340
- Point users to our troubleshooting page on panic #1338
Performance
- Speed up conversions for color arrays in Python #1454
- Speed up fixed-sized array iteration #1050
- Speed up tensor handling by padding data through more directly
- Add option to show performance metrics in the UI in release builds too #1444
- Faster stable diffusion sample #1364
- SDK: stream to disk with
savefeature #1405 re_rendererhas now a direct CPU->GPU copy mechanism
Small improvements & Bugfixes
- UI
re_renderer- Heuristic for camera frustum length is now based on scene size #1433
- Fix python type signature for tensor names #1443
- Don't convert u8 segmentation images to u16 #1376
- Docs (excluding the manual)
- Improve the docs of
connectandserve#1450 - Update log_mesh and log_meshes docs. #1286
- Add guidelines for adding dependencies in a PR #1431
- Add a few more sections to
CODE_STYLE.md#1365 - Fixup for some doc links #1314
- Document undocumented environment variables on help page. #1335
- Link to SDK operating modes doc in both SDK #1330
- Improve the docs of
- More information in
--version#1388 - Remove already broken
showmethod from Python SDK #1429 - Analytics
- Versioned log streams streams #1420
- Fix path issues when running debug viewer within workspace #1341
- Detailed errors for re_renderer
include_file!#1339 - Limit logging in web-viewer to
warnin order to workaround a crash issue (and reduce log spam) 1514 - Fix disabling API through
initnot working #1517
CI, Testing & Build improvements
- Reduce build dependencies
- Use different artifact names for wasm/js in debug builds #1428
- Separate mac wheels & trigger wheel build from ui #1499
- Add spell checking to CI #1492
- Repo size
- Python
- Testing
- Add a test of memory use when logging a lot of big images #1372
- Switch ci_docker to a container based on ubuntu 20.04 #1334
- Release handling
- Switch release action to ncipollo #1489
- Fix o...
v0.2.0
What's Changed
- Good looking Blueprint View by @emilk in #962
- Make buttons smaller, and everything a bit tighter by @emilk in #970
- Widget hover effect by @emilk in #935
- Select single objects directly and click through selection by @Wumpf in #964
- Optimize loading of segmentation maps by @emilk in #978
- Tweak store profile scopes by @emilk in #979
- re_renderer: delegate 2D texture padding to
Queue::write_textureby @teh-cmc in #975 - Remove Classic Python SDK by @emilk in #977
- New visibility buttons by @emilk in #983
- Specify time for DataUi queries by @emilk in #980
- Update to released versions of huggingface libs by @nikolausWest in #981
- re_analytics: fixed salt for hashed props by @teh-cmc in #958
- Prepare for switching to the
re_int_histogramcrate by @emilk in #984 - Only run test benches rather than full bench on CI by @jleibs in #992
- Remove a lot of classical stuff by @emilk in #988
- Clean up component imports by @jondo2010 in #985
- Hack depth offset in order to make objects not disappear by @Wumpf in #990
- Fix crash when zooming out camera too far by @Wumpf in #986
- Rust: rename objects and fields by @emilk in #993
- Fix hovering bug introduced in The Great Removal by @emilk in #998
- Update readme and remove the docs in favor of dedicated repo by @jleibs in #995
- Update to Rust 1.67 by @emilk in #1000
- Update all of the docstrings on public-facing APIs to numpy style by @jleibs in #1001
- Refactor
InstanceIdby @emilk in #999 - bind to all network interfaces by @teh-cmc in #1005
- Rename
InstancetoInstanceKeyby @emilk in #1002 - use wasm target-dir for
bacon wasmby @teh-cmc in #1009 - Use
Displayfor errors by @emilk in #1007 - Better looking tabs by @emilk in #1011
- Improve colmap example by @nikolausWest in #1008
- Fix rendering empty batches of lines and points, needlessly generating draw calls by @Wumpf in #989
- Less bright frustum by @Wumpf in #1015
- Issue templates with "👀 needs triage" by @nikolausWest in #1016
- Hide MsgId & InstanceId for on-hover ui by @Wumpf in #1017
- Show Space View options in tab bar by @emilk in #1027
- Nicer frustum ray by @Wumpf in #1019
- Improved workflow for adding/removing objects by @Wumpf in #1013
- Introduce Extension Components by @jleibs in #1023
- Tensor view ui improvements by @Wumpf in #1022
- lint against using dbg!() macro in production code by @emilk in #1029
- Fix compilation failure due to bad merge by @Wumpf in #1030
- rust SDK: raw 3D meshes and example by @teh-cmc in #1010
- Click space view title to select it by @emilk in #1032
- Switch to a generator for our common-API registry as well. by @jleibs in #1035
- Catch it when we break the docs by @jleibs in #1040
- python SDK: raw 3D meshes and example by @teh-cmc in #1026
- CI: Attempt to apply cancel-on-progress only on PR:s, not on main by @emilk in #1051
- Slightly nicer tensor view by @emilk in #1028
- Skip data selection section for space views and data blueprint groups by @Wumpf in #1039
- DataUI impls for rect/linestrip2d/linestrip3d/vec2d/vec3d by @Wumpf in #1038
- Preview component data by @Wumpf in #1034
- Add
ComponentName::short_namehelper function by @emilk in #1053 - Improved text space view blueprint by @Wumpf in #1055
- Build+Deploy Python Wheels in CI by @jondo2010 in #996
- Show all instance values in the selection panel by @emilk in #1056
- more spaceview blueprint improvements by @Wumpf in #1057
- Speed up Point3D by @jleibs in #1064
- Update gltf to 1.1 by @emilk in #1071
- Misc code cleanup by @emilk in #1070
- Nicer wait message by @emilk in #1069
- Fix play/pause toggle annoyance by @emilk in #1066
- Same height for tab bar and title bars of side panels by @emilk in #1072
- Workflow fixes for Python Wheel release by @jondo2010 in #1059
- Nicer collapsing sections in the selection view by @emilk in #1067
- ui: use the crosshair for zoom previews everywhere by @teh-cmc in #1073
- raw meshes: support albedo factors, clean up examples and acknowledge lack of support for .obj by @teh-cmc in #1081
- Allow root space views transforms to other roots by @Wumpf in #1075
- Update some Rust crates by @emilk in #1090
- Improved tensor view settings by @Wumpf in #1082
- expose egui debug options in debug menu by @Wumpf in #1089
- Nicer ready text by @emilk in #1078
- Improve tensor view margins by @emilk in #1091
- Nicer top bar on web by @emilk in #1080
- Timeline panel design details by @Wumpf in #1088
- Ship rerun package inside of a rerun_sdk folder by @jleibs in #1085
- Update to winit 0.28 by @emilk in #997
- Increase maximum number of points from 1 Mi to 4 Mi by @emilk in #1093
- Hide perf stats in release, + tweak separator lines by @emilk in #1095
- Icons for space views and blueprint groups by @Wumpf in #1096
- Fix python bridge preventing logging transforms to root child by @Wumpf in #1097
- Use Selection color from design token by @Wumpf in #1092
- Revert "Fix python bridge preventing logging transforms to root child" by @nikolausWest in #1098
- Don't make top-level spaces their own children by @jleibs in #1100
- Rename
SelectiontoItem,MultiSelectiontoItemCollectionby @emilk in #1104 - Simple boiler-plate idea for examples by @jondo2010 in #1058
- Use less "arrow" in re_viewer by @emilk in #1105
- Use a grid in entity properties ui by @emilk in #1106
- Restore previous non-tracked camera pose on esc by @Wumpf in #1102
- Default spaceview names are now last space path bit only unless it is root by @Wumpf in #1103
- EntityPath::from_str must parse the given string by @teh-cmc in #1114
- On push sync the docs to gh-pages by @jleibs in #1086
- Rust SDK: introduce
MsgSenderbuilder-like interface for logging data by @teh-cmc in #1037 - Better ComponentBundle invariants by @jondo2010 in #1112
- Rust SDK: remove deprecated APIs & examples by @teh-cmc in #1107
- Renamed
spawn_and_connectto justspawnby @emilk in #1101 - Windows/Linux: work towards replacing native window frame with our own custom buttons by @emilk in #1094
- use forward/backwards icon in selection panel by @Wumpf in #1128
- Generate an RRD file during the build which we inject into the wheel by @jleibs in #1087
- gh-pages rust docs should redirect to
reruncrate by @jleibs in https://github...