Emergence · Original Research

Research Notes

What I found while building this. Original contributions, unexpected discoveries, and open questions about particle life behavior. Nothing here is settled science — it's exploration notes.

Melanie Baratto · melaniesigrid@protonmail.com · June 2026 · Work in progress

Seven newly identified pattern archetypes

The particle life literature informally describes four behavioral classes: membranes, chasers, oscillating clusters, and galaxy-like formations. While building Emergence, I identified seven additional archetypes with distinct geometric signatures:

Ring Structure

Hollow annulus of particles with measurable void interior. Distinct from a membrane (solid disc).

🧫

Proto-Cell

Ring membrane of one species enclosing a different species. Two-layer structure, highest-order observed.

🌀

Vortex

Cluster with net angular momentum — persistent spin direction without an external driving force.

🧵

Filament

Elongated chain with aspect ratio >3.2. One-dimensional packing instead of two-dimensional.

🛸

Glider

Small self-propelling coherent structure — moves without an external target. Very rare.

🪐

Binary Orbit

Two clusters in stable mutual orbit — relative velocity perpendicular to separation.

🎨

Phase Separation

Spontaneous macroscale segregation of species into distinct territories from initial mixing.

Each archetype has a computational detector based on geometric properties (hollowness, aspect ratio, angular momentum, speed, and cohesion). The detectors run every 6 frames with per-pattern cooldowns; they feed both the event log and the achievement system in the simulation. The full detector specifications are documented in the Pattern Field Guide.

The proto-cell deserves special attention. It requires two conditions to hold simultaneously: a ring (hollow, circular, large enough to be a closed loop) must be present, and a second cluster of a different species must be contained within the ring's interior. Both must be stable at the same time. This two-layer structure — an inner core of one species, enclosed by a shell of another — is the closest analog to a biological cell membrane I have observed in a particle life system. Prior implementations I am aware of describe membranes but not this nested two-species configuration.

The glider is arguably the most significant. Unlike a chaser (which requires a target to follow), a glider self-propels. It is small, compact, and maintains velocity without any external attractor. Finding one manually takes extensive exploration; the rarest configurations I've observed across thousands of random matrices. I document it here because I believe it has not been formally named in the particle life literature. It is, in character, exactly analogous to the glider in Conway's Game of Life — a small stable moving structure that emerges from the rule system rather than being designed into it.


A computational taxonomy for particle life

One thing that surprised me while building Emergence: the particle life literature is rich in descriptions but poor in classification. Behaviors are named informally (or not at all), detectors are rarely published, and the boundary conditions between pattern classes are not specified. When I tried to build automatic pattern recognition, I had to derive all thresholds empirically.

The result is the first (as far as I can tell) formal computational taxonomy for particle life patterns — eleven classes with measurable geometric criteria. I want to be precise about what this means and what it doesn't.

What it means: Each class has a named set of geometric conditions on cluster properties that a detector checks at runtime. These conditions are sufficient to trigger a detection event, with calibrated thresholds that minimize false positives at typical parameter settings. The conditions are not unique — there may be other valid classifications, and the thresholds are empirically tuned rather than theoretically derived.

What it doesn't mean: This is not a proof that exactly eleven pattern classes exist, or that these classes are mutually exclusive (a vortex can also be a ring), or that the thresholds are universal across different implementations. It's an operational taxonomy for this simulation. A formal mathematical characterization of the pattern classes — the equivalent of what Langton did for cellular automata with his λ parameter — would require significantly more theoretical work.

I have, however, not found a pattern in this simulation that doesn't fit one of the eleven categories. If you find one, I want to know.


The complexity metric and Evolve algorithm

The Evolve button runs a headless matrix search: five candidate matrices (each a mutation of the current one) are evaluated by running 30 physics steps without rendering, scoring the result, and keeping the highest-scoring candidate. The whole process takes approximately 50ms at 1,200 particles.

The complexity score drives this search. It combines two signals:

complexity = spatialClustering × velocityVariance // spatialClustering: // Divide field into 16×16 grid. Count particles per cell. // Coefficient of variation = σ / μ (of cell counts) // High = particles unevenly distributed = structure forming // velocityVariance: // Compute mean speed across all particles. // Variance = average squared deviation from mean speed. // High = particles have different speeds = dynamic interactions // Capped at 3× to prevent degenerate very-high-energy states

