RDSM Robotics Developer Studio for Mac

Native macOS · ROS 2

Your Mac is the cockpit. The robot is the engine.

RDSM is a native macOS cockpit for ROS 2 — a Metal-rendered 3D viewport, topic inspection, TF, and logs, talking to your robot over rosbridge. No ROS install on your Mac. No Electron.

Latest release · notarized by Apple · macOS 15+ · release notes
Prefer to build it yourself? The core is open source — github.com/hjatupon/rdsm-community

macOS 15 Sequoia or later
Apple Silicon + Intel
rosbridge ws://host:9090
Metal 4 renderer
RDSM showing a TurtleBot3 in a simulated room: a teal LiDAR point cloud and
                occupancy grid on the floor plane, the robot's URDF model and TF frames, the
                layers panel on the left, and the inspector on the right reading a raw
                sensor_msgs/msg/LaserScan message.
Scene LaserScan · OccupancyGrid · RobotModel · TF frames Inspector raw sensor_msgs/msg/LaserScan Live 78 topics over rosbridge

What you get, free

A real cockpit, not a viewer.

Everything below ships in RDSM Community — open source under Apache 2.0, and complete enough to debug a robot with.

3D Viewport

14 display layers

LaserScan, PointCloud2, OccupancyGrid, Octomap, Odometry, MarkerArray, Path, TF frames, robot model, maps and more — composited by a Metal 4 renderer.

Inspect

Topics and raw messages

Browse every topic by namespace, then read any message as an expandable JSON tree with search, freeze, and rate throttling.

Transforms

TF tree, text and diagram

See the frame hierarchy, publish rates, staleness, and per-edge transforms as your robot moves.

Robot model

URDF with meshes

Loads URDF over /robot_description or from disk, resolving package:// mesh paths — STL, OBJ, DAE.

Command

Publish, goals, services

Send String, Twist, TwistStamped or raw JSON; drop a Nav2 goal or 2D pose estimate by dragging on the floor plane; browse and call any ROS 2 service.

Logs

/rosout, filtered

Severity filters, node and message search, auto-scroll, and a capped buffer that keeps long sessions responsive.

Editions

Same app today. Different licence.

Both editions currently ship the same, proven feature set. Community is free and open source, downloaded here. Pro is the same app sold on the Mac App Store — where it’s listed as RDSM Pro — for teams that need a purchased licence, an invoice, and managed updates. The advanced tooling below is in development and will land in Pro as it’s finished.

Capability Open source Community Free · direct download Paid Pro Mac App Store · $99.99 · licensed
Visualize
3D viewport · 14 layersIncludedIncluded
Robot model (URDF + meshes)IncludedIncluded
TF tree — text & diagramIncludedIncluded
TF Universe — immersive 3D diagnosticsIn development
Inspect
Topic browserIncludedIncluded
Raw / JSON message inspectorIncludedIncluded
Purpose-built visualizationsIn development
Time-series plottingIn development
/rosout log viewerIncludedIncluded
Command
Publish String / Twist / raw JSONIncludedIncluded
Saved message templatesIn development
Nav2 goal & 2D pose estimateIncludedIncluded
Service browser & callerIncludedIncluded
Parameter editor, diff & profilesIn development
Record & replay
Record live topics to MCAPIn development
Rosbag playback & timelineIn development
Bookmarks & annotationsIn development
Connect
rosbridge connection1 robot1 robot
Source codeApache 2.0Closed

Build from source

Clone it, build it, change it.

The Community edition is the whole app — 28 Swift packages, no private dependencies. It builds with stock Xcode.

  1. Install XcodeGen — the project file is generated, so it never conflicts in review.
  2. Generate and build — one command each, no workspace setup.
  3. Bring up a robot — a Dockerized TurtleBot3 with Nav2 and rosbridge is included for testing.
# 1 — tooling
brew install xcodegen

# 2 — build the app
git clone https://github.com/hjatupon/rdsm-community.git
cd rdsm-community/app
xcodegen generate --spec project.yml
xcodebuild -project RDSMCommunity.xcodeproj \
           -scheme RDSMCommunity build

# 3 — simulated robot, then connect to
#     ws://localhost:9090
cd ../testing/sim-bot
docker compose up -d