smithery/plurigrid

alife

Comprehensive Artificial Life skill combining ALIFE2025 proceedings, classic texts (Axelrod, Epstein-Axtell), ALIEN simulation, Lenia, NCA, swarm intelligence, and evolutionary computation. 337 pages extracted, 80+ papers, 153 figures.

Installation

$ npx skills add smithery/plurigrid --skill alife

Also in this package

Other skills from smithery/plurigrid · top by installs.

npx skills add smithery/plurigrid

Browse all from smithery/plurigrid

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 15,940 B
  • docs SUMMARY.md 81 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

ALIFE: Artificial Life Comprehensive Skill

Status: ✅ Production Ready Trit: +1 (PLUS - generative/creative) Sources: ALIFE2025 Proceedings + Classic Texts + Code Repos

Quick Reference

Resource Content
ALIFE2025 337 pages, 80+ papers, 153 figures, 100+ equations
Axelrod Evolution of Cooperation, TIT-FOR-TAT, Prisoner's Dilemma
Epstein-Axtell Sugarscape, Growing Artificial Societies
ALIEN CUDA 2D particle engine (ALIFE 2024 winner)
Lenia Continuous cellular automata
Concordia DeepMind generative agent-based models

Core Concepts

1. Evolutionary Dynamics

% Fitness-proportionate selection
P(i) = \frac{f_i}{\sum_{j=1}^{N} f_j}

% Replicator dynamics
\dot{x}_i = x_i \left[ f_i(x) - \bar{f}(x) \right]

2. Prisoner's Dilemma & Cooperation

         Cooperate    Defect
Cooperate   R,R        S,T
Defect      T,S        P,P

where T > R > P > S (temptation > reward > punishment > sucker)

TIT-FOR-TAT Strategy (Axelrod):

  1. Cooperate on first move
  2. Then do whatever opponent did last round

Properties: Nice (never defects first), Retaliatory, Forgiving, Clear

3. Cellular Automata

Elementary CA (Wolfram):

Rule 110: [111→0] [110→1] [101→1] [100→0] [011→1] [010→1] [001→1] [000→0]

Lenia (Continuous CA):

A^{t+\Delta t} = \left[ A^t + \Delta t \cdot G(K * A^t) \right]_0^1

G_{\mu,\sigma}(x) = 2e^{-\frac{(x-\mu)^2}{2\sigma^2}} - 1

Flow-Lenia (Mass-conserving, arXiv:2506.08569):

% Velocity field from kernel convolution
\vec{v}(x) = \nabla G(K * A^t)

% Mass-conserving update via continuity equation
A^{t+1} = A^t - \nabla \cdot (A^t \cdot \vec{v})

% With multispecies extension
A_i^{t+1} = A_i^t - \nabla \cdot \left(A_i^t \cdot \sum_j w_{ij} \vec{v}_j\right)

H-Lenia (Hierarchical):

\left[\left[A_i^t + \Delta t G(K * A_i^t)\right]_0^1 + \sum_{j \in N(i)} k_{ji} \cdot E_{ji}^t\right]_0^1

4. Neural Cellular Automata

def nca_step(grid, model):
    # Perceive: Sobel filters for gradients
    perception = perceive(grid)  # [identity, sobel_x, sobel_y, ...]
    
    # Update: Neural network
    delta = model(perception)
    
    # Apply with stochastic mask
    mask = torch.rand_like(delta) < 0.5
    return grid + delta * mask

5. Agent-Based Models

Sugarscape (Epstein-Axtell):

class Agent:
    def __init__(self):
        self.sugar = initial_sugar
        self.metabolism = random.randint(1, 4)
        self.vision = random.randint(1, 6)
    
    def move(self, landscape):
        # Look in cardinal directions up to vision
        best = max(visible_sites, key=lambda s: s.sugar)
        self.position = best
        self.sugar += best.sugar - self.metabolism

6. Swarm Intelligence

Boid Rules (Reynolds):

\vec{v}_{new} = w_s \cdot \text{separation} + w_a \cdot \text{alignment} + w_c \cdot \text{cohesion}

7. Chemical Computing

BZ Oscillator (Belousov-Zhabotinsky):

  • Universal computation at linear-bounded automaton level
  • Coupled oscillators outperform single for complex tasks

