analysis

star 0

Symmetry analysis, Lyapunov exponent chaos detection, and period detection APIs. Use when analyzing CA states, detecting patterns, measuring stability, or classifying dynamic behavior.

PhantasticUniverse By PhantasticUniverse schedule Updated 1/17/2026

name: analysis description: Symmetry analysis, Lyapunov exponent chaos detection, and period detection APIs. Use when analyzing CA states, detecting patterns, measuring stability, or classifying dynamic behavior.

Analysis APIs

Symmetry Detection

Quick Symmetry Score

import { calculateSymmetry } from "./discovery/fitness";
// Returns 0-1 score: 30% horizontal + 30% vertical + 40% rotational
const score = calculateSymmetry(state, width, height);

Advanced Symmetry Analysis

import {
  analyzeSymmetry,
  quickSymmetryScore,
  detectSymmetryType,
  calculateKFoldSymmetry,
} from "./analysis/symmetry";

// Full symmetry analysis
const result = analyzeSymmetry(state, width, height, { maxOrder: 8 });
console.log(`Order: ${result.order}`); // Dominant k-fold (1-8)
console.log(`Strength: ${result.strength}`); // 0-1 strength
console.log(`Horizontal: ${result.horizontal}`);
console.log(`Vertical: ${result.vertical}`);
console.log(`Rotational180: ${result.rotational180}`);

// Quick symmetry score (faster, less detailed)
const score = quickSymmetryScore(state, width, height);

// Detect symmetry types
const types = detectSymmetryType(result);
// Returns: ['bilateral-horizontal', '4-fold-rotational', 'radial'] etc.

Symmetry Types

  • bilateral-horizontal / bilateral-vertical - reflection symmetry
  • point-symmetric - 180° rotational
  • k-fold-rotational - k-fold rotational (2, 4, 6, 8...)
  • radial - high-order circular symmetry
  • asymmetric - no significant symmetry

Lyapunov Exponent (Chaos Analysis)

import {
  calculateLyapunovExponent,
  wolfLyapunovEstimate,
  quickStabilityCheck,
  classifyDynamics,
} from "./analysis/chaos";

// Define step function for your CA
const stepFunction = (state: Float32Array) => {
  /* evolve state */
};

// Full Lyapunov calculation
const result = calculateLyapunovExponent(initialState, stepFunction, {
  steps: 100,
  perturbationMagnitude: 0.001,
  renormalize: true,
});
console.log(`Exponent: ${result.exponent}`);
console.log(`Classification: ${result.classification}`);
console.log(`Confidence: ${result.confidence}`);

// Wolf algorithm (more robust for noisy systems)
const wolfResult = wolfLyapunovEstimate(initialState, stepFunction);

// Quick stability check (fast but less accurate)
const stability = quickStabilityCheck(initialState, stepFunction, 20);
// Returns: 'stable' | 'unstable' | 'unknown'

Lyapunov Classification

| Exponent (λ) | Classification | Meaning | | ------------ | ---------------- | ------------------- | ------------ | ----------------- | | λ < -0.01 | stable | Perturbations decay | | | λ | ≤ 0.01 | periodic | Marginally stable | | λ > 0.01 | chaotic | Perturbations grow | | λ > 1 | hyperchaotic | Rapid divergence |

Period Detection

import {
  detectPeriod,
  PeriodTracker,
  classifyPeriodBehavior,
} from "./analysis/periodicity";

// Detect period from state history
const result = detectPeriod(stateHistory, width, height, {
  maxPeriod: 100,
  correlationThreshold: 0.8,
});
console.log(`Period: ${result.period}`);
console.log(`Exact: ${result.isExactPeriod}`);
console.log(`Behavior: ${result.behavior}`);
console.log(classifyPeriodBehavior(result));

// Incremental tracking (for real-time detection)
const tracker = new PeriodTracker(width, height, { maxPeriod: 50 });
// In simulation loop:
tracker.push(currentState);
const analysis = tracker.analyze();

Period Behaviors

Behavior Description
static Fixed point (no change)
periodic Exact or approximate cycle
quasi-periodic Multiple incommensurate frequencies
chaotic No detectable period

Statistical Analysis

import {
  mean,
  variance,
  std,
  sem,
  median,
  percentile,
  iqr,
  skewness,
  kurtosis,
  bootstrapCI,
  bootstrapBCaCI,
  cohensD,
  hedgesG,
  cliffsD,
  mannWhitneyU,
  kruskalWallis,
  bonferroniCorrection,
  holmCorrection,
  benjaminiHochberg,
} from "./analysis/statistics";

// Basic statistics
const m = mean(data);
const s = std(data);
const ci = bootstrapBCaCI(data, mean, { confidence: 0.95 });

// Effect sizes
const d = cohensD(group1, group2);
console.log(`Effect: ${d.interpretation}`); // 'small' | 'medium' | 'large'

// Non-parametric tests
const uTest = mannWhitneyU(group1, group2, 0.05);
console.log(`p-value: ${uTest.pValue}, significant: ${uTest.significant}`);

// Multiple comparison correction
const { corrected, significant } = holmCorrection(pValues);

Effect Size Interpretation

Cohen's d Interpretation
< 0.2 Negligible
0.2 - 0.5 Small
0.5 - 0.8 Medium
> 0.8 Large

Core Files

File Purpose
analysis/symmetry.ts Symmetry detection algorithms
analysis/chaos.ts Lyapunov exponent calculation
analysis/periodicity.ts Period detection and tracking
analysis/statistics.ts Statistical analysis module
analysis/experiment.ts Experiment comparison
discovery/fitness.ts Quick symmetry score
Install via CLI
npx skills add https://github.com/PhantasticUniverse/genesis --skill analysis
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
PhantasticUniverse
PhantasticUniverse Explore all skills →