Source Code
Explore Other Examples
This C++ example demonstrates how to visualize VRS files with Rerun. VRS is a file format optimized to record & playback streams of sensor data, such as images, audio samples, and any other discrete sensors (IMU, temperature, etc), stored in per-device streams of time-stamped records.
Logging and visualizing with Rerun
The visualizations in this example were created with the following Rerun code:
3D arrows
_rec->log(_entity_path + “/accelerometer”, rerun::Arrows3D::from_vectors({accelMSec2}));
// … existing code for scalars …
}
Scalars
// … existing code for Arrows3D …
_rec->log(_entity_path + “/accelerometer/x”, rerun::Scalar(accelMSec2[0]));
_rec->log(_entity_path + “/accelerometer/y”, rerun::Scalar(accelMSec2[1]));
_rec->log(_entity_path + “/accelerometer/z”, rerun::Scalar(accelMSec2[2]));
}
void IMUPlayer::log_gyroscope(const std::array<float, 3>& gyroRadSec) {
_rec->log(_entity_path + “/gyroscope/x”, rerun::Scalar(gyroRadSec[0]));
_rec->log(_entity_path + “/gyroscope/y”, rerun::Scalar(gyroRadSec[1]));
_rec->log(_entity_path + “/gyroscope/z”, rerun::Scalar(gyroRadSec[2]));
}
void IMUPlayer::log_magnetometer(const std::array<float, 3>& magTesla) {
_rec->log(_entity_path + “/magnetometer/x”, rerun::Scalar(magTesla[0]));
_rec->log(_entity_path + “/magnetometer/y”, rerun::Scalar(magTesla[1]));
_rec->log(_entity_path + “/magnetometer/z”, rerun::Scalar(magTesla[2]));
}
Images
_entity_path,
rerun::Image({
frame->getHeight(),
frame->getWidth(),
frame->getSpec().getChannelCountPerPixel()},
frame->getBuffer()
)
);
Text document
Join us on Github
Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.
Build time aware visualizations of multimodal data
Use the Rerun SDK (available for C++, Python and Rust) to log data like images, tensors, point clouds, and text. Logs are streamed to the Rerun Viewer for live visualization or to file for later use.
Run the Rerun Viewer in your browser
Read about what Rerun is and who it is for
A short taste
rr.init(“rerun_example_app”)
rr.connect() # Connect to a remote viewer
# rr.spawn() # Spawn a child process with a viewer and connect
# rr.save(“recording.rrd”) # Stream all logs to disk
# Associate subsequent data with 42 on the “frame” timeline
rr.set_time_sequence(“frame”, 42))
# Log colored 3D points to the entity at `path/to/points`
rr.log(“path/to/points”, rr.Points3D(positions, colors=colors…