8. Active Inference

\mathcal{F} = \underbrace{D_{KL}[q(\theta)||p(\theta)]}_{\text{complexity}} + \underbrace{\mathbb{E}_q[-\log p(y|\theta)]}_{\text{accuracy}}

Key Papers (ALIFE2025)

Page Title Equations
1 Chemical Computer BZ reservoir
49 Hummingbird Kernel Chaotic LV
73 Neural Cellular Automata NCA rules
99 Language Cellular Automata NLP + CA
103 Lenia Parameter Space Growth functions
107 Evolvable Chemotons Autopoiesis
111 Category Theory for Life CT formalization
127 Swarm2Algo Swarm → Algorithms
135 Open-Ended Evolution in Binary CA Emergence
173 H-Lenia Hierarchical CA
195 Neural Particle Automata Particles
251 Autotelic RL for CA RL + CA
301 Gridarians: LLM-Driven ALife LLM + ALife

Classic Texts

Axelrod - Evolution of Cooperation (1984)

Key Results:

  • TIT-FOR-TAT wins iterated PD tournaments
  • Nice strategies dominate in evolution
  • Cooperation can emerge without central authority

Tournament Lessons:

  1. Don't be envious (relative vs absolute success)
  2. Don't be the first to defect
  3. Reciprocate both cooperation and defection
  4. Don't be too clever

Epstein-Axtell - Growing Artificial Societies (1997)

Sugarscape Phenomena:

  • Resource distribution → wealth inequality
  • Trade → price equilibrium
  • Combat → territorial patterns
  • Disease → epidemic dynamics
  • Culture → group formation

Emergent Properties:

  • Skewed wealth distributions (power law)
  • Migration waves
  • Carrying capacity oscillations

Code Resources

ALIEN (CUDA Particle Engine)

/Users/bob/ies/hatchery_repos/bmorphism__alien/
├── source/       # CUDA kernels
├── resources/    # Simulation configs
└── GAY.md        # Gay.jl integration

Winner: ALIFE 2024 Virtual Creatures Competition

Lenia Implementations

  • Python: github.com/Chakazul/Lenia
  • Julia: github.com/riveSunder/Lenia.jl
  • Web: chakazul.github.io/Lenia

Concordia (DeepMind GABMs)

# Full import paths for Concordia generative ABM
from concordia.agents import entity_agent
from concordia.agents.components.v2 import memory_component
from concordia.agents.components.v2 import observation
from concordia.agents.components.v2 import action_spec_ignored
from concordia.associative_memory import associative_memory
from concordia.associative_memory import importance_function
from concordia.clocks import game_clock
from concordia.environment import game_master
from concordia.language_model import gpt_model  # or gemini_model

# Initialize clock and memory
clock = game_clock.MultiIntervalClock(
    start=datetime.datetime(2024, 1, 1),
    step_sizes=[datetime.timedelta(hours=1)]
)

# Associative memory with embeddings
mem = associative_memory.AssociativeMemory(
    embedder=embedder,  # sentence-transformers or similar
    importance=importance_function.ConstantImportanceFunction()
)

# Create LLM-driven agent with components
agent = entity_agent.EntityAgent(
    model=language_model,
    memory=mem,
    clock=clock,
    components=[
        observation.Observation(clock=clock, memory=mem),
        memory_component.MemoryComponent(memory=mem),
    ]
)

# Game master orchestrates environment
gm = game_master.GameMaster(
    model=language_model,
    players=[agent],
    clock=clock,
    memory=mem
)

Equations Index

Evolution

% Mutation-selection balance
\hat{p} = \frac{\mu}{s}

% Wright-Fisher drift
\text{Var}(\Delta p) = \frac{p(1-p)}{2N}

Reaction-Diffusion

% Gray-Scott
\frac{\partial u}{\partial t} = D_u \nabla^2 u - uv^2 + f(1-u)
\frac{\partial v}{\partial t} = D_v \nabla^2 v + uv^2 - (f+k)v

Information Theory

% Information synergy
I_{\text{syn}}(X \rightarrow Y) = I_{\text{tot}} - \sum_{i=1}^{n} I_{\text{ind}}(X_i)

Lotka-Volterra

\frac{dx_i}{dt} = x_i\left(r_i + \sum_{j=1}^{n} A_{ij} x_j\right)

