koopman-generator

Koopman operator theory for infinite-dimensional linear lifting of nonlinear dynamics. Generates dynamics from observables.

16 stars

Best use case

koopman-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Koopman operator theory for infinite-dimensional linear lifting of nonlinear dynamics. Generates dynamics from observables.

Teams using koopman-generator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/koopman-generator/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/ies/music-topos/.agents/skills/koopman-generator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/koopman-generator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How koopman-generator Compares

Feature / Agentkoopman-generatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Koopman operator theory for infinite-dimensional linear lifting of nonlinear dynamics. Generates dynamics from observables.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Koopman Generator Skill

## Core Idea

The **Koopman operator** K linearizes nonlinear dynamics by lifting to infinite-dimensional observable space:

```
State space (nonlinear)     Observable space (linear)
      x_{t+1} = f(x_t)   →   (Kg)(x) = g(f(x))
```

**Key property**: K is **linear** even when f is nonlinear.

## Connection to DMD

DMD finds finite-rank approximation of K:
```
K ≈ Φ Λ Φ†
```
- Φ = DMD modes (approximate Koopman eigenfunctions)
- Λ = eigenvalues

## As ACSet Morphism

Koopman = natural transformation on observable presheaves:
```julia
# Observable functor
F: StateSpace → ObservableSpace

# Koopman as pushforward
K = f_*: Sh(X) → Sh(X)
```

## GF(3) Triads

```
dmd-spectral (-1) ⊗ structured-decomp (0) ⊗ koopman-generator (+1) = 0 ✓
temporal-coalgebra (-1) ⊗ acsets (0) ⊗ koopman-generator (+1) = 0 ✓
```

## References

- Brunton et al. "Modern Koopman Theory" (2021)
- Mezić "Spectral Properties of Dynamical Systems" (2005)
- PyDMD: https://github.com/mathLab/PyDMD