# \[NEW\] UniversalDiffEq.jl: Simple front-end for State-Space Universal Dynamical Equations

**URL:** <https://discourse.julialang.org/t/new-universaldiffeq-jl-simple-front-end-for-state-space-universal-dynamical-equations/121350>\
**Category:** Package Announcements\
**Created:** [October 15, 2024, 8:50pm UTC](https://discourse.julialang.org/t/new-universaldiffeq-jl-simple-front-end-for-state-space-universal-dynamical-equations/121350 "2024-10-15T20:50:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jarroyoe](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jarroyoe/32/42482_2.png) [@jarroyoe](https://discourse.julialang.org/u/jarroyoe)\
**Post date:** [October 15, 2024, 8:50pm UTC](https://discourse.julialang.org/t/new-universaldiffeq-jl-simple-front-end-for-state-space-universal-dynamical-equations/121350/1 "2024-10-15T20:50:22Z")

</div>

Hello everyone,

I’m happy to announce our package `UniversalDiffeq.jl`, recently published in the Julia registry and hosted on a [Github repo](https://github.com/Jack-H-Buckner/UniversalDiffEq.jl).

`UniversalDiffEq.jl` presents a simple to use front-end for the recently developed [State-Space Universal Dynamical Equations](https://arxiv.org/abs/2410.09233). In addition to the State-Space UDEs, this front-end extends to many of the functions for Neural ODEs and Universal Differential Equations of `DiffEqFlux.jl`.

**How it works**  
`UniversalDiffEq.jl` exports a complex main struct `UDE` and other variations for special cases explained in [the documentation](https://jack-h-buckner.github.io/UniversalDiffEq.jl/dev/). This struct accepts a `DataFrame` dataset of your time series of interest as its training data and a custom process function. The model can then easily be trained using customizable training functions (ADAM and BFGS for regular UDEs, NUTS and SGLD for Bayesian UDEs).

**Currently supported models**

- State-Space UDEs (`UDE`)
- State-Space UDEs trained on different time series (`MultiUDE`)
- Bayesian State-Space UDEs (`BayesianUDE`)

**A simple example**

```julia
using UniversalDiffEq, DataFrames

data,plt = LotkaVolterra();
model = NODE(data);
gradient_descent!(model);
plot_predictions(model)
plot_state_estimates(model)

```

Outputs:  
[![](https://global.discourse-cdn.com/julialang/original/3X/f/2/f2d2817270c5648bc85f72a3045e3181f55e48e5.png) ](https://raw.githubusercontent.com/Jack-H-Buckner/UniversalDiffEq.jl/main/README%20images/lotkaVolterra_example_predictions.png)  
[![](https://global.discourse-cdn.com/julialang/original/3X/7/e/7e4e9b89ef618c498c9cff5855f27e5f3d4a17c9.png) ](https://raw.githubusercontent.com/Jack-H-Buckner/UniversalDiffEq.jl/main/README%20images/lotkaVolterra_example_states.png)

More complex, step-by-step examples are available in the documentation.