File Locations

/Users/bob/ies/paper_extracts/alife2025/
├── ALIFE2025_full.md          # 925KB markdown
├── ALIFE2025_tex.zip          # 11MB LaTeX
├── tex_extracted/
│   └── fed660c6-.../
│       ├── *.tex              # 7283 lines
│       └── images/            # 153 figures
└── conversion_status.json

/Users/bob/ies/
├── axelrod-evolution-of-cooperation.md
├── epstein-axtell-growing-artificial-societies.txt
├── wooldridge-multiagent-systems.txt
└── hatchery_repos/bmorphism__alien/

Gay.jl Integration

using Gay

# Theme colors for ALife domains
ALIFE_THEMES = Dict(
    :evolution => Gay.color_at(0xEV0L, 1),    # Warm
    :emergence => Gay.color_at(0xEMRG, 1),    # Neutral
    :cellular  => Gay.color_at(0xCA11, 1),    # Cool
    :swarm     => Gay.color_at(0x5ARM, 1),    # Dynamic
    :chemical  => Gay.color_at(0xCHEM, 1),    # Reactive
)

# GF(3) classification
# -1: Structure (CA rules, genomes)
#  0: Process (dynamics, transitions)
# +1: Emergence (patterns, behaviors)

Commands

just alife-toc                    # Full table of contents
just alife-paper 42               # Get paper at page 42
just alife-equation "lenia"       # Find Lenia equations
just alife-axelrod                # Axelrod summary
just alife-sugarscape             # Sugarscape patterns
just alife-alien                  # ALIEN simulation info
just alife-lenia "orbium"         # Lenia creature lookup

Executable Commands (bash/python)

# Run Lenia simulation (via leniax)
python -c "
import jax.numpy as jnp
from leniax import Lenia
lenia = Lenia.from_name('orbium')
state = lenia.init_state(jax.random.PRNGKey(42))
for _ in range(100): state = lenia.step(state)
print(f'Final mass: {state.sum():.2f}')
"

# Run NCA step (via cax)
python -c "
from cax import NCA
import jax
nca = NCA(hidden_channels=12)
params = nca.init(jax.random.PRNGKey(0), jnp.zeros((64, 64, 16)))
grid = jax.random.uniform(jax.random.PRNGKey(1), (64, 64, 16))
new_grid = nca.apply(params, grid)
print(f'Grid shape: {new_grid.shape}')
"

# TIT-FOR-TAT simulation
python -c "
import axelrod as axl
players = [axl.TitForTat(), axl.Defector(), axl.Cooperator(), axl.Random()]
tournament = axl.Tournament(players, turns=200, repetitions=10)
results = tournament.play()
print(results.ranked_names[:3])
"

# Sugarscape-style agent (simplified)
python -c "
import numpy as np
class Agent:
    def __init__(self): self.x, self.y, self.sugar = 0, 0, 10
    def move(self, grid): 
        neighbors = [(self.x+dx, self.y+dy) for dx,dy in [(-1,0),(1,0),(0,-1),(0,1)]]
        best = max(neighbors, key=lambda p: grid[p[0]%50, p[1]%50])
        self.x, self.y = best[0]%50, best[1]%50
        self.sugar += grid[self.x, self.y]
grid = np.random.rand(50, 50) * 4
agent = Agent(); [agent.move(grid) for _ in range(100)]
print(f'Final sugar: {agent.sugar:.1f}')
"

External Libraries

Library Purpose Install
Leniax Lenia simulation (JAX, differentiable) pip install leniax
CAX Cellular Automata Accelerated (ICLR 2025) pip install cax
Leniabreeder Quality-Diversity for Lenia GitHub
ALIEN CUDA particle engine (5.2k⭐) alien-project.org
EvoTorch Evolutionary algorithms (PyTorch+Ray) pip install evotorch
neat-python NEAT neuroevolution pip install neat-python
JaxLife Open-ended agentic simulator GitHub

See: [LIBRARIES.md](./LIBRARIES.md) for full documentation and code examples

Research Themes Graph

