discovery

star 0

Genetic algorithm, fitness evaluation, novelty search, and self-replication detection. Use when implementing evolutionary search, evaluating organism fitness, or detecting emergent behaviors.

PhantasticUniverse By PhantasticUniverse schedule Updated 1/17/2026

name: discovery description: Genetic algorithm, fitness evaluation, novelty search, and self-replication detection. Use when implementing evolutionary search, evaluating organism fitness, or detecting emergent behaviors.

Discovery APIs

Genetic Algorithm

import {
  createGeneticAlgorithm,
  GAConfig,
  Individual,
} from "./discovery/genetic-algorithm";

const ga = createGeneticAlgorithm({
  populationSize: 50,
  mutationRate: 0.1,
  crossoverRate: 0.7,
  eliteCount: 5,
  tournamentSize: 3,
});

// Evolution loop
ga.initialize();
for (let gen = 0; gen < 100; gen++) {
  await ga.evaluatePopulation(fitnessFunction);
  ga.evolve();
}

const best = ga.getBest();

Fitness Metrics

import {
  calculateSymmetry,
  calculateComplexity,
  evaluateFitness,
  FITNESS_WEIGHTS,
} from "./discovery/fitness";

// Individual metrics
const symmetry = calculateSymmetry(state, width, height);
const complexity = calculateComplexity(state, width, height);

// Combined fitness evaluation
const fitness = evaluateFitness(state, width, height, {
  survival: 1.0,
  stability: 0.5,
  complexity: 0.3,
  symmetry: 0.2,
  movement: 0.1,
  replication: 2.0,
});

Available Fitness Metrics

Metric Description
survival How long the organism persists
stability Resistance to perturbation
complexity Structural complexity (entropy-based)
symmetry Bilateral and rotational symmetry
movement Center-of-mass displacement
replication Self-replication events detected

Novelty Search

import { NoveltySearch, createNoveltyArchive } from "./discovery/novelty";

const novelty = new NoveltySearch({
  k: 15, // K-nearest neighbors
  archiveThreshold: 0.3,
  maxArchiveSize: 1000,
});

// Add behavior to archive
novelty.addToArchive(behaviorVector);

// Calculate novelty score
const score = novelty.calculateNovelty(behaviorVector);

// Sparse novelty (faster)
const sparseScore = novelty.sparseNovelty(behaviorVector, 10);

Self-Replication Detection

import {
  createReplicationDetector,
  findConnectedComponents,
  calculateReplicationFitness,
} from "./discovery/replication";

// Create detector
const detector = createReplicationDetector(width, height, {
  minMass: 10,
  activationThreshold: 0.1,
  minSimilarity: 0.6,
});

// Process each frame
const events = detector.update(stateArray, stepNumber);

// Check for replication events
for (const event of events) {
  console.log(`Replication at step ${event.step}`);
  console.log(`Similarity: ${event.similarity}`);
}

// Use in fitness evaluation
const replicationFitness = calculateReplicationFitness(detector.getEvents());

Phylogeny Tracking

import { createPhylogenyTree, PhylogenyNode } from "./discovery/phylogeny";

const tree = createPhylogenyTree();

// Track lineages
const parent = tree.addNode(genome, fitness);
const child = tree.addChild(parent.id, mutatedGenome, childFitness);

// Query lineage
const ancestors = tree.getAncestors(child.id);
const descendants = tree.getDescendants(parent.id);

MAP-Elites Quality-Diversity

import {
  createMAPElitesArchive,
  DESCRIPTOR_PRESETS,
  type MAPElitesArchive,
} from "./discovery/map-elites";

// Create archive with preset behavioral descriptors
const archive = createMAPElitesArchive({
  descriptors: DESCRIPTOR_PRESETS["mass-speed"], // 50x50 grid
  higherIsBetter: true,
});

// Try to add individual to archive
const added = archive.tryAdd(genome, fitness, behaviorVector, generation);

// Selection methods
const elite = archive.selectRandom();
const best = archive.selectTournament(5);
const unexplored = archive.selectCuriosity();

// Statistics
const stats = archive.getStats();
console.log(`Coverage: ${stats.coverage}`);
console.log(`QD-Score: ${stats.qdScore}`);
console.log(`Filled cells: ${stats.filledCells}`);

// Export/Import
const state = archive.export();
archive.import(state);

Descriptor Presets

Preset Axes Use Case
mass-speed Total mass × Mean speed General exploration
mass-rotation Total mass × Rotation Spinning organisms
speed-stability Mean speed × Stability Movement patterns
mass-age Total mass × Lifetime Survival strategies

Statistical Analysis

import {
  bootstrapCI,
  bootstrapBCaCI,
  cohensD,
  hedgesG,
  cliffsD,
  mannWhitneyU,
  kruskalWallis,
  holmCorrection,
  benjaminiHochberg,
} from "./analysis/statistics";

// Bootstrap confidence intervals
const ci = bootstrapCI(data, mean, { confidence: 0.95, iterations: 10000 });
const bcaCI = bootstrapBCaCI(data, mean, { confidence: 0.95 });

// Effect sizes
const d = cohensD(group1, group2); // Cohen's d
const g = hedgesG(group1, group2); // Hedges' g (small samples)
const delta = cliffsD(group1, group2); // Non-parametric

// Statistical tests
const uTest = mannWhitneyU(group1, group2);
const hTest = kruskalWallis([group1, group2, group3]);

// Multiple comparison correction
const corrected = holmCorrection(pValues);
const fdrCorrected = benjaminiHochberg(pValues);

Experiment Comparison

import {
  compareConditions,
  compareAB,
  formatComparisonReport,
} from "./analysis/experiment";

// Compare multiple conditions
const comparison = compareConditions([
  { name: "Control", values: controlData },
  { name: "Treatment A", values: treatmentA },
  { name: "Treatment B", values: treatmentB },
]);

// Simple A/B comparison
const ab = compareAB(groupA, groupB, { alpha: 0.05 });

// Generate markdown report
const report = formatComparisonReport(comparison, "Fitness");

Core Files

File Purpose
discovery/genetic-algorithm.ts GA implementation
discovery/fitness.ts Fitness evaluation functions
discovery/novelty.ts Novelty search algorithm
discovery/map-elites.ts MAP-Elites quality-diversity
discovery/replication.ts Self-replication detection
discovery/phylogeny.ts Lineage tracking
discovery/genome.ts Genome encoding/decoding
analysis/statistics.ts Statistical analysis functions
analysis/experiment.ts Experiment comparison
Install via CLI
npx skills add https://github.com/PhantasticUniverse/genesis --skill discovery
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
PhantasticUniverse
PhantasticUniverse Explore all skills →