diff --git a/engine/src/worlds/venus/climate_params.json b/engine/src/worlds/venus/climate_params.json new file mode 100644 index 00000000..aded5ada --- /dev/null +++ b/engine/src/worlds/venus/climate_params.json @@ -0,0 +1,126 @@ +{ + "atmosphere": { + "pressure_bands": { + "polar_high_cut": 0.15, + "subpolar_low_cut": 0.30, + "subtropical_high_cut": 0.60, + "hadley_low_cut": 1.00, + "polar_high_hpa": 9200000.0, + "subpolar_low_hpa": 9190000.0, + "subtropical_high_hpa": 9200000.0, + "equatorial_low_hpa": 9195000.0 + }, + "pressure_terrain_modifiers": { + "mountain_per_0_1_elevation": 2.0, + "ocean_offset": 0.0, + "hot_land_threshold": 0.5, + "hot_land_offset": -1.0 + }, + "anomaly": { + "thermal_low_spawn_hpa": -5.0, + "cold_high_spawn_hpa": 5.0, + "tropical_low_spawn_hpa": -5.0, + "spawn_hot_temp_threshold": 0.90, + "spawn_cold_temp_threshold": 0.85, + "spawn_adjacent_cool_threshold": 0.88, + "spawn_ocean_hot_threshold": 0.95, + "decay_per_turn_hpa": 0.5, + "reinforce_per_turn_hpa": 0.8, + "max_anomaly_hpa": 10.0, + "drift_wind_fraction": 0.8, + "merge_radius_hexes": 2 + }, + "pressure_wind": { + "gradient_scale": 0.02, + "speed_scale": 0.07, + "coriolis_scale": 0.02 + }, + "humidity": { + "ocean_evap_rate": 0.0, + "soil_contribution": 0.0, + "forest_evapotranspiration": 0.0, + "wind_transport_fraction": 0.0, + "precipitation_rh_threshold": 99.0, + "precipitation_humidity_loss": 0.0, + "precipitation_moisture_gain": 0.0, + "mountain_barrier_block": 0.3, + "decay_per_turn": 0.0 + }, + "relative_humidity": { + "saturation_base": 0.0, + "saturation_temp_scale": 0.0 + }, + "dew_point": { + "rh_factor": 0.0 + }, + "cape": { + "lapse_rate_per_elevation": 0.001, + "temp_diff_scale": 0.1, + "humidity_scale": 0.0, + "stability_offset": 0.0, + "moisture_feedback_scale": 0.0 + }, + "event_thresholds": {}, + "event_effects": {} + }, + "moisture_relaxation": 0.0, + "ocean_evaporation_hops": 0, + "ocean_evaporation_hop_decay": 0.0, + "atmospheric_loss_rate": 0.0, + "water_boil_threshold": 0.5, + "surface_runoff_rate": 0.0, + "deep_earth_water": { + "volcano_self": 0.0, + "volcano_neighbor": 0.0, + "hot_spring_self": 0.0, + "hot_spring_neighbor": 0.0, + "hot_spring_max_temperature": 0.0, + "high_elevation_self": 0.0, + "high_elevation_threshold": 0.9 + }, + "wind_conductivity": 0.15, + "energy_scale": 0.001, + "equilibrium_relaxation": 0.005, + "evaporation_rate": 0.0, + "moisture_transport": 0.0, + "precipitation_threshold": 99.0, + "moisture_decay": 1.0, + "quality_up_threshold": 10, + "quality_down_threshold": 5, + "lake_thermal_conductivity": 0.0, + "river_moisture_transport": 0.0, + "mountain_rain_shadow_block": 0.1, + "wind_band_polar_cut": 0.15, + "wind_band_polar_front_cut": 0.30, + "wind_band_ferrel_cut": 0.50, + "wind_band_subtropical_cut": 0.60, + "wind_band_hadley_cut": 0.85, + "wind_speed_polar": 0.7, + "wind_speed_polar_front": 0.65, + "wind_speed_ferrel": 0.7, + "wind_speed_subtropical": 0.65, + "wind_speed_hadley": 0.7, + "wind_speed_itcz": 0.65, + "wind_friction_land": 0.9, + "wind_friction_mountain_downwind": 0.5, + "solar_min": 0.88, + "solar_max": 0.98, + "orbital_cycle_1_period": 1170, + "orbital_cycle_1_amplitude": 0.003, + "orbital_cycle_1_phase": 0.0, + "orbital_cycle_2_period": 780, + "orbital_cycle_2_amplitude": 0.002, + "orbital_cycle_2_phase": 1.05, + "orbital_cycle_3_period": 2430, + "orbital_cycle_3_amplitude": 0.004, + "orbital_cycle_3_phase": 2.40, + "orbital_moisture_coupling": 0.0, + "sea_level_temp_sensitivity": 0.0, + "sea_level_equilibrium_temp": 0.95, + "water_freeze_threshold": 0.0, + "aerosol_background": 0.15, + "aerosol_desert_dust": 0.0, + "aerosol_volcanic_outgas": 0.08, + "acid_cloud_albedo": 0.70, + "acid_cloud_greenhouse_multiplier": 2.5 +} diff --git a/engine/src/worlds/venus/climate_spec.json b/engine/src/worlds/venus/climate_spec.json new file mode 100644 index 00000000..89632994 --- /dev/null +++ b/engine/src/worlds/venus/climate_spec.json @@ -0,0 +1,65 @@ +{ + "terrain_classification": { + "comment": "Venus terrain rules — ordered, first match wins. No biological biomes. All surface is extreme-temperature rock.", + "rules": [ + { + "comment": "Active lava field — extreme temp + volcanic tag", + "and": [ + { "field": "temperature", "op": ">=", "value": 0.95 }, + { "field": "elevation", "op": "<", "value": 0.8 } + ], + "terrain": "lava_field" + }, + { + "comment": "Caldera — very high elevation volcanic summit", + "and": [ + { "field": "elevation", "op": ">", "value": 0.80 } + ], + "terrain": "caldera" + }, + { + "comment": "Highland tessera — deformed plateaus above 0.65", + "and": [ + { "field": "elevation", "op": ">", "value": 0.65 } + ], + "terrain": "basalt_highland" + }, + { + "comment": "Volcanic plains — mid elevation, very hot", + "and": [ + { "field": "elevation", "op": ">=", "value": 0.25 }, + { "field": "elevation", "op": "<=", "value": 0.65 }, + { "field": "temperature", "op": ">", "value": 0.80 } + ], + "terrain": "volcanic_plains" + }, + { + "comment": "Lowland basin — depressed terrain, extreme heat", + "and": [ + { "field": "elevation", "op": "<", "value": 0.25 }, + { "field": "temperature", "op": ">", "value": 0.85 } + ], + "terrain": "lowland_basin" + }, + { + "comment": "Default: basalt highland for anything else", + "and": [], + "terrain": "basalt_highland" + } + ] + }, + "terrain_transitions": {}, + "ley_network": { + "enabled": false, + "anchor_spawn_chance": 0.0, + "link_max_distance": 0, + "residue_decay_per_turn": 1.0, + "quality_threshold_for_node": 99 + }, + "atmospheric_chemistry": { + "enabled": true, + "co2_concentration": 0.965, + "so2_concentration": 0.015, + "acid_rain_threshold": 0.0 + } +} diff --git a/engine/src/worlds/venus/hydrology_params.json b/engine/src/worlds/venus/hydrology_params.json new file mode 100644 index 00000000..8ea8bd41 --- /dev/null +++ b/engine/src/worlds/venus/hydrology_params.json @@ -0,0 +1,33 @@ +{ + "rainfall": { + "multiplier_tropical": 0.0, + "multiplier_temperate": 0.0, + "multiplier_cold": 0.0, + "multiplier_frozen": 0.0, + "multiplier_desert_terrain": 0.0 + }, + "source_bonuses": {}, + "depression_fill": { + "epsilon": 0.0001 + }, + "lakes": { + "depth_threshold": 9999.0, + "inland_sea_min_tiles": 9999 + }, + "rivers": { + "threshold_tropical": 9999.0, + "threshold_temperate": 9999.0, + "threshold_cold": 9999.0, + "threshold_frozen": 9999.0, + "threshold_desert": 9999.0, + "width_thresholds": [9999.0, 9999.0, 9999.0], + "width_labels": ["stream", "river", "major_river", "great_river"] + }, + "deltas": { + "accumulation_threshold": 9999.0, + "max_branches": 0 + }, + "frozen_river_temperature": 0.0, + "lake_moisture_injection": 0.0, + "river_moisture_per_turn": 0.0 +} diff --git a/engine/src/worlds/venus/manifest.json b/engine/src/worlds/venus/manifest.json new file mode 100644 index 00000000..319c0020 --- /dev/null +++ b/engine/src/worlds/venus/manifest.json @@ -0,0 +1,23 @@ +{ + "id": "venus", + "name": "Venus — Runaway Greenhouse", + "description": "Dense CO2 atmosphere, 460°C surface, no water cycle. Active volcanism shapes tessera highlands and basalt plains.", + "has_climate": true, + "has_weather": false, + "has_ecology": false, + "grid_width": 40, + "grid_height": 24, + "polar_rows": 0, + "physics_features": { + "water_cycle": false, + "weather_events": false, + "ecology": false, + "volcanism": true, + "co2_cycle": false, + "dust_storms": false, + "acid_clouds": true + }, + "subscribes_biomes": ["volcanic_world", "elevated", "special"], + "subscribes_substrates": ["substrates"], + "subscribes_events": [] +} diff --git a/engine/src/worlds/venus/runtime_biomes.json b/engine/src/worlds/venus/runtime_biomes.json new file mode 100644 index 00000000..3d1ff378 --- /dev/null +++ b/engine/src/worlds/venus/runtime_biomes.json @@ -0,0 +1,7 @@ +{ + "runtime_biomes": [ + { "id": "lava_flow", "tags": ["is_volcanic", "is_dry"], "normalizes_to": "volcanic_plains" }, + { "id": "cooled_basalt", "tags": ["is_dry"], "normalizes_to": "volcanic_plains" }, + { "id": "lowland_basin", "tags": ["is_dry"], "normalizes_to": "volcanic_plains" } + ] +}