# \[ANN\] NetworkDynamics.jl v0.9

**URL:** <https://discourse.julialang.org/t/ann-networkdynamics-jl-v0-9/122839>\
**Category:** Package Announcements\
**Created:** [November 20, 2024, 10:04am UTC](https://discourse.julialang.org/t/ann-networkdynamics-jl-v0-9/122839 "2024-11-20T10:04:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![hexaeder](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hexaeder/32/24403_2.png) [@hexaeder](https://discourse.julialang.org/u/hexaeder)\
**Post date:** [November 20, 2024, 10:04am UTC](https://discourse.julialang.org/t/ann-networkdynamics-jl-v0-9/122839/1 "2024-11-20T10:04:54Z")

</div>

I am happy to announce a major re-release of [NetworkDynamics.jl](https://github.com/JuliaDynamics/NetworkDynamics.jl)!

NetworkDynamics is a package for simulating dynamical processes on networks, such as diffusion processes or oscillator networks. It allows you to build the system in a _modular_ way by splitting the graph topology from the dynamical models for nodes and edges, which are modeled as DAE systems with an input-output structure.  
ND then essentially helps you build a performant RHS for your overall network that is compatible with [DiffEq.jl](https://github.com/SciML/DifferentialEquations.jl).

The new release contains many new features:

- Symbolic indexing using [SymbolicIndexingInterface.jl](https://github.com/SciML/SymbolicIndexingInterface.jl): access states and parameters of your system in a symbolic way. This includes “observed”, such as component outputs, which are not necessarily states in the ODE sense (see [docs](https://juliadynamics.github.io/NetworkDynamics.jl/dev/symbolic_indexing/)).
- Integration with [ModelingToolkit.jl](https://github.com/SciML/ModelingToolkit.jl): use MTK to build edge and vertex models (see [docs](https://juliadynamics.github.io/NetworkDynamics.jl/dev/mtk_integration/)).
- Improved mathematical model and interface: Clear separation between internal states and outputs of components offers a unified modeling approach for what has been known as “ODE” and “Static” components in the past (see [docs](https://juliadynamics.github.io/NetworkDynamics.jl/dev/mathematical_model/)).
- Different execution schemes: from sequential over threaded to GPU parallel.

Unfortunately, some more niche features, such as delay differential equations, didn’t make it into the new release (see [NEWS.md](https://github.com/JuliaDynamics/NetworkDynamics.jl/blob/main/NEWS.md)). If you’ve been using those features before, please reach out to us. We’re interested in learning about those use cases.

### Future plans

Some features didn’t make it to this release but are on the horizon. Most notable:

- External inputs: define external inputs for components to allow for not-fully decentralized control schemes.  
Callback definition on the component level: Attach “local” callbacks to your components and let ND.jl handle the construction of efficient network-wide callbacks.
- Improved AD support, especially for [SciMLSensitivity.jl](https://github.com/SciML/SciMLSensitivity.jl) usage.

This release is part of a bigger project whose goal is to revamp PowerDynamics.jl, a library for dynamic simulations of power grids. This upcoming rewrite will use all the newly developed backend features, for example a fully MTK based model library. So stay tuned for updates on that.
