Archimedes Rocket Logo

Archimedes is an open-source Python framework designed to simplify the development of complex engineering systems by providing tools for modeling, simulation, optimization, controls, and hardware deployment. The ultimate goal is to make it possible to do practical hardware engineering with Python. Archimedes builds on the powerful symbolic computation capabilities of CasADi with an interface designed to be familiar to NumPy users.

⭐ Introduction

Introduction to the Archimedes project

Introducing Archimedes
πŸ“š Quickstart

Learn how to use Archimedes

Quickstart
πŸ“ Blog

Announcements, deep dives, and case studies

Archimedes Blog

Quick ExampleΒΆ

import numpy as np
import archimedes as arc

def f(x):
    return np.sin(x**2)

# Use automatic differentiation to compute df/dx
df = arc.grad(f)
np.allclose(df(1.0), 2.0 * np.cos(1.0))  # True

# Automatically generate C code
template_args = (0.0,)  # Data type for C function
arc.codegen(df, "grad_f.c", template_args, return_names=("z",))

Key features:

  • NumPy-compatible array API with automatic dispatch

  • Efficient execution of computational graphs in compiled C++

  • Automatic differentiation with forward- and reverse-mode sparse autodiff

  • Interface to β€œplugin” solvers for ODE/DAEs, root-finding, and nonlinear programming

  • Automated C code generation for embedded applications

  • JAX-style function transformations

  • PyTorch-style hierarchical data structures for parameters and dynamics modeling

DocumentationΒΆ

Indices and TablesΒΆ