American Modelica & FMI Conference 2026 · Workshop

Hands-On with Rumoca: From Modelica Source to Simulation and Multiple Algebraic Backends in VS Code

Monday, October 12, 2026 · 10:00 AM – 1:00 PM
Georgia Tech, Atlanta, Georgia

James Goppert · Managing Director, PURT; Research Assistant Professor
Micah Condie · PhD student, School of Aeronautics and Astronautics
Purdue University

Join & Get Started

QR code: create the core workshop Codespace

1. Open the workshop Codespace

Create Codespace →

Scan or click. Requires a GitHub account with Codespaces allowance. Prefer local? See local setup or browse the workshop repository.

2. Join remotely on Microsoft Teams

Join Teams Meeting →

About the Workshop

How many versions of the same physics do you maintain? Independently written simulation, fitting and control models drift apart. Rumoca is an open, Rust-native Modelica compiler that lets one declared model travel into simulation, identification, optimization and verification without silently becoming a different model.

In this tutorial you take a single small Modelica model, a planar quadrotor, through three steps: simulate it, fit its drag with JAX, then plan a constrained trajectory with CasADi. All from the same source:

import rumoca as rum
model = rum.Session().load("models/Quadrotor.mo", model="Quadrotor")
jax_model = model.to_jax()
casadi_model = model.to_casadi()

Along the way you'll edit and run models in VS Code and the browser, configure scenarios with TOML, drive a Three.js visualization, and write a custom code-generation target that emits Lean-checked equations and a differentiable Torch model.

Any modeling domain is welcome and no aerospace background is needed. Basic Modelica familiarity helps but isn't required.

Agenda

  1. 10:00 – 10:10

    Welcome & open experiment challenge

    Introductions, the core exercises, and the optional challenge: apply Rumoca to a question you care about.

  2. 10:10 – 10:20

    Why Rumoca? One model, many questions

    How declared Modelica equations travel through AST, Flat, DAE and Solve IRs into JAX, CasADi and other targets.

  3. 10:20 – 10:30

    Browser plot & choose your setup route

    Zero-install run in the playground, then pick a route: Codespaces, local Dev Container, or native uv.

  4. 10:30 – 10:45

    Simulation setup & the live user guide

    Fly the user guide’s quadrotor, read the scenario TOML, drive a Three.js scene, and explore the NACA airfoil flow.

  5. 10:45 – 11:00

    Simulate a planar quadrotor

    Inspect Quadrotor.mo and make your first engineering change: add quadratic drag and compare distance flown.

  6. 11:00 – 11:10

    Break

  7. 11:10 – 11:50

    Fit drag from noisy data with JAX

    Differentiate the prediction error through Rumoca’s JAX dynamics, fit two coefficients, and test on a held-out flight.

  8. 11:50 – 12:00

    Custom targets: Lean & Torch

    Write a Jinja template, generate Lean-checked equations, and learn a policy through a generated Torch model.

  9. 12:00 – 12:10

    Break

  10. 12:10 – 12:40

    Plan a trajectory with CasADi

    Compile the same model to CasADi and move between hovers while respecting thrust, torque, pitch and altitude limits.

  11. 12:40 – 12:50

    Beyond the core

    PURT pylon racing, FastDyn firmware-in-the-loop, fixed-wing workbench, motion-capture identification, SLAM Lab, and the community.

  12. 12:50 – 13:00

    Challenge demos & wrap-up

    Up to five 45-second demos, an audience vote for a CogniPilot stocking cap, and how to join the research community.

Open Experiment Challenge

During downtime, apply Rumoca to a problem you care about. One change to an existing model, controller or simulator is enough. Entries close at 12:40; up to five experiments are demoed at 12:50 (45 seconds each), and the audience favorite wins a CogniPilot stocking cap. See the challenge rules.

Materials

Conference Information

Conference Page →

Join the Community

Bring a model or a question from your own domain, contribute a validation case, model library or compiler improvement, or talk with us about research collaboration. The upcoming PURT pylon racing competition will also leverage Rumoca.