ποΈ LMM π¦
LMM is a pureβRust framework that represents higherβdimensional realities through symbolic mathematics and physics simulation, inspired by the Pharaonic model of intelligence: compress the world into durable, universal equations.
π§ Framework Overview
LMM bridges multimodal perception and actionable scientific discovery through five tightly integrated layers:
| Layer | Modules | Purpose |
|---|---|---|
| Perception | perception.rs, tensor.rs |
Raw bytes β normalised tensors |
| Symbolic | equation.rs, symbolic.rs, discovery.rs |
GP symbolic regression, differentiation, simplification |
| Physics | physics.rs, simulation.rs |
ODE models + Euler / RK4 / RK45 / leapfrog integrators |
| Causal | causal.rs |
SCM graphs, do-calculus interventions, counterfactuals |
| Cognition | consciousness.rs, world.rs, operator.rs |
Full perceive β encode β predict β act loop |
βοΈ Architecture
flowchart TD
A["Raw Input\n(bytes / sensors)"]
B["MultiModalPerception\nβββΊ Tensor"]
C["Consciousness Loop\nperceive β encode β predict\nevaluate β plan (lookahead)"]
D["WorldModel\n(RK4 physics)"]
E["SymbolicRegression\n(GP equation search)"]
F["CausalGraph\nintervention / counterfactual"]
G["Expression AST\ndifferentiate / simplify"]
A --> B --> C
C --> D
C --> E
E --> G
G --> F
D --> F
π¬ Key Capabilities
- 𧬠Genetic Programming: real population-based symbolic regression that discovers equations from data.
- π Symbolic Calculus: automatic differentiation (chain rule, product rule), constant folding simplification.
- π Physics Suite: Harmonic, Lorenz, Pendulum, SIR epidemic, N-body gravity: all implement
Simulatable. - π’ Field Calculus: N-D gradient, Laplacian, divergence, 3-D curl (central differences).
- π Causal Reasoning: structural causal models,
do(X=v)interventions, counterfactual queries. - π§© Neural Operators: circular convolution with SGD kernel learning, Fourier spectral operators.
- π€ Text β Equation: encode any text into a symbolic equation; decode it back exactly (lossless via residuals).
π¦ Installation
From Source
The binary is at ./target/release/lmm.
Via Cargo
[!NOTE] Requires Rust 1.86+. Install via rustup.
π CLI Usage
| | | )
π Subcommand Reference
1. simulate: Harmonic Oscillator
Runs a harmonic oscillator using the RK4 integrator.
| Flag | Default | Description |
|---|---|---|
-s, --step |
0.01 |
Integration step size (Ξt) |
-t, --steps |
100 |
Number of integration steps |
2. physics β Physics Model Simulation
Simulate one of four built-in physics models.
# Lorenz chaotic attractor (Ο=10, Ο=28, Ξ²=8/3)
# Nonlinear pendulum
# SIR epidemic model
# Damped harmonic oscillator (default)
Lorenz example:
SIR example:
| Flag | Default | Description |
|---|---|---|
-m, --model |
harmonic |
Model: lorenz, pendulum, sir, harmonic |
-s, --steps |
200 |
Number of integration steps |
-z, --step-size |
0.01 |
Step size Ξt |
3. discover: Symbolic Regression
Runs Genetic Programming (GP) to discover a symbolic equation from data.
))
The engine fits data points (i*0.5, 2*i*0.5 + 1) by default and finds the
underlying linear law. Increase --iterations for more complex datasets.
| Flag | Default | Description |
|---|---|---|
-d, --data-path |
synthetic |
Data source (synthetic = built-in linear data) |
-i, --iterations |
100 |
Number of GP evolution iterations |
4. consciousness: Perceive β Predict β Act Loop
Runs one tick of the full consciousness loop: raw bytes β perception tensor β world model prediction β action plan.
| Flag | Default | Description |
|---|---|---|
-l, --lookahead |
3 |
Multi-step lookahead horizon depth |
5. causal: Causal Graph + do-Calculus
Builds a 3-node Structural Causal Model (x β y β z) and applies an
intervention do(node = value), printing before/after values.
# Intervene on x: set x = 10, observe how y and z change
)))
))))
The SCM is:
y = 2 * xz = y + 1
| Flag | Default | Description |
|---|---|---|
-n, --intervene-node |
x |
Name of the node to intervene on |
-v, --intervene-value |
1.0 |
Value to set the node to (do-calculus) |
6. field β Scalar Field Calculus
Computes differential operators on a 1-D scalar field f(i) = iΒ².
# Gradient: should approach 2i (central differences)
# Laplacian: should be β 2 everywhere (second derivative of xΒ²)
| Flag | Default | Description |
|---|---|---|
-s, --size |
10 |
Number of field points |
-o, --operation |
gradient |
Operation: gradient or laplacian |
7. encode: Text β Symbolic Equation
This is the flagship demonstration of LMM's power. Any text is treated as a
sequence of byte values indexed by position. The GP engine discovers a symbolic
equation f(x) β byte[x]. Integer residuals (byte[x] β round(f(x))) are
stored alongside the equation, guaranteeing lossless round-trip recovery.
# Encode an inline string
)
}
# Encode from a file
| Flag | Default | Description |
|---|---|---|
-i, --input |
- |
Path to a text file to encode (- = use --text) |
-t, --text |
Hello, LMM! |
Inline text (used when --input is -) |
--iterations |
80 |
GP evolution iterations |
--depth |
4 |
Maximum expression tree depth |
8. decode: Symbolic Equation β Text
Reconstructs the original text from the equation and residuals printed by encode.
| Flag | Required | Description |
|---|---|---|
-e, --equation |
β | Equation string (from encode output) |
-l, --length |
β | Number of characters to recover |
-r, --residuals |
β | Comma-separated residuals. Use --residuals="-3,1,..." for negative values |
[!IMPORTANT] Use
--residuals="-3,..."(with=) or quote the argument when residuals contain negative values to prevent the shell from treating them as flags.
π¬ Architecture Deep Dive
Genetic Programming Symbolic Regression
flowchart TD
A["Population of Expression trees"]
B["Evaluate fitness\nMDL = nΒ·ln(MSE) + complexityΒ·ln(2)"]
C["Tournament selection (k=3)"]
D["Crossover & mutation"]
E["Next generation"]
F{Iterations done?}
G["Best expression (simplified)"]
A --> B --> C --> D --> E --> F
F -- No --> B
F -- Yes --> G
RK45 Adaptive Integrator
All Butcher-tableau coefficients are named package-level constants:
const RK45_A41: f64 = 1932.0 / 2197.0;
const RK45_A42: f64 = -7200.0 / 2197.0;
const RK45_A43: f64 = 7296.0 / 2197.0;
const RK45_B5_1: f64 = 16.0 / 135.0;
// ... etc.
Step size is adapted each iteration using the error estimate:
)
π° Whitepaper
LLMs are Usefull. LMMs will Break Reality: the blog post that started this project.
π€ Contributing
Contributions are welcome! Feel free to open issues or pull requests.
π License
This project is licensed under the MIT License: see the LICENSE file for details.
