PlotJuggler 3 vs PlotJuggler 4: Should You Upgrade?

PlotJuggler 4.0.0 (21 September 2026) is a rewrite; PlotJuggler 3.17.2 (11 May 2026) is the last release of the classic line — and, unusually, both lines are legitimately “current” for different audiences. This comparison is between two versions of the same free, open-source (MPL-2.0) tool by the same author, Davide Faconti. There is nothing to sell you here: the right answer depends entirely on how you work. Start from the PlotJuggler 4 hub, and get either line from the Download page.

The comparison table

PlotJuggler 3 (3.17.2)PlotJuggler 4 (4.0.0)
StatusLast PJ3 release, 11 May 2026; still the version listed on the ROS IndexCurrent release, 21 September 2026; the line under active development
Core jobTime-series visualisation: fast OpenGL plotting of thousands of series and millions of points, XY plots, layoutsMultimodal platform: time-series and XY plots plus video and 3D, recorded or live
FilesCSV, PX4 ULog, ROS rosbags (ROS 1 + ROS 2 via the ROS plugins, incl. rosbag2/MCAP)CSV, MCAP, Parquet, PX4 ULog, LeRobot, MP4, PCD, PLY
Live streamingMQTT, WebSocket, ZeroMQ, UDP, ROS topic subscriber (ROS 1/ROS 2), Lab Streaming LayerROS 2, MQTT, ZeroMQ, UDP, WebSocket bridges, WebRTC, Lab Streaming Layer
EncodingsJSON, CBOR, BSON, MessagePackROS 1/2, Protobuf, JSON, CBOR, BSON, Apache Arrow, MessagePack; OMG IDL (DDS) parsing
Transforms & scriptingBuilt-in transforms (derivative, moving average, integral, scale…) plus custom functions in LuaFilters, derivative, integral, FFT; derived series via custom transforms in Lua and Python
Video & 3DNoneH.264 / H.265 / AV1 video, WebRTC, 2D annotations; GPU 3D: point clouds, meshes, URDF, occupancy and elevation grids
PluginsC++ plugin architecture (loaders, streamers, parsers, state publishers, toolboxes); manual distributionPlugin model plus the Extensions Marketplace (File → Marketplace), public registry and plugin SDK
PlatformsWindows x64 installer; AppImage x86_64 and aarch64; .deb for Ubuntu 24.04 / Debian bookworm / trixie; snapWindows x64 installer; AppImage x86_64 only; .deb; official apt repository. No snap or flatpak
macOSNo binary in 3.17.x — the last release with macOS DMGs (arm64 + x64) was 3.16.0No macOS binary in 4.0.0; build from source is the documented route
ROS ecosystemThe ROS line: ROS Index at 3.17.2; ros-$ROS_DISTRO-plotjuggler-ros packages; snap recommended for Ubuntu/ROSLists ROS 2 among its live sources, but the ROS packages and plugin ecosystem remain on PJ3
LayoutsSave/reload layouts; per-curve time offsetsLayout schema v4 (saves viewport + per-dataset offsets); transactional undo/redo

Where PJ4 is simply ahead

For standalone data analysis, PJ4 wins category after category. Video and 3D do not exist in PJ3 at all. Parquet and LeRobot support, corrupted-MCAP reading, Arrow and Protobuf encodings, Python transforms, the Marketplace and the apt repository are all PJ4-only. If you analyse PX4 ULogs, MCAP recordings, camera-equipped robot logs or machine-learning datasets (LeRobot) without depending on ROS packages, PJ4 is the more capable tool today, and the gap will only grow — 4.0.0 is a .0 release of the line that is being actively developed, while 3.17.2 closed the PJ3 line in May 2026. Our What’s New in PlotJuggler 4.0 guide tours the additions.

Where PJ3 is still the right tool

The ROS ecosystem is the big one. The ROS Index still lists the core package at 3.17.2; the installable ROS packages (ros-humble-plotjuggler-ros, ros-jazzy-plotjuggler-ros and the other listed distributions — humble, jazzy, kilted, lyrical, rolling) are PJ3; the separate ROS plugins package (version 2.3.1, ROS 2 only from the v2.3 series) targets the PJ3 application; and the snap the PJ3 documentation recommends — sudo snap install plotjuggler — is PJ3. If your workflow is “subscribe to topics / open rosbags with the ROS plugins”, that whole stack is PJ3 today, whatever PJ4’s feature list says. PJ3 also remains the only line with an aarch64 AppImage, which matters on ARM single-board computers. Install either line with our Install guides.

The macOS reality, for both lines

Neither line gives Mac users a current native binary — anyone who tells you otherwise is selling something. PJ4 4.0.0 ships no macOS asset at all, and its documentation points to building from source. PJ3’s 3.17.x releases ship no macOS build either; the last releases with macOS-arm64.dmg and macOS-x64.dmg were 3.16.0 (March 2026) and earlier. So the honest Mac options are the same whichever line you prefer: use the official PJ3 3.16.0 DMGs, or build from source. Our macOS guide lays this out in full.

Verdict, by user type

  • ROS 1 / ROS 2 developer: stay on PJ3 3.17.2. Your packages, plugins and documentation are all PJ3; revisit when the ROS ecosystem moves.
  • PX4 / drone log analyst: upgrade to PJ4. ULog support carries over, and you gain MCAP, Parquet, video sync and Python transforms.
  • Robotics engineer with cameras / LiDAR: upgrade to PJ4 — time-synced video, point clouds and URDF have no PJ3 equivalent.
  • Data / ML engineer (Parquet, LeRobot, Arrow): PJ4, unambiguously; PJ3 does not read these formats natively.
  • macOS user: neither line offers a current binary. PJ3 3.16.0’s DMGs or a source build; see the macOS guide.
  • ARM Linux user: PJ3 for now — it is the line with an aarch64 AppImage; PJ4 4.0.0 is x86_64 only.
  • New user with no legacy ties: start on PJ4 and learn the current tool; keep PJ3 in mind only if you enter the ROS package workflow.

Whichever you choose, you do not have to choose forever: the two lines install side by side (different package and file names — the PJ4 apt package is plotjuggler4), which is exactly what our migration guide recommends doing while you evaluate.

Similar Posts