{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2606-21961","title":"VegSim: A Geospatial World Model for Scenario-Conditioned Vegetation Simulation","arxiv_id":"2606.21961","date":"2026-06-20","proceeding":null,"authors":["Irene Iele","Elena Mulero Ayllón","Paolo Soda","Matteo Tortora"],"abstract":"Vegetation monitoring under climate stress requires answering not only how it will evolve given the expected weather, but how it would respond to alternative meteorological conditions. Forecasting models return the expected vegetation state for the observed weather and cannot answer these scenario-conditioned questions, because future weather is fixed to the recorded trajectory. We present VegSim, a geospatial world model for scenario-conditioned vegetation simulation. VegSim infers a latent vegetation state from sparse satellite-derived NDVI histories, past meteorological covariates, and static spatial context, propagates it forward under future weather forcing through recurrent latent dynamics, and decodes predictive NDVI quantiles at each lead time. Because future forcing enters as a controllable input, the same trained model supports probabilistic forecasting under observed weather and conditional simulation under user-defined meteorological forcing, without supervision on scenario responses. We evaluate VegSim on GreenEarthNet across in-distribution data and spatial, temporal, and joint spatial-temporal shift, where it achieves strong point and probabilistic accuracy against time series and Earth observation forecasting baselines while using a compact architecture. We then simulate vegetation responses across Europe under four meteorological scenarios, and in a France summer 2022 case study, obtaining spatially coherent patterns consistent with known sensitivity to temperature and precipitation. The code is available at https://github.com/arco-group/vegsim.","url_abs":"https://arxiv.org/abs/2606.21961","url_pdf":"https://arxiv.org/pdf/2606.21961","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.21961"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/arco-group/vegsim","reach":null}],"summary":{"ran":9,"ran_fixture":1,"ran_honours":1,"ran_draft_wrong":1,"unverified":6},"by_repo_kind":{"found_in_text":{"samples":18,"ran":12,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"28315f3d1207778b","entry":"AttentionPooling","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"28315f3d1207778b"}},{"code_sha256_prefix":"6f3fef70feb278a9","entry":"GRULatentDynamics","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6f3fef70feb278a9"}},{"code_sha256_prefix":"594a9f05cfcb0a9c","entry":"HistoryEncoder","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"594a9f05cfcb0a9c"}},{"code_sha256_prefix":"ddb5ec0b255fbe19","entry":"HorizonEmbedding","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ddb5ec0b255fbe19"}},{"code_sha256_prefix":"664fac7eeb82b406","entry":"PositionalEncoding","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"664fac7eeb82b406"}},{"code_sha256_prefix":"f300768dbd3888b3","entry":"QuantileDecoder","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f300768dbd3888b3"}},{"code_sha256_prefix":"7b0bbf6eb4afaac5","entry":"ResidualMLPDynamics","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7b0bbf6eb4afaac5"}},{"code_sha256_prefix":"7eabdba4bf764303","entry":"RiskHead","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7eabdba4bf764303"}},{"code_sha256_prefix":"3dcef890f8fbf2cb","entry":"StateSummarizer","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3dcef890f8fbf2cb"}},{"code_sha256_prefix":"609519da4afc620c","entry":"_normal_sample","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"609519da4afc620c"}},{"code_sha256_prefix":"357d84a515696305","entry":"_resolve_horizon_values","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"357d84a515696305"}},{"code_sha256_prefix":"c4de836a22000029","entry":"build_mlp","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c4de836a22000029"}},{"code_sha256_prefix":"a24906696b4c4fa0","entry":"DynamicsOutput","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a24906696b4c4fa0"}},{"code_sha256_prefix":"f76eb74950dc308c","entry":"FutureEncoder","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f76eb74950dc308c"}},{"code_sha256_prefix":"4833deaf30f5d8aa","entry":"RSSMLatentDynamics","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4833deaf30f5d8aa"}},{"code_sha256_prefix":"5f20f3138001a611","entry":"SpatialEncoder","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5f20f3138001a611"}},{"code_sha256_prefix":"f82971d8285226cc","entry":"TransformerLatentDynamics","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f82971d8285226cc"}},{"code_sha256_prefix":"e728d2561ebf5e13","entry":"VegetationWorldModel","repo":"arco-group/vegsim","repo_kind":"found_in_text","path":"src/models/world_model.py","file_url":"https://github.com/arco-group/vegsim/blob/HEAD/src/models/world_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e728d2561ebf5e13"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}