catcolab-decapodes
CatColab Decapodes - Discrete Exterior Calculus for PDE modeling on meshes via Decapodes.jl integration. Model physics equations compositionally with automatic code generation.
Best use case
catcolab-decapodes is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
CatColab Decapodes - Discrete Exterior Calculus for PDE modeling on meshes via Decapodes.jl integration. Model physics equations compositionally with automatic code generation.
Teams using catcolab-decapodes 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/catcolab-decapodes/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How catcolab-decapodes Compares
| Feature / Agent | catcolab-decapodes | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
CatColab Decapodes - Discrete Exterior Calculus for PDE modeling on meshes via Decapodes.jl integration. Model physics equations compositionally with automatic code generation.
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
# CatColab Decapodes: Discrete Exterior Calculus
**Trit**: -1 (MINUS - validator/verifier)
**Color**: Purple (#8A2BE2)
## Overview
Decapodes in CatColab enable **Discrete Exterior Calculus (DEC)** for modeling PDEs:
- **Differential forms**: 0-forms (scalars), 1-forms (vectors), 2-forms (flux)
- **Operators**: d (exterior derivative), ★ (Hodge star), Δ (Laplacian)
- **Multiphysics**: Compose PDEs from different domains
- **Automatic code generation**: Export to AlgebraicJulia/Decapodes.jl
This is CatColab's most advanced logic, connecting category theory to numerical PDE simulation.
## Mathematical Foundation
Discrete Exterior Calculus discretizes differential geometry on meshes:
```
┌─────────────────────────────────────────────────────┐
│ DISCRETE EXTERIOR CALCULUS │
├─────────────────────────────────────────────────────┤
│ Spaces (Differential Forms): │
│ Ω⁰ (0-forms): Scalars on vertices (temperature) │
│ Ω¹ (1-forms): Vectors on edges (velocity) │
│ Ω² (2-forms): Flux through faces (flow rate) │
│ │
│ Operators: │
│ d: Ωᵏ → Ωᵏ⁺¹ (exterior derivative) │
│ ★: Ωᵏ → Ωⁿ⁻ᵏ (Hodge star) │
│ δ = ★d★: Ωᵏ → Ωᵏ⁻¹ (codifferential) │
│ Δ = dδ + δd: Laplacian │
│ │
│ De Rham Complex: │
│ Ω⁰ ──d──► Ω¹ ──d──► Ω² ──d──► Ω³ │
│ │ │ │ │ │
│ ★ ★ ★ ★ │
│ ▼ ▼ ▼ ▼ │
│ Ω³ ◄──d── Ω² ◄──d── Ω¹ ◄──d── Ω⁰ │
└─────────────────────────────────────────────────────┘
```
## Double Theory
```rust
// DEC double theory (simplified)
pub fn th_decapodes() -> DiscreteDblTheory {
let mut cat = FpCategory::new();
// Form spaces
cat.add_ob_generator(name("Form0")); // Scalars
cat.add_ob_generator(name("Form1")); // 1-forms
cat.add_ob_generator(name("Form2")); // 2-forms
// Differential operators
cat.add_mor_generator(name("d0"), name("Form0"), name("Form1"));
cat.add_mor_generator(name("d1"), name("Form1"), name("Form2"));
// Hodge star
cat.add_mor_generator(name("star0"), name("Form0"), name("Form2"));
cat.add_mor_generator(name("star1"), name("Form1"), name("Form1"));
cat.add_mor_generator(name("star2"), name("Form2"), name("Form0"));
// Constraint: d ∘ d = 0
cat.add_equation(
compose(name("d0"), name("d1")),
zero_morphism(name("Form0"), name("Form2"))
);
cat.into()
}
```
## CatColab Implementation
### Form Space Declaration
```typescript
{
"type": "ObDecl",
"name": "Temperature",
"theory_type": "Form0",
"description": "scalar temperature field on vertices"
}
```
### Operator Declaration
```typescript
{
"type": "MorDecl",
"name": "gradient_T",
"dom": "Temperature",
"cod": "HeatFlux",
"theory_type": "d0",
"description": "gradient of temperature"
}
```
### PDE Declaration
```typescript
{
"type": "EqDecl",
"name": "heat_equation",
"equation": "∂T/∂t = κ·Δ(T)",
"description": "heat diffusion equation"
}
```
## Physics Examples
### Example 1: Heat Equation
```
∂T/∂t = κ·ΔT
Where:
T: Form0 (temperature)
κ: diffusivity constant
Δ = ★d★d (Laplace-Beltrami)
CatColab composition:
T ──d──► dT ──★──► ★dT ──d──► d★dT ──★──► ★d★dT = ΔT
```
### Example 2: Navier-Stokes (2D)
```
∂ω/∂t + (v·∇)ω = ν·Δω
Where:
ω: Form2 (vorticity)
v: Form1 (velocity)
ν: viscosity
Composition:
Advection: v ──∧──► v∧ω (wedge product)
Diffusion: ω ──Δ──► Δω
```
### Example 3: Maxwell's Equations
```
dE = -∂B/∂t (Faraday)
dB = 0 (no monopoles)
δE = ρ/ε₀ (Gauss)
δB = μ₀J + μ₀ε₀∂E/∂t (Ampère-Maxwell)
Where:
E: Form1 (electric field)
B: Form2 (magnetic field)
J: Form1 (current density)
```
### Example 4: Shallow Water Equations
```
∂h/∂t + ∇·(hv) = 0 (continuity)
∂v/∂t + (v·∇)v = -g∇h (momentum)
Where:
h: Form0 (water height)
v: Form1 (velocity)
```
## Multiphysics Composition
Decapodes compose via **operad algebras**:
```
┌─────────────────────────────────────────────────────┐
│ MULTIPHYSICS COMPOSITION │
├─────────────────────────────────────────────────────┤
│ Physics 1: Heat Transfer │
│ ∂T/∂t = κ·ΔT │
│ │
│ Physics 2: Advection │
│ ∂c/∂t = -v·∇c │
│ │
│ Composed: Advection-Diffusion │
│ ∂c/∂t = κ·Δc - v·∇c │
│ │
│ Interface: Shared Form1 velocity v │
└─────────────────────────────────────────────────────┘
```
## CatColab 0.2 Integration
CatColab 0.2 (Wren) introduced Decapodes integration:
```typescript
// Export to Decapodes.jl
const analysis = await model.analyze({
type: "decapodes-export",
mesh: "sphere_mesh.obj",
time_span: [0, 100],
parameters: { κ: 0.1 }
});
// Returns animated solution visualization
```
## GF(3) Triads
```
catcolab-decapodes (-1) ⊗ topos-catcolab (0) ⊗ catcolab-stock-flow (+1) = 0 ✓
fokker-planck-analyzer (-1) ⊗ catcolab-decapodes (0) ⊗ langevin-dynamics (+1) = 0 ✓
```
## Commands
```bash
# Create Decapodes model
just catcolab-new decapodes "heat-transfer"
# Generate Julia code
just catcolab-export heat-transfer --format=decapodes
# Simulate on mesh
just catcolab-simulate heat-transfer --mesh sphere.obj --time 100
# Compose physics models
just catcolab-compose heat-transfer advection --interface velocity
```
## Integration with Decapodes.jl
```julia
using Decapodes
using CombinatorialSpaces
# Load CatColab model
decapode = load_decapode("heat-transfer.json")
# Create mesh
mesh = loadmesh(Icosphere(3))
# Generate simulation code
sim = evalsim(decapode)
# Run simulation
u0 = initial_conditions(mesh)
prob = ODEProblem(sim, u0, (0.0, 10.0))
sol = solve(prob, Tsit5())
# Visualize
animate(sol, mesh, "heat_animation.mp4")
```
## References
- Hirani (2003) "Discrete Exterior Calculus" (PhD thesis)
- Desbrun et al. (2005) "Discrete Differential Forms for Computational Modeling"
- Patterson et al. (2023) "Decapodes: A diagrammatic framework for multiphysics"
- [Decapodes.jl](https://algebraicjulia.github.io/Decapodes.jl/)
- [CatColab DEC Help](https://catcolab.org/help/logics/decapodes)
---
**Skill Name**: catcolab-decapodes
**Type**: Discrete Exterior Calculus / PDE Modeling
**Trit**: -1 (MINUS)
**GF(3)**: Conserved via triadic compositionRelated Skills
topos-catcolab
Topos Institute's CatColab for collaborative category theory - community model building, double theories, stock and flow epidemiology, and real-time collaborative diagramming via Automerge CRDT.
catcolab-stock-flow
CatColab Stock-and-Flow Diagrams - epidemiological and ecological modeling with stocks (accumulations), flows (rates), and mass-action ODE semantics for SIR models and population dynamics.
catcolab-schemas
CatColab Schemas - database schema modeling distinguishing entities (tables) from attributes (columns). Foundation for ACSets (Attributed C-Sets) and AlgebraicJulia data structures.
catcolab-regulatory-networks
CatColab Regulatory Networks - signed graphs for molecular biology modeling gene regulatory networks with positive (activating) and negative (inhibiting) edges.
catcolab-petri-nets
CatColab Petri Nets - concurrent system modeling via places (states), transitions (events), and token flow. Foundation for process algebra, workflow, and chemical reaction networks.
catcolab-ologs
CatColab Ologs (Ontology Logs) - category-theoretic knowledge representation where objects are concepts and morphisms are functional relationships. Foundation for database schemas and conceptual modeling.
zx-calculus
Coecke's ZX-calculus for quantum circuit reasoning via string diagrams with Z-spiders (green) and X-spiders (red)
zulip-cogen
Zulip Cogen Skill 🐸⚡
zls-integration
zls-integration skill
zig
zig skill
zig-syrup-bci
Multimodal BCI pipeline in Zig: DSI-24 EEG, fNIRS mBLL, eye tracking IVT, LSL sync, EDF read/write, GF(3) conservation
zig-programming
zig-programming skill