How it works / Methodology

From genomes to video.

This is the method behind my master's FYP, the NEED framework: evolving neural controllers for Gymnasium agents, aim — improve learning without backpropagation. Research ran 2024 → May 2025, 137 days counted from 1 Jan 2025 to 17 May 2025. Evolution optimizes policy weights, and the best candidates are periodically recorded. The overview below describes the current Python sources, not a verified configuration history for every clip. The manifest indexes 8 environments and 436,274,863 bytes of media.

Pipeline

  1. Population

    A population of neural policies is initialised per environment. Despite its name, LinearPolicy uses tanh hidden activations and tanh outputs for continuous actions. Its genome comprises weights and optional biases, which can be flattened to a vector.

  2. Evaluation

    Every candidate is rolled out in a Gymnasium environment; fitness is the mean episode reward across repeats. Episode length ramps through curriculum learning, and auxiliary rewards give directional signal without a single gradient step.

  3. Selection

    The heart of NEED is hybrid selection: novelty plus a greedy, median-gated look at past fitness, so being different earns reproduction rights alongside being good. Other experiment scripts expose different operators and parameters, so this is not a claim about every archived run.

  4. Variation

    Uniform crossover and polynomial mutation vary weights and biases. Each generation, elite clones undergo connectivity restructuring — neuron relocation, pruning, and module preservation — with safeguards so the network backbone is not lost.

  5. Sweeping

    Before the main runs, an operator grid searched mutation types against crossover schemes on CartPole. The winning pairing — polynomial mutation with uniform crossover — informed the training loop used for the environments archived on this site.

  6. Archive

    Best-of-generation clips and ensembles are rendered to MP4, and the manifest on this site indexes them by environment, source, and filename metadata.

Caveats

Filename fitness is a mean training value

For training clips named with reward and run fields, the current recorder encodes int(sol.rewards[-1]): the latest mean evaluation reward, truncated toward zero. That fitness is not the return of the separate video rollout. Episode and ensemble filenames do not necessarily include fitness.

Training and video rollouts can differ

The environment manager includes environment-specific reward shaping. Remote training evaluation multiplies actions by config.action_bound, while VideoEvaluator passes actions without that multiplier. Archived configurations are not fully captured by the manifest, so fitness values should not be treated as directly comparable across runs or environments.

Episode labels depend on the caller

The current_episode prefix uses a caller-supplied value: gym_ga_v1.py passes current_generation to RemoteEvaluatorGym, so that prefix can be a generation. The separate -episode-N suffix is the Gymnasium recording episode index. The manifest parses that suffix as episode and only parses generation from reward/run filenames; it does not infer generation from current_episode.

Dates reflect the archive, not all of the research

This is master's final-year project research aiming to improve learning without backpropagation, presented as the NEED framework. The research ran 2024 into 17 May 2025 (137 days counted 1 Jan 2025 – 17 May 2025). The recordings archived here carry May 2025 filename stamps; earlier sweep and log evidence is not fully represented on this site.

Archives are not one continuous curve

The archive mixes sessions and configurations. Charts pool training clips in a scatter plot of filename generation against filename fitness, without session grouping or per-session traces. Multiple clips can share coordinates and overlap; these points are not a continuous learning curve.

The project

A master's final year project (FYP) written by Noman Ali, supervised by Prof. Dr. Atif Tahir, for the MSc Data Science — FAST-NUCES. Defended 17 May 2025 — the front matter, framework, sources, and tfevents logs all live with this project under v1/ and on GitHub ↗.

Numbers on this site are read directly from filenames and the manifest. No statistics are invented. Browse the archive or compare two recordings.