abundant-hospital-3590
09/08/2025, 6:56 AMprehistoric-farmer-43967
09/05/2025, 9:15 AMphase 2
):
sh
#!/bin/zsh
echo ":: phase 1"
mkdir src
cd src
RERUN_URL=https://github.com/rerun-io/rerun/releases/download/0.24.1/rerun_cpp_sdk.zip
RERUN_DIR=rerun_cpp_sdk
wget -q -O ${RERUN_DIR}.zip ${RERUN_URL}
unzip -q -o ${RERUN_DIR}.zip -d .
mv ${RERUN_DIR}/* .
rm -rf ${RERUN_DIR} ${RERUN_DIR}.zip
echo ":: phase 2"
cd ..
mkdir build
cd build
cmake \
-D CMAKE_INSTALL_PREFIX=/usr/local/ \
-D CMAKE_BUILD_TYPE=Release \
-B . \
-S ../src
cmake --build . --config Release --target rerun_sdk
In docker the main issues are:
sh
fatal error: xsimd/xsimd.hpp: No such file or directory
25 | #include <xsimd/xsimd.hpp>
| ^~~~~~~~~~~~~~~~~
fatal error: mimalloc.h: No such file or directory
53 | # include <mimalloc.h>
| ^~~~~~~~~~~~
I tried to add paths, but arrow builds using external project add
and that is why my flags are ignored.
2. I tried to add arrow-cpp
using pixi
in Docker, but pixi has only arrow-cpp < 14 from conda-forge repo. I suppose it is incompatible with rerun.
sh
> pixi init
Created /build/pixi.toml
> pixi add arrow-cpp==18.0.0
Error: x failed to solve requirements of environment 'default' for platform 'linux-64'
|-> x failed to solve the environment
|
`-> Cannot solve the request because of: No candidates were found for arrow-cpp ==18.0.0.
I would greatly appreciate any help/recommendations for that, because I am trying to accomplish this 3 days in a row.high-balloon-12758
09/04/2025, 9:13 AMambitious-yacht-68066
09/03/2025, 9:52 AM>cmake --build build
MSBuild version 17.8.5+b5265ef37 for .NET Framework
Checking File Globs
1>Performing update step for 'arrow_cpp'
-- Already at requested tag: apache-arrow-18.0.0
No patch step for 'arrow_cpp'
Performing configure step for 'arrow_cpp'
-- arrow_cpp configure command succeeded. See also C:/Users/emichel/SourceCode/SparkleOptimizer3/build/_deps/rerun_sdk-build/arrow/src/arrow_cpp-stamp/a
rrow_cpp-configure-*.log
Performing build step for 'arrow_cpp'
-- arrow_cpp build command succeeded. See also C:/Users/emichel/SourceCode/SparkleOptimizer3/build/_deps/rerun_sdk-build/arrow/src/arrow_cpp-stamp/arrow
_cpp-build-*.log
Performing install step for 'arrow_cpp'
-- arrow_cpp install command succeeded. See also C:/Users/emichel/SourceCode/SparkleOptimizer3/build/_deps/rerun_sdk-build/arrow/src/arrow_cpp-stamp/arr
ow_cpp-install-*.log
Completed 'arrow_cpp'
rerun_sdk.vcxproj -> C:\Users\emichel\SourceCode\SparkleOptimizer3\build\_deps\rerun_sdk-build\Debug\rerun_sdk.lib
brave-belgium-52155
09/01/2025, 7:10 PMrerun::Points3D
objects contain identical data to the original objects.
I'm finding this challenging, because the rerun::Points3D
converts the provided Collection<rerun::components::Position3D>
into an Arrow-encoded array, and never stores an intermediary representation. There don't seem to be accessor functions on the rerun::Points3D::positions
member, which is a std::optional<ComponentBatch>
. From what I can see, there isn't a way to convert from the Arrow-encoded array back to the original datatype in the C++ SDK.
Is there a way to extract the original data from the Arrow-encoded array?echoing-translator-29651
08/31/2025, 2:12 PMambitious-portugal-31008
08/27/2025, 5:33 PMadorable-ocean-38517
08/26/2025, 2:28 PMambitious-portugal-31008
08/22/2025, 7:32 PMserve_grpc_opts
function.
I pass MemoryLimit::parse("2GB")
(also tried with ::from_bytes
and the byte count), but my rerun server process goes wild with memory usage. It basically continues to accumulate memory until the OS kills it or hangs (see screenshot it's already at around 25Gbyte). I run it in a Docker container on Ubuntu, if that matters.
The web-viewer recording itself hovers around ~2Gbyte, so that is good. But if the server runs OOM that doesn't help much.
Is there something I misunderstand or am missing about the configurable memory limits?
On code level, this is all I am doing:
let rec = RecordingStreamBuilder::new("test")
.recording_id("test-recording")
.serve_grpc_opts("0.0.0.0", 9876, MemoryLimit::parse("2GB")?)?;
loop {
std::thread::park();
}
https://cdn.discordapp.com/attachments/1408534249694302229/1408534249858007162/CleanShot_2025-08-22_at_12.25.53.png?ex=68aa173e&is=68a8c5be&hm=4d3f24a0470516d847807d07eab5868c7d21a2a8be971f681b61543a5d73c42b&
https://cdn.discordapp.com/attachments/1408534249694302229/1408534250340483142/CleanShot_2025-08-22_at_12.26.022x.png?ex=68aa173e&is=68a8c5be&hm=a266a0240ef24cea32cad8e490a29efd4226c8dd394920136df51301c65c7f83&delightful-pencil-64205
08/21/2025, 3:43 PMmysterious-beard-55128
08/21/2025, 10:45 AMkind-kitchen-2583
08/20/2025, 1:13 AMaverage-appointment-40329
08/15/2025, 7:24 PMLinkAxis.Independent
works well, but LinkAxis.LinkGlobal
doesn't log any data. Attached a screenshot for Independent vs Global link.
Is there anything wrong with the way I am logging the data?
Here's how I have the data logged:
For each entity:
- Fetch timestamps and values using fetch_data(entity_path, start_time, end_time)
- Send data to Rerun:
rr.send_columns(
entity_path,
indexes=[rr.TimeColumn("time", timestamp=timestamps)],
columns=rr.Scalars.columns(scalars=values),
)
Build a list of views:
- For each panel:
rrb.TimeSeriesView(
origin="/",
name=panel["name"],
contents=entity_paths,
axis_x=rrb.archetypes.TimeAxis(
link=rrb.components.LinkAxis.LinkGlobal
),
)
Arrange views into a grid layout:
grid = rrb.Grid(*views, grid_columns=1)
Send the blueprint to Rerun:
rr.send_blueprint(
rrb.Blueprint(
grid,
collapse_panels=True,
),
make_active=True,
)
https://cdn.discordapp.com/attachments/1405995563413143694/1405995564037968035/Screenshot_2025-08-15_at_3.22.02_PM.png?ex=68a0dae8&is=689f8968&hm=164bd9c87ac6d25e2db3d7de055eab4b591ce43b43f1429e9c3f6b466ba0ff8f&
https://cdn.discordapp.com/attachments/1405995563413143694/1405995564444946473/Screenshot_2025-08-15_at_3.24.03_PM.png?ex=68a0dae8&is=689f8968&hm=89724618fee1ed6db1659b575c4df51270ba77b34865be98b282ae792325e7ae&dry-crowd-37372
08/12/2025, 9:05 PM"""Demonstrates how to log data to a gRPC server and connect the web viewer to it."""
import time
import rerun as rr
rr.init("rerun_example_serve_web_viewer")
# Start a gRPC server and use it as log sink.
server_uri = rr.serve_grpc()
# Connect the web viewer to the gRPC server and open it in the browser
rr.serve_web_viewer(connect_to=server_uri)
# Log some data to the gRPC server.
rr.log("data", rr.Boxes3D(half_sizes=[2.0, 2.0, 1.0]))
# Keep server running. If we cancel it too early, data may never arrive in the browser.
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
print("\nShutting down server...")
However no data shows up in the web viewer and it gives me the error "Data source rerun+http://127.0.0.1:9876/proxy has left unexpectedly: gRPC error, message: "js api error: TypeError: NetworkError when attempting to fetch resource.""fierce-rain-16540
08/12/2025, 1:45 PMrr.log
calls below?
Thanks for your help!
Tim
python
def _log_to_rerun(payload: tuple) -> None:
rec, seq, rgb_items, depth_items, proprio_items = payload
rr.set_time(
timeline="episode_step",
sequence=seq,
recording=rec,
)
for path, frame in rgb_items:
rr.log(
path,
rr.Image(frame),
recording=rec,
)
for path, frame in depth_items:
rr.log(
path,
rr.DepthImage(frame, meter=1000.0, depth_range=(0.0, 1500.0)),
recording=rec,
)
for prop_key, proprio_frame in proprio_items:
for dim in range(proprio_frame.shape[-1]):
rr.log(
f"{prop_key}/d{dim}",
rr.Scalars(proprio_frame[..., dim]),
recording=rec,
)
little-portugal-67786
08/10/2025, 12:00 PMimport rerun as rr
rr.init("test_app", spawn=False)
# 1. Start the gRPC and web servers
grpc_uri = rr.serve_grpc()
rr.serve_web_viewer(connect_to=grpc_uri)
# 2. Log the data (this adds it to a buffer)
rr.log("my_points", rr.Points2D([[0, 0], [1, 1], [2, 2]]))
What did I miss here?rough-application-45455
08/06/2025, 8:04 PMhttp://<SERVER_IP>:9090/?url=rerun%2Bhttp%3A%2F%2F<SERVER_IP>%3A9876%2Fproxy
. The only way I found this URL is from the CLI when I used --serve-web
.
Using http://<SERVER_IP>:9090/?url=rerun+http://<SERVER_IP>:9876/proxy
works in a browser on the pi using localhost
but I can't seem to get it to work in a browser on my remote machine without using the URL above. Is there a more generic URL I can use? I've been looking through the docs with no success. Thanks in advance!modern-intern-46457
08/05/2025, 12:20 PM// Create the RecordingStream for rerun.
recording_stream_ = std::make_shared<rerun::RecordingStream>("DataProcessor");
// Spawn a viewer.
recording_stream_->spawn().exit_on_failure();
recording_stream_->log("Input Image",
rerun::Image(rerun::borrow(cv_input_rgb.data, cv_input_rgb.total() * cv_input_rgb.elemSize()),
rerun::WidthHeight(static_cast<uint32_t>(cv_input_rgb.cols),
static_cast<uint32_t>(cv_input_rgb.rows)),
rerun::ColorModel::RGB));
.gorgeous-terabyte-27715
07/31/2025, 8:29 AM2025-07-31T08:16:52.893796772Z ERROR re_grpc_server: Error reading message from broadcast channel: channel lagged by 281974
blue-application-26880
07/29/2025, 6:34 PMre_renderer
directly within a custom egui
application (using wgpu
).
With nothing queued in ViewBuilder
I get nothing and see the background as expected.
When I queue_draw
a GenericSkyboxDrawData
, I get a fully black viewport. Behavior of other renderers varies, but I never get any meaningful output.
I captured a frame in RenderDoc to try to get more insight into what might be happening. The black screen seems to stem from the color value in the shader `nan`ing. Tracing it back in the debugger it seems to originate from the re_renderer
frame uniform buffer
which is bound to descriptor set 0 being filled with nulls only.
According to RenderDoc the buffer is only `clear`ed and barriered before it is used in the shaders for the re_renderer
renderers.
I imagine I am probably missing some important step in my code, does someone know what I might be doing wrong?bulky-mouse-15596
07/29/2025, 3:58 PMrec.log("video_stream",rerun::archetypes::VideoStream{}.with_sample(rerun::components::VideoSample{data}));
I had a first error similar to the one mentioned here:
https://discord.com/channels/1062300748202921994/1397335975364919392
I applied the uint32_t
fix and the next error was the ffmpeg version. Got the recommended version and the video stream doesn't get displayed:
Failed to decode video: FFmpeg error: [h264] [error] error while decoding MB 2 64, bytestream 16292
It gets the Dimensions of the video stream right (1920x1080) and the sent data chunks appear in the Video samples table but no video gets displayed.
The video stream is created from that command:
ffmpeg -f rawvideo -pixel_format rgba -video_size {width}x{height} -framerate {frameRate} -i - -vf vflip -c:v libx264 -preset veryfast -tune zerolatency -f mpegts udp://localhost:1234?pkt_size=1316
and it is displayed correctly with ffplay
.quiet-restaurant-13188
07/29/2025, 12:09 PMquiet-restaurant-13188
07/29/2025, 12:02 PMlate-finland-49345
07/26/2025, 4:21 AMechoing-translator-29651
07/22/2025, 11:42 PMcreamy-airplane-43852
07/22/2025, 9:54 PMre_viewer_context::component_ui_registry] Failed to deserialize component of type rerun.components.VideoCodec: Failed to deserialize "rerun.components.VideoCodec"
I've put the RUST_LOG up to debug on both the sender and the receiver but it gives me no other information other than the deserialization error.
Any idea what I might be doing wrong?
I've attached the code I'm working with. This also dumps the h264 data to a file which does reproduce correctly when using ffplay so I don't think this is an encoding error
https://cdn.discordapp.com/attachments/1397335975364919392/1397335975645941882/on-the-fly.cpp?ex=688b3d49&is=6889ebc9&hm=f06d6a86384a371ebdcb0a5c7b02a7556716b8bace7b699e20bee65ea0ef7161&victorious-crayon-58185
07/22/2025, 11:59 AMechoing-translator-29651
07/22/2025, 12:14 AMsalmon-solstice-47676
07/19/2025, 9:02 PMRenderer
using the re_renderer
crate and the shader I want to use requires some `texture2d`s. From looking through the Rerun code I can see examples like:
ctx.gpu_resources.bind_groups.alloc(
&ctx.device,
&ctx.gpu_resources,
&BindGroupDesc {
label,
entries: smallvec![
BindGroupEntry::DefaultTextureView(position_data_texture.handle),
BindGroupEntry::DefaultTextureView(color_texture.handle),
BindGroupEntry::DefaultTextureView(picking_instance_id_texture.handle),
draw_data_uniform_buffer_binding,
],
layout: point_renderer.bind_group_layout_all_points,
},
)
however, BindGroupEntry
is private. For the variant BindGroupEntry::Buffer
there is create_and_fill_uniform_buffer
, but I can't find anything that lets me pass my own texture handles to shaders. Am I missing something?shy-optician-6807
07/19/2025, 2:10 PMashpd
fails to compile. Here's a part of the errors from cargo build
. Does anybody know how to solve this? I use rust 1.88 on Linux.
error[E0432]: unresolved import `futures_util::AsyncReadExt`
--> /home/xyz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ashpd-0.10.2/src/desktop/secret.rs:26:5
|
26 | use futures_util::AsyncReadExt;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AsyncReadExt` in the root
|
note: found an item that was configured out
--> /home/xyz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:320:47
|
320 | AsyncBufRead, AsyncBufReadExt, AsyncRead, AsyncReadExt, AsyncSeek, AsyncSeekExt, AsyncWrite,
| ^^^^^^^^^^^^
note: the item is gated behind the `io` feature
--> /home/xyz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:316:7
|
316 | #[cfg(feature = "io")]
| ^^^^^^^^^^^^^^
error[E0432]: unresolved import `futures_util::AsyncReadExt`
--> /home/xyz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ashpd-0.10.2/src/helpers.rs:4:5
|
4 | use futures_util::AsyncReadExt;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AsyncReadExt` in the root
|
note: found an item that was configured out
--> /home/xyz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:320:47
|
320 | AsyncBufRead, AsyncBufReadExt, AsyncRead, AsyncReadExt, AsyncSeek, AsyncSeekExt, AsyncWrite,
| ^^^^^^^^^^^^
...
NOTE: I saw [this](https://users.rust-lang.org/t/issue-with-futures-lite-dependency-resolution-in-ashpd-read-to-string-read-to-end-errors/125669/1) already, but it didn't apply to me