graph TB
    subgraph Evolution
        GA[Genetic Algorithms]
        OEE[Open-Ended Evolution]
        NS[Natural Selection]
    end
    
    subgraph Emergence
        CA[Cellular Automata]
        NCA[Neural CA]
        Lenia[Lenia]
    end
    
    subgraph Agents
        ABM[Agent-Based Models]
        Swarm[Swarm Intelligence]
        GABM[Generative ABM]
    end
    
    subgraph Chemistry
        BZ[BZ Reaction]
        Auto[Autopoiesis]
        Chem[Artificial Chemistry]
    end
    
    GA --> OEE
    CA --> NCA --> Lenia
    ABM --> Swarm --> GABM
    BZ --> Auto --> Chem
    
    OEE --> Emergence
    Lenia --> Agents
    GABM --> Chemistry

See Also & Skill Interop

Primary Interop Skills (load together for full capability):

Skill Interop Command
gay-mcp Deterministic coloring of all ALife entities mcp gay palette 12 seed=0x4C454E49
acsets-algebraic-databases Lenia/NCA as C-Set schemas @acset_type LeniaGrid(SchLenia)
glass-bead-game Cross-domain morphisms (CA↔music↔philosophy) Morphism.new(:lenia, :timbre)
self-validation-loop Prediction/observation for CA dynamics validatecastep(grid, kernel, seed)
algorithmic-art p5.js visualization with Gay.jl palettes just art-lenia seed=0x4C454E49
world-hopping Badiou triangle for parameter space LeniaWorld.hop_to(target)

Secondary Skills:

  • epistemic-arbitrage - Knowledge transfer across ALife domains
  • hatchery-papers - Academic paper patterns (ALIEN, Lenia papers)
  • bmorphism-stars - Related repositories
  • triad-interleave - Three-stream parallel CA updates
  • bisimulation-game - Skill dispersal with GF(3) conservation

See: [INTEROP.md](./INTEROP.md) for full integration patterns

Citations

@proceedings{alife2025,
  title     = {ALIFE 25: Ciphers of Life},
  editor    = {Witkowski, O. and Adams, A.M. and Sinapayen, L.},
  year      = {2025},
  pages     = {337}
}

@book{axelrod1984,
  title     = {The Evolution of Cooperation},
  author    = {Axelrod, Robert},
  year      = {1984},
  publisher = {Basic Books}
}

@book{epstein1996,
  title     = {Growing Artificial Societies},
  author    = {Epstein, Joshua M. and Axtell, Robert},
  year      = {1996},
  publisher = {MIT Press}
}

Skill Name: alife Type: Research Reference / Algorithm Library / Simulation Toolkit Trit: +1 (PLUS - generative) Mathpix: PDF ID fed660c6-4d3d-4bb6-bb3c-f9b039187660


Exa-Refined Research Index (2025-12-21)

Breakthrough Papers (2024-2025)

Theme Paper arXiv Key Innovation
Flow-Lenia Emergent evolutionary dynamics 2506.08569 Mass conservation + multispecies
Leniabreeder Quality-Diversity for Lenia 2406.04235 MAP-Elites + AURORA
ARC-NCA Developmental Solutions 2505.08778 EngramNCA matches GPT-4.5
DiffLogic CA Differentiable Logic Gates 2506.04912 Discrete learnable CA
Active Inference Missing Reward 2508.05619 FEP for autonomous agents
CT Autopoiesis Autonomy as Closure 2305.15279 Monoid = operational closure

New Equations

% Flow-Lenia mass conservation
A^{t+1} = A^t + \nabla \cdot (A^t \cdot \vec{v}(K * A^t))

% EngramNCA hidden memory
h^{t+1} = \sigma(W_h \cdot [v^t, h^t] + b_h)

% DiffLogic gate probability
p(g) = \text{softmax}(\theta_g) \quad g \in \{\text{AND}, \text{OR}, \text{XOR}, ...\}

% Monoid operational closure
\text{Aut}(S) \cong \text{Mon}(\mathcal{C}), \quad |\text{Ob}| = 1

Performance Benchmarks

System Task Score vs GPT-4.5
ARC-NCA ARC public 17.6% comparable
EngramNCA v3 ARC public 27% 1000x less compute
Leniabreeder OEE metrics unbounded N/A

Extended See Also

Exa Index: /Users/bob/ies/ALIFEEXAREFINED_INDEX.md

ALife atlas

Part of: alife-commons. Family: open-ended-evolution. Canonical: alife.