The intuition: a simulation with high complexity should have both spatial structure (particles aren't uniformly distributed) and dynamic differentiation (particles aren't all moving at the same speed). A simulation with all particles in one cluster scores high on spatial clustering but low on velocity variance; a simulation with uniform jitter scores low on both. The product rewards configurations where interesting structure coexists with active dynamics.

I want to be honest about what this metric does and doesn't capture. It is not a measure of how "interesting" a simulation is to a human observer — it's a fast, computable proxy. It has been empirically validated: matrices that score higher under this metric are more likely to produce recognizable patterns (membranes, chasers, vortices). But it can also score highly for configurations that are visually noisy without being structurally interesting — high turbulence without coherent objects. A better metric would directly count detected patterns, but that's too slow for headless evaluation.

The Evolve algorithm itself is a single step of (1+5) evolutionary search — one parent, five children, keep the best. This is a well-known approach (evolution strategy, ES) repurposed here for matrix optimization. What makes it interesting in this context is that the fitness landscape is particle dynamics: the "fitness function" is a physical simulation, not a mathematical formula. The landscape is continuous but highly non-linear, with many local optima. The algorithm doesn't find global optima — it finds nearby improvements. But even single-step improvements are consistently useful: the evolved matrices reliably produce more structured behavior than the parent.

💡

The most surprising observation: When I run Evolve repeatedly from a random starting matrix, the scores increase monotonically for the first 3–6 steps, then plateau. This suggests that the fitness landscape has a gradient pointing toward structured matrices from essentially any starting point — order is "downhill" from randomness in this space. This is consistent with self-organized criticality (Bak et al., 1987) and with Langton's observation that interesting behavior occupies a critical regime that systems tend to approach naturally.


Matrix algebraic structure → emergent behavior classes

One of the most useful things I discovered while building Emergence: there is a strong mapping between the algebraic structure of the interaction matrix and the class of emergent behavior. This mapping is not theoretically derived (I don't have a proof), but it is empirically reliable enough to be practically useful.

↺ Cyclic

M[i][j] = M[(i+1)%n][(j+1)%n]
→ Spiral waves, vortices, rotating pursuit chains

⇔ Symmetric

M[i][j] = M[j][i]
→ Phase separation, galaxies, breathing clusters

↕ Anti-symmetric

M[i][j] = −M[j][i]
→ Chasers, directed motion, persistent pursuit

The cyclic matrix is the most interesting finding. A circulant matrix — where each row is a cyclic shift of the previous — consistently produces rotating spiral waves in the particle system. With 3 species (the Spiral preset uses this), the cyclic dominance pattern A attracts B, B attracts C, C attracts A produces a classic rock-paper-scissors dynamic, which manifests as a beautiful rotating spiral wave. This is well-known in ecology and chemistry (see: cyclic competition models, Lotka-Volterra cycles), but I have not found it explicitly exploited as a matrix design principle in particle life before.

The symmetric matrix eliminates chase dynamics by construction: if M[A][B] = M[B][A], neither species can chase the other because neither has an incentive the other doesn't share. The result is typically phase separation (each species forms independent clusters), breathing oscillations (if the shared value is strongly attractive), or galaxies (if one diagonal is large). Symmetric matrices are the "equilibrium" subspace of the full matrix — they produce slower, more stable dynamics.

The antisymmetric matrix (M[i][j] = −M[j][i]) has zero diagonal (a species is never attracted or repelled by itself) and all cross-species interactions are opposing: if A chases B, B chases A with equal force in the opposite direction. This creates a system of pure mutual pursuits. Chase sequences are guaranteed; stable clusters are rare. This is the high-kinetic subspace.

The insight for exploration: if you want vortices and spirals, try cyclic. If you want orbits and stable structures, try symmetric. If you want chasers and filaments, try antisymmetric. These are heuristics, not guarantees — but they reliably cut the search space.


Per-pair force curve ij)

The standard particle life force curve has one global parameter, β (beta), that determines the fraction of the interaction range occupied by the hard repulsive core. All species pairs share the same β. This is a significant simplification — it means every pair has the same force geometry, and the only thing that differs between pairs is the sign and magnitude of the matrix value.

What happens if each species pair has its own βij? This creates a second 8×8 matrix — not of interaction strength, but of interaction geometry.

