roadrunner-core
Foundation skill for all RoadRunner workflows: MATLAB path setup, connection, project/scene/scenario lifecycle, world settings, handle management, status, and close
Install / Use
npx skills add matlab/matlab-agentic-toolkit --skill roadrunner-coreInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of roadrunner-core
roadrunner-core scores 93/100 on our quality scale, 742nd of 2,848 Automation skills we index (top 27%).
Its SKILL.md is 14 KB long, well organised into 26 sections with 4 code examples: a thorough specification that gives an agent plenty to work with.
With 1,098 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 18 days ago, so roadrunner-core is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
roadrunner-core compared with similar skills
All 4 of these similar skills score higher than roadrunner-core; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| roadrunner-core (this skill)by matlab | 93 | 1.1k | 18d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 89.8k | 18d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 85.4k | today | MCP Server |
| rufloby ruvnet | 100 | 73.8k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install roadrunner-core?
- Run
npx skills add matlab/matlab-agentic-toolkit --skill roadrunner-core. The install tabs above show the steps for each supported agent. - Which AI agents does roadrunner-core work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is roadrunner-core safe to use?
- It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is roadrunner-core still maintained?
- The repository was last updated 18 days ago, so roadrunner-core is actively maintained.
Skill content
View source on GitHubname: roadrunner-core description: "Foundation skill for all RoadRunner workflows: MATLAB path setup, connection, project/scene/scenario lifecycle, world settings, handle management, status, and close. Use when connecting to RoadRunner, managing projects/scenes/scenarios, setting world origin, checking status, closing RoadRunner, or when any downstream RoadRunner skill needs initialization." license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/license.md metadata: author: MathWorks version: "1.0" matlab_version: ">=R2022a" products: - Automated Driving Toolbox - RoadRunner
RoadRunner Core
Foundation skill for all RoadRunner agent workflows. Manages the RoadRunner connection, project/scene/scenario lifecycle, and handle management from MATLAB. Produces the rrApp handle used by all downstream RoadRunner skills.
Execution: all MATLAB code runs via evaluate_matlab_code MCP tool. Never matlab -batch.
When to Use
- Connecting to or launching RoadRunner from MATLAB
- Creating, opening, or saving projects, scenes, or scenarios
- Setting world origin or scene extents
- Checking RoadRunner status
- Closing RoadRunner safely
- Any downstream RoadRunner skill needs
rrAppinitialization
When NOT to Use
- RoadRunner is not installed — this skill requires a working RoadRunner installation; it cannot install the product
- MATLAB version below R2022a — the
roadrunnerclass and related APIs are not available in earlier releases rrAppalready exists and is valid — re-runningrrCoreInitializeis safe (it's idempotent) but unnecessary; prefer checkingexist('rrApp','var')first to avoid the overhead- User has not provided installation or project paths when first-time setup is needed — ask the user first, do not guess paths
- RoadRunner is intentionally closed — do not reconnect or relaunch without explicit user permission
1. How the Agent Uses This Skill
First-time setup (once per machine — two-tier resolution)
rrCoreInitialize handles setup automatically using a two-tier approach:
| Tier | Condition | What happens |
|------|-----------|--------------|
| 1 | Settings valid + roadrunner class on path | Setup skipped — already configured |
| 2 | Agent has installFolder and projectPath variables | Programmatic setup: addpath, savepath, writes MATLAB settings. No GUI. |
Just run rrCoreInitialize. The script automatically:
- Connects to a running instance (
roadrunner.connect()) - If that fails, launches a new instance (
roadrunner()) using saved settings - If not configured, errors with
PathsRequired— then ask the user forinstallFolderandprojectPath, set them, and re-run
Once setup succeeds, it persists forever (across MATLAB sessions). Never needed again.
No GUI dialogs. This skill never calls roadrunnerSetup. All configuration is done programmatically.
First call in a session
- Add the skill scripts to the MATLAB path (required before
rrCoreInitializecan be found):
Replaceaddpath("<absolute-path-to-this-skill>/scripts");<absolute-path-to-this-skill>with the actual filesystem path to this skill's directory (the folder containing this SKILL.md file). - Run
rrCoreInitialize→ it handles everything: connects to a running instance, or launches one using saved settings, or errors with a clear message if not configured. - If it errors with
PathsRequired→ ask the user forinstallFolderandprojectPath, set them as variables, re-runrrCoreInitialize. - Proceed with the user's request.
Subsequent calls
- Check
exist('rrApp','var')— if missing, re-runrrCoreInitialize - Look up the operation in the Decision Logic table (Section 3)
- Copy the exact pattern from
scripts/rrCoreCommands.munder the matching%%heading - Substitute placeholders with actual values
- Execute via
evaluate_matlab_code
Key principle
Never improvise API calls. Before every RoadRunner operation, read the matching %% section from rrCoreCommands.m and reproduce it exactly. Do not guess function names, argument syntax, or parameter orders from memory. This prevents hallucinated function names, missing guard rails, and forgotten handle invalidation.
If you are unsure of the correct syntax for any operation, stop and read the pattern file before attempting the call.
2. Files
| File | Role |
|------|------|
| scripts/rrCoreInitialize.m | Runs directly. Bootstraps path + connection + validation. |
| scripts/rrCoreCommands.m | Pattern reference. Agent reads %% section, substitutes placeholders, executes. |
Deployment
On first use, the agent ensures the RoadRunner API is on the MATLAB path (one-time savepath). The scripts in this skill are pattern references — the agent reads them and reproduces the patterns via evaluate_matlab_code.
3. Decision Logic
| User Intent | Pattern (%% section) | Placeholders to substitute |
|-------------|------------------------|---------------------------|
| Connect / initialize | INIT | — |
| Connect without launching | CONNECT_ONLY | — (errors if no instance running) |
| Create a new project | NEW_PROJECT or NEW_PROJECT_WITH_ASSETS | projectPath — ask user whether to include base assets (asset library). Always rrCoreInitialize first (RoadRunner must be running with any project before newProject can be called). |
| Open an existing project | OPEN_PROJECT | projectPath |
| Save the project | SAVE_PROJECT | — |
| Create a new scene | NEW_SCENE | — |
| Open a scene | OPEN_SCENE | sceneName — if not found, use LIST_SCENES and present options |
| List available scenes | LIST_SCENES | — |
| Save the scene | SAVE_SCENE or SAVE_SCENE_AS | Ask user: "Save in place, or save with a new name?" If new name → use SAVE_SCENE_AS with sceneName |
| Create a new scenario | NEW_SCENARIO | — |
| Open a scenario | OPEN_SCENARIO | scenarioName — if not found, use LIST_SCENARIOS and present options |
| List available scenarios | LIST_SCENARIOS | — |
| Save the scenario | SAVE_SCENARIO | — |
| Set world origin | CHANGE_WORLD_ORIGIN | lat, lon |
| Set scene center and extents | CHANGE_SCENE_BOUNDS | x, y, w, h |
| Set scene center only | CHANGE_SCENE_CENTER | x, y |
| Set scene extents only | CHANGE_SCENE_EXTENTS | w, h |
| Clear world projection | CLEAR_WORLD_PROJECTION | — |
| Check status | STATUS | — |
| Close RoadRunner | CLOSE | — |
Available From:
changeWorldSettingsrequires R2023b or later. All other operations are available from R2022a.
Launch (handled by rrCoreInitialize)
After first-time setup, rrCoreInitialize automatically launches RoadRunner using saved defaults if no instance is running. Manual launch is only needed for non-default modes:
rrApp = roadrunner(ProjectFolder=projectPath, InstallationFolder=installFolder);
| Mode | Add this argument |
|------|-------------------|
| Headless (no UI) | NoDisplay=true |
| No desktop + graphics | NoDesktop=true |
| Custom ports | Ports=[apiPort, cosimPort] |
Manual launch still requires explicit user permission.
4. Placeholders
These are the variable names used in rrCoreCommands.m. The agent substitutes them with actual values before executing.
| Placeholder | Type | Example |
|-------------|------|---------|
| SKILL_SCRIPTS_DIR | string | (absolute path to this skill's scripts/ folder) |
| rrApp | roadrunner | (from rrCoreInitialize, never reassigned) |
| projectPath | string | "D:/Projects/HighwayProject" |
| sceneName | string | "FourWaySignal.rrscene" |
| scenarioName | string | "CutInScenario" |
| lat | double | 42.3021 |
| lon | double | -71.3747 |
| x, y | double | 1445, 1237 |
| w, h | double | 160, 465 |
| installFolder | string | "C:/Program Files/RoadRunner R2026a" |
5. Handle Management
This skill produces rrApp via rrCoreInitialize. Operations that change state (NEW_SCENE, OPEN_SCENE, NEW_SCENARIO, OPEN_SCENARIO, OPEN_PROJECT, CLOSE) include clear statements to remove stale handles.
6. Path Setup
RoadRunner API path is added to MATLAB's saved path on first use. No config files or environment variables needed.
The agent runs savepath after adding the API path — this persists across MATLAB sessions. If the user upgrades RoadRunner, the agent detects the failure (roadrunner class missing or version mismatch) and asks for the new installation folder.
7. Critical Rules
- Always
rrCoreInitializefirst — never call RoadRunner APIs without a validatedrrApp - Never launch without permission — ask the user before
roadrunner(ProjectFolder=...) - One
rrAppper session — never create a second connection - Read the pattern before every call — open
rrCoreCommands.m, find the%%section, reproduce it exactly. Do not guess syntax from memory. - Never auto-save —
NEW_SCENE,NEW_SCENARIO, andCLOSEpatterns detect unsaved changes but do NOT save automatically. Always ask the user whether to save, save-as, or discard. Saving with the same name overwrites the original and can break backwards compatibility if the file was created with an older version. - Verify version after connect — check
rrApp.Versionand report it. If the user requested a specific version, warn if it doesn't match. - Ask before save — when saving is needed (new scene/scenario, close, or explicit save request), ask the user whether to save in place, save with a new name, or discard changes
- List on not-found — if
openSceneoropenScenariofails because the name doesn't exist, list available scenes/scenarios usingdirand present options to the user - Relative scene paths resolve to
<project>/Scenes/ - Unicode not supported in paths
- Handle invalidation is automatic — patterns include
clearstatements - All execution via MCP — never
matlab -batch close(rrApp)terminates RoadRunner entirely — the process exits. After close,roadrunner.connect()will fail. A freshroadrunner()launch is required to reconnect.- Scene is NOT restored on relaunch — after close + relaunch, RoadRunner opens the project but shows a blank scene. The agent must explicitly reopen the desired scene.
8. Anti-Patterns
- Do not launch RoadRunner without user permission
- Do not call
roadrunner(ProjectFolder=...)when already connected — this launches a duplicate instance - Do not pass two arguments to
roadrunner.connect(port, port)— use single port - Do not call any function on a closed/invalid
rrApp - Do not skip
clearstatements from the patterns - Do not invent function calls not present in
rrCoreCommands.m(e.g., nosave(rrApp), nosaveSceneAs, noswitchScenario, noLatitude=lat) - Do not hardcode installation paths — use the resolution chain in
rrCoreInitialize - Do not save a scene without asking the user —
saveScene(rrApp, name)silently overwrites existing files - Do not confuse "close MATLAB" with "close RoadRunner" — they are independent processes
- Do not assume scene is restored after relaunch — it is not; always reopen explicitly
9. Project Structure
<RoadRunner Project>/
├── Assets/ 3D models, materials, textures
├── Scenes/ .rrscene files
├── Scenarios/ .rrscenario files
├── Exports/ Exported output
├── Project/ Project metadata
└── Scripts/ User scripts (optional)
10. API Behavior Notes
Project
newProjectcreates any missing parent folders- The folder name becomes the project name
- If
openProjecttargets an already-open project, a new blank scene is still created
Scene
- Relative paths resolve to `<pro
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
89.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Scrapling
85.4k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
ruflo
73.8k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
