We are proud to announce our latest release of Dyad Studio, v1.0.0
! This is the first stable release of the Dyad language.
MCP Server
Dyad Studio now has a native Model Context Protocol server for integration with AI/LLM agents like Cursor and Github Copilot. The MCP server will automatically register itself with VSCode (Github Copilot) and Cursor.
Currently, it bundles a tool that allows your agent to compile your Dyad project, allowing it to get instant feedback about its changes and whether they were syntactically correct.
In our next feature release (coming soon!), we will be including many more tools - documentation browsing, component listing, custom rules, and more!
ModelingToolkit.jl v10
This version of Dyad Studio utilizes an updated Julia ecosystem and ModelingToolkit v10, with improvements in model building time and syntax. See ModelingToolkit’s release notes for more information!
To upgrade to ModelingToolkit v10, you just need to change the compatibility with DyadEcosystemDependencies in your Project.toml to =0.10.3
. You may also need to delete compat for any component libraries you are using, as some of them have had breaking releases. Notably, TranslationalComponents changed the formulation of the spring damper to more closely mirror the MSL implementation, with s_rel0
as a parameter.
Submodule Support
Dyad Studio now supports submodules! You can define submodules by adding subfolders to your dyad/
directory; those will automatically become Dyad submodules similar to Modelica submodules.
Syntax Changes
New if
statement syntax
The inline if-then-else
syntax is now deprecated, replaced by the ifelse
function. We plan to add support for block if-else
statements (with multiple relations within each block) in a future release, to support conditional relations.
Here's an example of how you can transition to ifelse
statements. The new syntax is shown below.
guess
relations
There is a new relation type for guess
values, allowing you to set guesses for any parameter or variable in your model. This is useful to break algebraic loops,