// Standard particle life force curve: force(r, a) = r < β ? (r/β - 1) // repulsive core : r < 1 ? a × (1 - |2r - 1 - β|/(1-β)) // interaction band : 0 // Per-pair extension (proposed): force(r, a, β_ij) = // same curve, but β is now per-pair r < β_ij ? (r/β_ij - 1) : r < 1 ? a × (1 - |2r - 1 - β_ij|/(1-β_ij)) : 0

The effect of varying βij is dramatic:

A wide coreij ≈ 0.5) produces bead-string geometry: the repulsive core pushes particles apart until only the attraction band connects them. Pairs with wide-core β form chains — filaments — rather than dense clusters. This is how polymers behave chemically: monomers bond at a preferred distance rather than collapsing.

A narrow coreij ≈ 0.05) allows very close approach before repulsion kicks in. Pairs with narrow-core β can form tight vortex cores with extreme angular momentum — "collapse-and-bounce" dynamics where the repulsion is so sharp that pairs oscillate violently before stabilizing.

Mixed βij matrices create coexistence between pattern classes that are otherwise mutually exclusive: a wide-core pair forms chains while, simultaneously, a narrow-core pair forms tight rotating clusters. The same simulation can contain a filament and a vortex — something that doesn't happen with a uniform β.

I believe this is a genuinely novel extension with no known implementation in the particle life literature. It would require adding a second 8×8 draggable grid to the UI. The implementation is straightforward — a single additional parameter in the force function, per pair.

🔬

If you're interested in implementing this and want to compare notes, please reach out. I'm particularly curious whether βij = βji (symmetric β) produces qualitatively different dynamics from allowing β to be asymmetric per direction. My intuition says yes — asymmetric β would mean two particles feel different core sizes depending on which species is "approaching" — but I haven't explored it.


What I don't know yet

These are genuine open questions, not rhetorical ones. I don't have answers. If you do, or if you've made progress on related problems, I want to hear about it.

1. Can a particle life glider be made autocatalytic? A glider travels through space — but it doesn't consume or reconfigure the particles it passes through. If the matrix were arranged so that glider passage reorganized surrounding particles into configurations that would themselves become gliders, that would be a primitive form of self-reproduction. I don't know if this is achievable in a standard particle life model. I suspect it would require a resource gradient — something analogous to available energy that gliders exploit and leave depleted behind them.

2. Is there a theoretical characterization of the matrix space that produces interesting behavior? Langton characterized cellular automata using the λ parameter — the fraction of rules mapping to a non-quiescent state. Something analogous should exist for particle life matrices. What is the analogue of λ for an 8×8 continuous interaction matrix? My candidate would be something like the ratio of attractive to repulsive entries, weighted by the magnitude of cross-diagonal asymmetry. But I don't have a principled derivation and haven't found this addressed in the literature.

3. Do proto-cells ever spontaneously form without a ring precursor? In all the observations I've logged, proto-cells form by a ring capturing a different-species cluster that happens to be near the ring's center. I've never observed a proto-cell form directly — inner cluster and outer ring forming simultaneously. This might mean that the ring is a necessary precursor (there's a formation pathway constraint), or it might just mean the direct-formation pathway is rarer than I've sampled. Unknown.

4. What determines glider speed? Gliders, when they occur, move at widely varying speeds across different matrices. I have not found a clear predictor. Matrix asymmetry (M[A][B] − M[B][A]) is a candidate, but does not explain the variance in my observations. Reach (rMax) is another candidate. The question of what sets glider speed is essentially the question of what the effective "propulsion mechanism" is — which I also don't have a clean answer for.

5. Is the Spiral preset's spiral wave a topological structure? The Spiral preset uses cyclic 3-species dominance and reliably produces rotating spiral waves. In reaction-diffusion systems (Turing's model extended), spiral waves are known to be topological structures — their existence is guaranteed by the winding number of the initial condition. Is the particle life spiral wave topological in the same sense? If so, it should be robust to perturbation and difficult to destroy. This would be a meaningful connection between particle dynamics and reaction-diffusion theory.

Collaboration welcome

Found something? Tell me.

Particle life's state space is enormous and most of it is unexplored. If you've found an interesting configuration, a pattern that doesn't fit these categories, a theoretical insight about the matrix space, or just something that looks beautiful — I want to know.