Skip to main content

Crate organpool

Crate organpool 

Source
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.