Expand description
Organ physics substrate — cardiac and respiratory simulation.
organpool simulates autonomous organ systems with integer-only physics,
wall-clock timing, and chemical modulation by the autonomic nervous system.
§Organs
Heart — 4-zone cardiac conduction (SA → AV → Conduction → Myocardium) with ion channel cycling, escape rhythms, gap junctions, calcium clock, and HRV generation. Modulated by NE (sympathetic), ACh (parasympathetic), and cortisol.
Lungs — Respiratory cycle (Inspiration → EndInspiratory → Expiration → EndExpiratory) with central pattern generator, CO2/O2 gas exchange, and autonomic modulation. Couples to the heart via respiratory sinus arrhythmia.
Each organ runs its own thread with its own chemical environment. External sources inject chemicals; the organ metabolizes them internally. If nothing injects, chemicals decay to resting baselines and the organ operates at its intrinsic rate. Denervated organs still function.
§Architecture
Brain injects ──→ Heart (thread) ──→ BeatEvent channel
↑ RSA (AtomicU8)
Brain injects ──→ Lungs (thread) ──→ BreathEvent channel§Usage
use organpool::CardiacPipeline;
use std::time::Duration;
// Start the heart — it begins beating immediately at intrinsic rate
let heart = CardiacPipeline::start();
// Inject NE (sympathetic burst — decays over ~2.5s half-life)
heart.inject_ne(200);
// Observe beats
while let Ok(beat) = heart.beats.recv_timeout(Duration::from_secs(2)) {
println!("Beat #{} IBI={}μs", beat.beat_number, beat.ibi_us);
}
// Stop the heart
let snapshot = heart.stop();
println!("Final BPM: {}", snapshot.last_bpm);Re-exports§
pub use cardiac::CalciumClockConfig;pub use cardiac::CardiacConfig;pub use cardiac::CardiacPhase;pub use cardiac::CardiacZone;pub use cardiac::GapJunctionConfig;pub use cardiac::HrvConfig;pub use cardiac::MetabolismConfig;pub use cardiac::RsaSource;pub use cardiac::ZoneConfig;pub use pipeline::CardiacPipeline;pub use pipeline::Chemical;pub use pipeline::ChemicalInjection;pub use pipeline::HeartHandle;pub use pipeline::HeartSnapshot;pub use vitals::BeatEvent;pub use vitals::CardiacRhythm;pub use vitals::CardiacVitals;pub use respiratory::RespiratoryConfig;pub use respiratory::RespiratoryPhase;pub use respiratory_pipeline::LungHandle;pub use respiratory_pipeline::LungSnapshot;pub use respiratory_pipeline::RespiratoryChemical;pub use respiratory_pipeline::RespiratoryInjection;pub use respiratory_pipeline::RespiratoryPipeline;pub use respiratory_vitals::BreathEvent;pub use respiratory_vitals::RespiratoryRhythm;pub use respiratory_vitals::RespiratoryVitals;
Modules§
- cardiac
- Cardiac cell physics — ion channel cycle, zone types, configuration.
- pipeline
- Cardiac conduction pipeline — autonomous heart engine.
- respiratory
- Respiratory cycle physics — central pattern generator, gas exchange, configuration.
- respiratory_
pipeline - Respiratory pipeline — autonomous lung engine.
- respiratory_
vitals - Respiratory vital sign diagnostics — breaths per minute, cycle statistics, rhythm classification.
- vitals
- Cardiac vital sign diagnostics — BPM, IBI statistics, rhythm classification.