SWIM - Concept
The “Scalable World Interactive Model” (SWIM) is an an interactive climate system-model, for exploring future pathways and sensitivity to options and uncertainties. enabling users to explore - in a web-browser - future pathways and the relative sensitivity to diverse policy options and scientific uncertainties, adjusting hundreds of parameters with immediate (<1sec) response on dozens of plots.SWIM derives from the former “Java Climate Model (JCM) - developed and applied for research and education since 2000 (see timeline), but becoming less accessible as web tech evolved, hence the rewrite and redesign in a new language Scala3, with a new web-gui applying scala.js.
The concept "Scalable" is inherent to Scala code, but also applies here over time, space (regional detail), and complexity. The aim is to enable users to zoom in and out, from the big-picture of longterm global climate stabilisation goals, to near-term detailed pathways for small countries. Code structure also anticipates extension to include other global challenges. "Interactive" is also essential to the concept - people learn better by experiment than by reading static reports, and dynamic response adds an extra dimension to visualisation.
So please try SWIM, bearing in mind it's still a "prototype" to prove the concept, not yet complete or self-explanatory .
A dynamic system, not a data or scenario visualiser
- Instant dynamic response to infinite parameter combinations, everything is connected.
- Only history has data - the future calculates according to your choices.
- The model works in your computer (not on a server)
- Real models, not trivial functions: for example… :
- Demography: - 5yr age-groups for each country, including migration
- Electricity supply: - Dynamic cost-driven investments
- Land use change: - Biome change maps, explore uncertainty in historical fluxes
- Policies: - National pledges, diverse equitable sharing options
- Scenarios: - Inverse stabilisation scenarios, blend with SSPs
- Chemistry: - Atmospheric interactions, ocean carbonate /pH
- Forcing: - All greenhouse gases and aerosols, incl aviation cirrus
- Ocean carbon / heat: Diffusion + upwelling with~ 40 ocean layers, tuned to GCMs
- Timescale: 1750 - 2250, 1yr steps, smooth discontinuity history-future
- Regions: calculates by nations or diverse region-sets - subnational planned
- Feedbacks e.g. climate => soil respiration, economy => fertility
- Flexible loop order =>top-down/bottom-up, dependencies =>efficient recalculation
- ~ 50 science modules,
- ~ 22000 lines of code (excl comments /blank/libraries)
- ~ 250 parameters (user-adjustable)
- ~ 165 plots (curve-sets) (excl derivatives eg. ratios)
- ~ 100 history data-tables
- ~ 50k words doc (broken - still to refix)
Yet all this now just works in a web browser, even on a tablet or phone - although you need a big screen to appreciate it
Please note this is still a prototype, a snapshot of work-in-progress, here online already as a proof of concept that this complex system model can calculate efficiently and robustly using scala.js within the browser. There are still gaps, in the both the model and the user-interface.
Many features of the JVM desktop-version are still missing in this web-version, including
- science documentation / labels
- histograms, scatterplots, maps,
- calculation scripts, parallel worlds.
- regional LUC (land-use-change) - as biome-maps not yet adapted to scala-js (depends java libraries).
- attribution (responsibility) - still to be converted
- The link economy -> energy -> emissions is broken (as emissions follow policies).
- The science, data, policy-pledges etc. will be updated once the conversion is finished.
- new impacts and cost functions anticipated
So please visit again a few weeks later to see what's new.
Next: How to Use
(Overview)