Gaussian splatting meets Lenia dynamics:
- Each memory region is a Gaussian in memory space
- Temperature = opacity (access heat)
- Growth function: Gaussian bump on neighborhood activation
- Mass conservation: total energy bounded by RAM budget
- Continuous gradient: no hard HOT/WARM/COLD tiers
Splat analogy test: 3 hot regions / 7 cold regions correctly
identified through field dynamics. Energy at 26.4% of budget
with mass conservation holding.
6 Lenia tests + 22 existing = 28 total, 0 failures.
Not yet wired into pipeline β next step is replacing the
condenser's hard tiers with Lenia field dynamics.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pipeline: the living loop β membrane β graph β predictor β condenserβ
The River flows. Allocation events enter the membrane, feed the
graph (the substrate), trigger predictions (spreading activation),
and the condenser acts (motor output). No orchestrator. The
substrate drives itself.
- Graph rebuilds automatically from accumulated events
- Predictor fires spikes when patterns repeat
- Condenser pre-promotes predicted regions before access
- Addresses bucketed by size class for better pattern learning
- Event buffer keeps 20% for continuity across rebuilds
22 tests pass across all 5 modules.
All 4 layers connected into one living system.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rust condenser: HOT/WARM/COLD tier management with LZ4 compressionβ
All four Condensate layers now in Rust:
Membrane β intercepts malloc/free system-wide (LD_PRELOAD)
Graph β learns causal access topology
Predictor β predicts next access from learned patterns
Condenser β compresses idle regions, pre-promotes on prediction
17 tests pass. Raw input, no classification β Law 7 for memory.
The substrate learns allocation patterns from pure observation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hooks malloc/free via LD_PRELOAD to track memory allocations for
ANY process, not just Python. Records allocation patterns, size
distribution, hot/cold classification.
Tested on live Python + numpy workload:
15,237 malloc calls intercepted
5 huge allocations (38.1 MB numpy arrays) correctly identified
Size distribution matches actual workload
Feature-gated: --no-default-features builds without PyO3.
All 12 tests pass.
Usage: LD_PRELOAD=libcondensate_core.so ./any_program
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rust core: AccessGraph + RustPredictor with PyO3 bindingsβ