/

/

Announcing Dyad Studio v1.0.0

/

/

Announcing Dyad Studio v1.0.0

Announcing Dyad Studio v1.0.0

Announcing Dyad Studio v1.0.0

Date Published

Sep 11, 2025

Sep 11, 2025

Contributors

Share

Share

Date Published

Sep 11, 2025

Contributors

Share

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.

component SomeComponent
    variable v::Real
    variable trigger::Real
relations
    ## OLD SYNTAX
    ## v = if trigger ‹ 0 then 0 else v

    ## NEW SYNTAX
    v = ifelse(trigger  0, 0, v)
end

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, 

component SomeComponent
    variable v::Real
relations
    guess v = 0.0
    ...
end

 

Authors

Anshul Singhvi is a contributor to Julia's plotting (Makie.jl), geospatial (JuliaGeo) and documentation ecosystems, and a developer on the Dyad team.

Authors

Anshul Singhvi is a contributor to Julia's plotting (Makie.jl), geospatial (JuliaGeo) and documentation ecosystems, and a developer on the Dyad team.

Authors

Anshul Singhvi is a contributor to Julia's plotting (Makie.jl), geospatial (JuliaGeo) and documentation ecosystems, and a developer on the Dyad team.

Learn about Dyad

Get Dyad Studio – Download and install the IDE to start building hardware like software.

Read the Dyad Documentation – Dive into the language, tools, and workflow.

Join the Dyad Community – Connect with fellow engineers, ask questions, and share ideas.

Learn about Dyad

Get Dyad Studio – Download and install the IDE to start building hardware like software.

Read the Dyad Documentation – Dive into the language, tools, and workflow.

Join the Dyad Community – Connect with fellow engineers, ask questions, and share ideas.

Contact Us

Want to get enterprise support, schedule a demo, or learn about how we can help build a custom solution? We are here to help.

Contact Us

Want to get enterprise support, schedule a demo, or learn about how we can help build a custom solution? We are here to help.