venuss 0.0.2

Venus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
pub struct HabitabilityZone {
    pub name: &'static str,
    pub temperature_range_k: (f64, f64),
    pub water_availability: f64,
}

impl HabitabilityZone {
    pub fn habitability_score(&self) -> f64 {
        let temp_penalty = ((self.temperature_range_k.0 - 300.0).abs() / 500.0).min(1.0);
        (1.0 - temp_penalty) * self.water_availability
    }
}

pub fn cloud_layer_microhabitat() -> HabitabilityZone {
    HabitabilityZone {
        name: "Temperate cloud layer (50-60 km)",
        temperature_range_k: (260.0, 330.0),
        water_availability: 0.05,
    }
}

pub fn habitability_zones() -> Vec<HabitabilityZone> {
    vec![cloud_layer_microhabitat()]
}