Navigate the Dynamo codebase and produce architecture briefings. Use this skill when learning Dynamo for the first time, when you get a Jira ticket and don't know where to start, when you need to understand how Dynamo's architecture fits together, or when onboarding a teammate. Also use for questions like "where does node evaluation happen?" or "how does the DesignScript engine work?"
A question like "how does X work?", a Jira ticket number, or a request for an architecture brief.
A structured briefing following the sections below. Skip sections that don't apply.
DynamoModel, DynamoSandbox, extension loader, test harness).Dynamo is a visual programming tool accessible to non-programmers and programmers alike. Users can visually script behavior, define custom logic, and script using textual programming languages. C# + WPF, .NET 10. Core engine (DynamoCore.sln) is cross-platform; full UI (Dynamo.All.sln) is Windows-only.
Build:
# Full (Windows)
dotnet restore src/Dynamo.All.sln --runtime=win-x64 -p:Configuration=Release -p:DotNet=net10.0
msbuild src/Dynamo.All.sln /p:Configuration=Release
# Core only (cross-platform)
dotnet build src/DynamoCore.sln -c Release
Test: NUnit. dotnet test or Visual Studio Test Explorer.
Key areas:
| Area | Path |
|---|---|
| Core engine | src/DynamoCore/ |
| WPF UI | src/DynamoCoreWpf/ |
| Node libraries | src/Libraries/ (CoreNodes, PythonNodeModels, etc.) |
| Engine (DS compiler) | src/Engine/ (ProtoCore, ProtoAssociative, etc.) |
| Applications | src/DynamoApplications/, src/DynamoSandbox/ |
| View extensions | src/ (GraphNodeManager, PackageDetails, DocumentationBrowser, etc.) |
| Tests | test/DynamoCoreTests/, test/Libraries/, test/Engine/ |
| PublicAPI tracking | src/DynamoCore/PublicAPI.*.txt, src/DynamoCoreWpf/PublicAPI.*.txt |
| Node help docs | doc/distrib/NodeHelpFiles/ |
DynamoModel is the central class -- it owns the workspace, manages state transitions, and coordinates node evaluation. Key states: NotStarted, StartedUI, StartedUIless.
WorkspaceModel holds the graph: nodes, connectors, groups, notes. HomeWorkspaceModel extends it with execution (run) support. CustomNodeWorkspaceModel represents reusable sub-graphs.
NodeModel is the base class for all nodes. Built-in nodes live in src/Libraries/. Custom nodes can be created via Zero-Touch (annotated C# methods) or NodeModel subclassing.
The DesignScript engine (src/Engine/) compiles and evaluates the visual graph. ProtoCore handles AST construction, ProtoScript runs the execution.
Dynamo supports view extensions (IViewExtension) and extensions (IExtension). View extensions can add UI panels and interact with the workspace. Examples: GraphNodeManager, PackageDetails, DocumentationBrowser.
| Repo | Role | How it connects to Dynamo |
|---|---|---|
| DynamoMCP | MCP server extension | Exposes Dynamo workspace operations as MCP tools; loads as a view extension |
| DynamoPlayer | Graph execution scheduler | Prepares and runs Dynamo graphs; uses Dynamo NuGet packages |
| Analytics.NET | Telemetry tracking | Unified event tracking framework used by Dynamo |
| NodeAutocompleteService | ML node discovery | Node autocomplete ML service for Dynamo |
| LibG | Geometry kernel wrappers | SWIG wrappers around Autodesk Shape Manager (ASM) |
| DynamoAAS | Dynamo as a Service | Server-side Dynamo graph execution |
| DynamoAGTTests | UI tests | Automated Dynamo UI testing using AGT framework |
global.json SDK version: .NET 10 SDK required.msbuild (Visual Studio 2022).dotnet build with DynamoCore.sln only.DynamoCoreTests tests DynamoCore).[Test], [TestCase], [SetUp] attributes.DynamoModelTestBase sets up a headless instance).test/core/ that tests may depend on.[IsVisibleInDynamoLibrary(true)] attribute on the method.PublicAPI.Unshipped.txt.For Dynamo newcomers:
src/DynamoCore/Models/DynamoModel.cs -- central model, state machinesrc/DynamoCore/Graph/Workspaces/WorkspaceModel.cs -- workspace operationssrc/DynamoCore/Graph/Nodes/NodeModel.cs -- node base classsrc/Libraries/CoreNodes/ -- built-in node implementationssrc/DynamoCoreWpf/ -- UI componentssrc/Engine/ProtoCore/ -- DesignScript engine core.github/copilot-instructions.md -- build/test/style quick referenceExample 1: "I got ticket DYN-5678 to add a new node for string interpolation"
Briefing output:
src/Libraries/CoreNodes/.String.cs).[IsVisibleInDynamoLibrary(true)] and XML documentation..dyn sample, .md docs, .jpg preview in doc/distrib/NodeHelpFiles/.test/Libraries/CoreNodesTests/.Example 2: "Where does node evaluation happen?"
Briefing output:
HomeWorkspaceModel.Run() triggers evaluation.src/Engine/.ProtoCore handles AST construction and type resolution.BuildAst() method generates its AST contribution.NodeModel.CachedValue.