Skip to content

Visualization

reptimeline provides four visualization types for understanding representation dynamics.

Phase Dashboard

Three-panel plot showing entropy, churn rate, and utilization curves with automatically detected phase transitions marked as vertical lines.

from reptimeline.viz import plot_phase_dashboard

plot_phase_dashboard(timeline, save_path="phase_dashboard.png")

Phase Dashboard

What to look for:

  • Entropy drops: The model is "deciding" -- committing to specific representations
  • Churn spikes: Rapid reorganization of representations
  • Utilization drops: Codes collapsing -- fewer unique representations
  • Vertical lines: Automatically detected phase transitions

Training Phases (from TriadicGPT)

Phase Steps Characteristic
Exploration 0 -- 7,500 High churn, all bits tested
Consolidation 7,500 -- 27,500 Churn stays high, entropy stable, active reorganization
Crystallization 27,500 Simultaneous entropy/utilization drop -- the model "decides"
Stabilization 27,500 -- 50,000 Churn drops to 0.075, representations frozen

Churn Heatmap

Per-bit churn rate across training steps. Shows which bits are unstable and when.

from reptimeline.viz import plot_churn_heatmap

plot_churn_heatmap(timeline, save_path="churn_heatmap.png")

Churn Heatmap

What to look for:

  • Hot rows: Bits that flip frequently (unstable features)
  • Hot columns: Training steps with high overall churn (reorganization events)
  • Cool regions: Stable bits/periods (converged representations)

Swimlane

Per-concept bit activation grid across training steps. Shows how individual concepts' representations change.

from reptimeline.viz import plot_swimlane

plot_swimlane(timeline, concepts=["king", "queen", "love", "hate"],
              save_path="swimlane.png")

Swimlane

What to look for:

  • Births: Bits lighting up for the first time
  • Deaths: Bits going dark permanently
  • Shared patterns: Concepts that converge to similar bit patterns
  • Divergence points: Steps where similar concepts start differing

Layer Emergence

Hierarchical layer activation order. Shows when each layer of the ontology stabilizes.

from reptimeline.viz import plot_layer_emergence

# Requires PrimitiveOverlay results
from reptimeline.overlays.primitive_overlay import PrimitiveOverlay

overlay = PrimitiveOverlay()
primitive_report = overlay.analyze(timeline, primitives)
plot_layer_emergence(primitive_report, save_path="layer_emergence.png")

Layer Emergence

What to look for:

  • Bottom-up ordering: Lower layers (more abstract) should stabilize first
  • Violations: Higher layers stabilizing before their dependencies
  • Gaps: Layers that never stabilize (potential dead features)

Generating All Plots

from reptimeline.viz import (
    plot_phase_dashboard,
    plot_churn_heatmap,
    plot_swimlane,
    plot_layer_emergence,
)

# After running tracker.analyze() and overlay.analyze()
plot_phase_dashboard(timeline, save_path="plots/phase.png")
plot_churn_heatmap(timeline, save_path="plots/churn.png")
plot_swimlane(timeline, concepts=concepts, save_path="plots/swim.png")
plot_layer_emergence(primitive_report, save_path="plots/layers.png")

Or via CLI:

python -m reptimeline \
  --checkpoint-dir checkpoints/ \
  --primitives --overlay --plot \
  --output timeline.json

This generates all four plots automatically in the output directory.