finds.dev← search

// the find

Flaminis/Dalaran

★ 736 · Rust · Apache-2.0 · updated Aug 2026

Dalaran — Apache-2.0, robotics-first visualization and data infrastructure for multimodal time-series. ROS 2 native, reads existing .rrd recordings. A hard fork of Rerun.

Dalaran is a hard fork of Rerun aimed squarely at ROS 2 robotics teams, adding a robot-aware logging API (joint states, URDF transforms, nav2 costmaps), axis-convention helpers, and a doctor-style diagnostic tool on top of Rerun's existing Arrow-backed chunk store and multi-sync viewer. It's for teams already using Rerun-style time-series visualization who got tired of hand-rolling ROS message conversions and REP-103/105 axis handling themselves.

The nav2 costmap handling is genuinely well thought out — treating LETHAL_OBSTACLE and INSCRIBED_INFLATED_OBSTACLE as discrete categories instead of flattening them into a cost gradient image is the kind of detail that only someone who's debugged a costmap visualization at 2am would bother fixing. Keeping the .rrd container and Arrow chunk format wire-compatible with upstream Rerun (own metadata under dalaran:* vs rerun:*, both readable) was the right call — they didn't have to fork the storage format to add a logging API on top. The doctor subcommand living in the viewer binary rather than the Python package is a sane design choice since it means it still works when the thing that's broken is your Python environment.

This is a hard fork of a large, fast-moving multi-crate, multi-language project (Rust core plus Python/C++/JS bindings) — every security fix, renderer improvement, or Arrow version bump upstream now has to be manually ported by whatever team is behind 736 stars and 31 forks, which is a thin bench for that workload. Blueprint compatibility with upstream recordings is explicitly partial, so 'opens your old .rrd files' comes with an asterisk: your data loads but your saved layout silently doesn't. The README's own Status section admits the API is still evolving with breaking changes between releases, so anything built against it now should expect rework. There's no mention of how they intend to track upstream Rerun's changes going forward — a fork with no stated sync strategy tends to either die quietly or drift into something unrecognizable.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →