Back to list
PhantasticUniverse

analysis

by PhantasticUniverse

0🍴 0📅 Jan 18, 2026

SKILL.md


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

BehaviorDescription
staticFixed point (no change)
periodicExact or approximate cycle
quasi-periodicMultiple incommensurate frequencies
chaoticNo 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 dInterpretation
< 0.2Negligible
0.2 - 0.5Small
0.5 - 0.8Medium
> 0.8Large

Core Files

FilePurpose
analysis/symmetry.tsSymmetry detection algorithms
analysis/chaos.tsLyapunov exponent calculation
analysis/periodicity.tsPeriod detection and tracking
analysis/statistics.tsStatistical analysis module
analysis/experiment.tsExperiment comparison
discovery/fitness.tsQuick symmetry score

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon