1 unstable release
| 0.1.0 | Jan 21, 2026 |
|---|
#2667 in Math
22 downloads per month
Used in 10 crates
8KB
151 lines
ðļ OldiesRules
Revival of Classic Academic Simulators in Rust
Decades of scientific validation. Modern safety and performance.
OldiesRules provides modern, safe, high-performance Rust implementations of legendary simulation software that is abandoned, unmaintained, or running on obsolete platforms.
ð Quick Start
# Install CLI
cargo install --git https://github.com/Yatrogenesis/OldiesRules oldies-cli
# Install GUI
cargo install --git https://github.com/Yatrogenesis/OldiesRules oldies-gui
# Interactive mode
oldies
# Or run directly
oldies genesis model.g
oldies neuron cell.hoc
âĻ Features
- 7 Classic Simulators - GENESIS, NEURON, XPPAUT, AUTO, COPASI, Brian, NEST
- Modern GUI - Real-time visualization with egui
- Interactive CLI - Fuzzy search, progress bars, wizard mode
- Full Compatibility - Parse original file formats
- Cross-Platform - Windows, macOS, Linux
ð§ Supported Simulators
| Simulator | Era | Original | Purpose | Status |
|---|---|---|---|---|
| GENESIS | 1988 | SLI + C | Compartmental neural modeling | â Complete |
| NEURON | 1984 | HOC + NMODL | Cable equation, ion channels | â Complete |
| XPPAUT | 1990s | C + FORTRAN | Bifurcation analysis | â Complete |
| AUTO | 1980s | FORTRAN | Continuation algorithms | â Complete |
| COPASI | 2004 | C++ + SBML | Biochemical networks | â Complete |
| Brian | 2008 | Python | Spiking neural networks | â Complete |
| NEST | 2001 | C++ + SLI | Large-scale networks | â Complete |
ðŊ Interactive Mode
$ oldies
ðļ OLDIES RULES - Legacy Simulators Reborn
âââââââââââââââââââââââââââââââââââââââââââ
? Select a simulator or action (type to search):
âš ð§ GENESIS - Compartmental modeling (1988)
⥠NEURON - Cable equation (1984)
ð XPPAUT - Bifurcation analysis (1990s)
ð AUTO - Continuation (1980s)
ð§Ž COPASI - Biochemical networks (2004)
ðĨ Brian - Spiking networks (2008)
ð NEST - Large-scale simulation (2001)
? Enter path to model file: model.g
â đ Parsing SLI script...
â đ Building element tree...
â đ Connecting messages...
â đ Simulating 100ms...
â
Simulation complete!
Duration: 1.23s
Timesteps: 10,000
ðĨïļ GUI Application
oldies-gui

- Simulator Selection - Choose from 7 classic simulators
- Parameter Editor - Modify model parameters in real-time
- Live Plotting - Watch variables evolve during simulation
- Data Export - CSV, JSON, HDF5 output formats
ðĶ Crates
| Crate | Description |
|---|---|
oldies-core |
Shared types: ODEs, channels, time series |
oldies-cli |
Interactive command-line interface |
oldies-gui |
Graphical interface with egui |
genesis-rs |
GENESIS neural simulator |
neuron-rs |
NEURON simulator (HOC/NMODL parser) |
xppaut-rs |
XPPAUT bifurcation analysis |
auto-rs |
AUTO continuation algorithms |
copasi-rs |
COPASI/SBML biochemical networks |
brian-rs |
Brian spiking networks |
nest-rs |
NEST large-scale simulator |
modeldb-rs |
ModelDB model importer |
ðŽ Examples
GENESIS - Hodgkin-Huxley Neuron
use genesis_rs::{GenesisSimulation, objects};
let mut sim = GenesisSimulation::new();
// Create compartment
objects::compartment(&mut sim, "/cell/soma");
// Add ion channels
objects::na_channel(&mut sim, "/cell/soma/Na");
objects::k_channel(&mut sim, "/cell/soma/K");
// Inject current
objects::inject(&mut sim, "/cell/soma", 0.1); // 0.1 nA
// Run 100 ms
sim.run(100.0);
XPPAUT - Lorenz Attractor
use xppaut_rs::{BifurcationAnalyzer, examples};
let model = examples::lorenz(10.0, 28.0, 8.0/3.0);
let analyzer = BifurcationAnalyzer::new(model);
// Find and classify fixed points
let fixed_points = analyzer.find_fixed_points();
for fp in &fixed_points {
println!("{:?} - Stable: {}", fp.state, fp.stable);
}
// Detect Hopf bifurcation
let hopf = analyzer.detect_hopf_bifurcation("rho", 0.0..50.0);
NEURON - Ion Channel
use neuron_rs::{Section, Mechanism};
let mut soma = Section::new("soma");
soma.set_length(20.0); // Ξm
soma.set_diameter(20.0);
// Insert Hodgkin-Huxley mechanism
soma.insert(Mechanism::HH);
// Run simulation
let v = soma.record("v");
neuron_rs::finitialize(-65.0);
neuron_rs::continuerun(100.0);
Brian - Spiking Network
use brian_rs::{NeuronGroup, Synapses, Network, equations};
let eqs = equations!("dv/dt = (I - v) / tau : volt");
let group = NeuronGroup::new(100, eqs);
let synapses = Synapses::new(&group, &group);
synapses.connect(0.1); // 10% connection probability
let mut net = Network::new();
net.add(group);
net.add(synapses);
net.run(1.0); // 1 second
ðĄ Why Revive These Simulators?
| Problem | OldiesRules Solution |
|---|---|
| Research papers unreproducible | Run original models natively |
| Legacy code has buffer overflows | Rust memory safety |
| Single-threaded 1990s code | Modern parallelism with Rayon |
| Cryptic FORTRAN-77 | Clean, documented Rust |
| Abandoned projects | Active maintenance |
| Platform-specific binaries | Cross-platform Rust |
ð Ecosystem
OldiesRules is part of the Yatrogenesis scientific computing suite:
- HumanBrain - GPU neural simulation at biological scale
- Rosetta - Legacy code transpiler
- Stochastic-Framework - Pattern detection
Integration
use humanbrain::Neuron;
use oldies_rs::modeldb;
// Import ModelDB model
let model = modeldb::import(3670)?; // Traub model
// Use in HumanBrain simulation
let neuron: Neuron = model.into();
ðĨ Installation
# CLI only
cargo install --git https://github.com/Yatrogenesis/OldiesRules oldies-cli
# GUI + CLI
cargo install --git https://github.com/Yatrogenesis/OldiesRules oldies-gui
cargo install --git https://github.com/Yatrogenesis/OldiesRules oldies-cli
# From source
git clone https://github.com/Yatrogenesis/OldiesRules
cd OldiesRules
cargo build --release
# Run
./target/release/oldies # CLI
./target/release/oldies-gui # GUI
ð Comparison with Original
| Feature | Original | OldiesRules |
|---|---|---|
| Language | C/FORTRAN/C++ | Rust |
| Memory Safety | â | â |
| Parallel | Limited | Rayon + GPU |
| Cross-platform | Partial | â |
| Modern tooling | â | Cargo, tests, docs |
| File format support | Native only | All formats |
ðĪ Contributing
We welcome contributions! Areas of interest:
- Additional model file parsers
- More example models
- Performance optimizations
- Documentation improvements
ð License
MIT OR Apache-2.0
"They don't make 'em like they used to. But we can make 'em better."
lib.rs:
OldiesRules Core
Shared types and utilities for legacy simulator revival.
Supported Legacy Simulators
| Simulator | Original Language | Era | Status |
|---|---|---|---|
| GENESIS | SLI + C | 1980s-2014 | Semi-abandoned |
| XPPAUT | C + FORTRAN | 1990s | Hobby project |
| AUTO | FORTRAN | 1980s | Legacy |
| ModelDB | Various | 1996+ | Active but legacy |
Design Philosophy
- Preserve numerical equivalence with originals
- Modern Rust safety and performance
- HumanBrain integration ready
Dependencies
~1.7â2.5MB
~51K SLoC