# \[ANN\] Dyad: A New Language to Make Hardware Engineering as Fast as Software

**URL:** <https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996>\
**Category:** Package Announcements\
**Tags:** package, announcement, sciml, modelingtoolkit, dyad\
**Created:** [June 18, 2025, 3:08pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996 "2025-06-18T15:08:01Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [June 21, 2025, 2:23pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/42 "2025-06-21T14:23:10Z")

</div>

Installing Dyad is not working.

I could:

- install the VSCode plugin
- create a project
- authenticate with JuliaHub
- add the new registries

But instantiating the project fails with:

```julia
(OpenSourceAWEComponents) pkg> up
    Updating registry at `~/.julia/registries/DyadRegistry.toml`
    Updating registry at `~/.julia/registries/General.toml`
    Updating registry at `~/.julia/registries/JSMLComponents.toml`
    Updating registry at `~/.julia/registries/JuliaComputingRegistry.toml`
    Updating registry at `~/.julia/registries/JuliaHubRegistry.toml`
     Cloning [99806f68-afab-45ca-9d8c-ceff6bc61f54] DyadInterface from https://github.com/JuliaComputing/DyadInterface.jl.git
ERROR: failed to clone from https://github.com/JuliaComputing/DyadInterface.jl.git, error: GitError(Code:ERROR, Class:HTTP, unexpected http status code: 404)

```

Any idea?

---

<div class="post-metadata">

**Author:** ![BLI](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bli/32/37206_2.png) [@BLI](https://discourse.julialang.org/u/BLI)\
**Post date:** [June 21, 2025, 2:51pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/43 "2025-06-21T14:51:27Z")

</div>

Dyad looks promising. It is not clear to me whether the full scope of MTK possibilities are available in Dyad yet (SDEs, PDEs, etc.).

I am curious about the following…

- With the Dyad Studio extension in VSCode, I understand that I can work with Dyad models locally on my laptop.
- Does this also include that I can use the Dyad GUI locally on my laptop (or office desktop)?
- If I at some stage (after I master Dyad Studio myself) want to include Dyad in my course, is there a procedure for giving students (could be many) access to installing Dyad Studio? Is this trust based, or would the university be asked to provide a list of students?

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [June 21, 2025, 3:26pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/44 "2025-06-21T15:26:57Z")

</div>

The problem is that it is looking for `https://github.com/JuliaComputing/DyadInterface.jl.git` when it should be looking for `git@github.com:DyadLang/DyadInterface.jl.git`. I have no idea why that is happening… Can you share `]registry st` and `]st`? It’s probably best to follow up at [GitHub · Where software is built](https://github.com/DyadLang/DyadIssues/issues) since then it will be tracked and not potentially lost in the middle of a fairly long thread.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 21, 2025, 4:06pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/45 "2025-06-21T16:06:36Z")

</div>

> [@BLI](#):
>
> It is not clear to me whether the full scope of MTK possibilities are available in Dyad yet (SDEs, PDEs, etc.).

They are not. MTK will continue to have things outside of the normal industrial use cases, while Dyad will be focused directly on giving a smooth industrial modeling workflow.

> [@BLI](#):
>
> - Does this also include that I can use the Dyad GUI locally on my laptop (or office desktop)?

Not at this time.

> [@BLI](#):
>
> If I at some stage (after I master Dyad Studio myself) want to include Dyad in my course, is there a procedure for giving students (could be many) access to installing Dyad Studio?

They can just install the VS Code extension and they are off to the races!

---

<div class="post-metadata">

**Author:** ![BLI](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bli/32/37206_2.png) [@BLI](https://discourse.julialang.org/u/BLI)\
**Post date:** [June 21, 2025, 4:33pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/46 "2025-06-21T16:33:48Z")

</div>

> [@ChrisRackauckas](#):
>
> Not at this time.

But the plan is that in the future, GUI composition of models will work locally on the PC via Dyad Studio, i.e., no need to run in the cloud?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 21, 2025, 6:01pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/47 "2025-06-21T18:01:01Z")

</div>

There are plans for it yes

---

<div class="post-metadata">

**Author:** ![pankgeorg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pankgeorg/32/21549_2.png) [@pankgeorg](https://discourse.julialang.org/u/pankgeorg)\
**Post date:** [June 21, 2025, 7:35pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/48 "2025-06-21T19:35:12Z")

</div>

Try with `JULIA_PKG_SERVER=juliahub.com JULIA_PKG_USE_CLI_GIT=true julia --project=.`; that may help (let us know if it indeed does so we update the FAQ!

If it’s not that, could you share `~/.gitconfig` (minus any secrets) Does it have any rule like

```julia
[url "ssh://git@github.com/"]
	insteadOf = https://github.com/

```

---

<div class="post-metadata">

**Author:** ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)\
**Post date:** [June 21, 2025, 8:22pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/49 "2025-06-21T20:22:06Z")

</div>

@ufechner7 could you also confirm which version of Dyad Studio is installed on your machine? It should be v0.5.1. You would also have to launch Julia via the `Julia: Start REPL` command in VSCode (through the command palette) or as @pankgeorg mentioned by explicitly setting the package server via environment variable.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [June 21, 2025, 8:47pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/51 "2025-06-21T20:47:19Z")

</div>

Starting Julia with

```julia
JULIA_PKG_SERVER=juliahub.com JULIA_PKG_USE_CLI_GIT=true julia --project

```

and then doing:

```julia
] instantiate

```

works!

Output of Pkg.status():

```julia
Project OpenSourceAWEComponents v0.1.0
Status `~/repos/KiteControllers.jl/OpenSourceAWEComponents/Project.toml`
  [7bc808db] DyadEcosystemDependencies v0.9.4
  [99806f68] DyadInterface v4.3.4
⌅ [961ee093] ModelingToolkit v9.80.5
  [50262376] OrdinaryDiffEqDefault v1.4.0
⌅ [aea7be01] PrecompileTools v1.2.1
⌃ [7e49a35a] RuntimeGeneratedFunctions v0.5.14
  [d6f4376e] Markdown v1.11.0

```

And Dyad Studio is version 0.5.1, yes.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [June 21, 2025, 8:49pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/52 "2025-06-21T20:49:20Z")

</div>

> [@asinghvi17](#):
>
> You would also have to launch Julia via the `Julia: Start REPL` command in VSCode (through the command palette)

I will never ever do that. It does a lot things automatically, but never what I want. I prefer a small script `run_julia` in the bin folder that start Julia with all the options I need.

---

<div class="post-metadata">

**Author:** ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)\
**Post date:** [June 21, 2025, 10:05pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/53 "2025-06-21T22:05:09Z")

</div>

That works too 😃 In this case the only thing you need to set is the JULIA\_PKG\_SERVER environment variable. The workflow also assumes you have Revise loaded.

---

<div class="post-metadata">

**Author:** ![jogama](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jogama/32/49842_2.png) [@jogama](https://discourse.julialang.org/u/jogama)\
**Post date:** [June 22, 2025, 5:53pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/54 "2025-06-22T17:53:41Z")

</div>

Pardon my ignorance, but what is meant by “hardware engineering” ?

In my context, this would imply VHDL or Verilog. I wondered for a moment whether Dyad is meant to facilitate FPGA engineering, competing with systems like Chisel, Clash, or HardCaml. But the only non-CPU hardware the documentation mentions is GPUs.

I see that there’s an intent to be able to “generate code for embedded devices”. Are you able to specify what is meant by “embedded devices” ? It’s an unfortunately blurry term and I understand if you’d rather not.

I’m currently working on compiling ODEs from Julia to Verilog, is why I’m asking all this.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 22, 2025, 6:42pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/55 "2025-06-22T18:42:32Z")

</div>

Hardware engineering, like the creation of airplanes, cars, wind turbines, etc. Machines. And for embedded, it’s embedded controllers, like the controllers in airplanes and automobiles. VHDL and Verliog is more the microchip world which is different. The domain we’re talking about here is Modelica, Simulink, Amesim, etc.

---

<div class="post-metadata">

**Author:** ![songjhaha](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/songjhaha/32/42503_2.png) [@songjhaha](https://discourse.julialang.org/u/songjhaha)\
**Post date:** [June 23, 2025, 2:54am UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/56 "2025-06-23T02:54:57Z")

</div>

How is Dyad Lang compiled and deployed to hardware?

Is it going to use Dyad Lang → Julia → juliac toolchain? Or some other codegen tool to generate C code?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 23, 2025, 9:47am UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/57 "2025-06-23T09:47:20Z")

</div>

That’s a coming soon blog post.

---

<div class="post-metadata">

**Author:** ![michael.tiller](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/michael.tiller/32/202397_2.png) [@michael.tiller](https://discourse.julialang.org/u/michael.tiller)\
**Post date:** [June 23, 2025, 8:37pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/59 "2025-06-23T20:37:53Z")

</div>

TypeScript was chosen because we want the language kernel to run natively in a browser and in VS Code. As Chris points out, we aren’t doing any math (numerical or symbolic) in the Dyad kernel, just semantic processing of the language itself and then code generation to Julia. MTK + Julia pick things up from there and do a lot of the computational heavy lifting.

---

<div class="post-metadata">

**Author:** ![michael.tiller](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/michael.tiller/32/202397_2.png) [@michael.tiller](https://discourse.julialang.org/u/michael.tiller)\
**Post date:** [June 23, 2025, 8:39pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/60 "2025-06-23T20:39:29Z")

</div>

Dyad, like Modelica, supports both causal and acausal modeling formalisms.

---

<div class="post-metadata">

**Author:** ![pywugate](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pywugate/32/52011_2.png) [@pywugate](https://discourse.julialang.org/u/pywugate)\
**Post date:** [June 24, 2025, 11:53am UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/61 "2025-06-24T11:53:22Z")

</div>

Followed [Getting Started with Dyad Studio | Dyad](https://help.juliahub.com/dyad/dev/tutorials/getting-started.html), try to `instantiate` or `test`, but got this :

```julia
ERROR: Unsatisfiable requirements detected for package DyadEcosystemDependencies [7bc808db]:
 DyadEcosystemDependencies [7bc808db] log:
 ├─possible versions are: 0.7.0-0.9.4 or uninstalled
 ├─restricted to versions 0.9.4 by TestComponent [aecf22dd], leaving only versions: 0.9.4
 │ └─TestComponent [aecf22dd] log:
 │ ├─possible versions are: 0.1.0 or uninstalled
 │ └─TestComponent [aecf22dd] is fixed to version 0.1.0
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

```

Although `Pkg.status()` doesn’t give me version info of pkgs, but I believe they are correct

```julia
Status `~\Documents\Julia\Dyad\TestComponent\Project.toml`
  [7bc808db] DyadEcosystemDependencies
  [99806f68] DyadInterface
  [961ee093] ModelingToolkit
  [50262376] OrdinaryDiffEqDefault
  [aea7be01] PrecompileTools
  [7e49a35a] RuntimeGeneratedFunctions
  [d6f4376e] Markdown

```

Does anyone know what happened?

---

<div class="post-metadata">

**Author:** ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)\
**Post date:** [June 24, 2025, 11:56am UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/62 "2025-06-24T11:56:08Z")

</div>

What Julia version are you on? It should be v1.11.4 or higher, otherwise we know some packages won’t work so we have restricted the Julia compat.

That’s indicated by

```julia
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

```

---

<div class="post-metadata">

**Author:** ![pywugate](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pywugate/32/52011_2.png) [@pywugate](https://discourse.julialang.org/u/pywugate)\
**Post date:** [June 24, 2025, 12:00pm UTC](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996/63 "2025-06-24T12:00:43Z")

</div>

I’m on v1.10 indeed, let me update and try. [solved]  
Can someone add this info to Getting Started or FAQ, I didn’t see it on doc.

[Previous page](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996.md?page=2)

[Next page](https://discourse.julialang.org/t/ann-dyad-a-new-language-to-make-hardware-engineering-as-fast-as-software/129996.md?page=4)
