Open Sustainable Technology

A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Browse accepted projects | Review proposed projects | Propose new project | Open Issues

SDEverywhere

The framework for system dynamics models created for the global climate simulator En-ROADS, the climate policy simulator C-ROADS and the Energy Policy Simulator.
https://github.com/climateinteractive/sdeverywhere

Last synced: about 10 hours ago
JSON representation

Repository metadata

SDEverywhere translates System Dynamics models from Vensim to C and WebAssembly

README

        

# SDEverywhere    ![](https://github.com/climateinteractive/SDEverywhere/actions/workflows/build.yaml/badge.svg)

[SDEverywhere](http://sdeverywhere.org/) is a collection of libraries and command line tools that help you improve the quality and expand the reach of a [System Dynamics](http://www.systemdynamics.org/what-is-system-dynamics/) model.
SDEverywhere allows for unit testing, continuous integration, the ability to compare model runs, and a toolchain to transform a model into C, JavaScript, and WebAssembly code.

Using SDEverywhere, you can deploy interactive System Dynamics models on mobile, desktop, and the web for policymakers and the public.
Or you could perform model analysis using general-purpose languages, running the model as high-performance C code.

By following the ["Quick Start"](#quick-start) instructions below, within minutes you can turn a Vensim model like this:

sde-vensim




...into an interactive (and fully customizable) simulator that runs in any web browser:

sde-explorer

## Supported Platforms

The SDEverywhere tools can be used on on any computer running macOS, Windows, or Linux.
The libraries and code generated by SDEverywhere can be run in web browsers on almost any device (including phones and tablets) as well as on the server side (using C/C++ or WebAssembly).

## Supported File Formats

SDEverywhere currently supports a broad range of System Dynamics models in [Vensim](https://www.vensim.com) format and handles many features of the [Vensim modeling language](https://www.vensim.com/documentation/index.html?ref_language.htm), including subscripts, subranges, and subscript mapping.
The full list of Vensim functions that are implemented in SDEverywhere can be found on the [Supported Vensim Functions](https://github.com/climateinteractive/SDEverywhere/wiki/Supported-Vensim-Functions) page in the SDEverywhere [wiki](https://github.com/climateinteractive/SDEverywhere/wiki).

Support for models in [XMILE](http://docs.oasis-open.org/xmile/xmile/v1.0/xmile-v1.0.html) format (as used by e.g., [Stella](https://www.iseesystems.com)) is not yet available.
However, our long-term vision is for SDEverywhere to have first-class support for both Vensim and XMILE formats.
Please get in touch on the [discussion board](https://github.com/climateinteractive/SDEverywhere/discussions) if you are interested in helping to add support for XMILE.

## Features

### Live Editing

SDEverywhere provides a live development environment and configuration files that allow you to see your edits in real time.
Every time you save changes to your Vensim model or to the CSV config files, the local builder automatically rebuilds your project and the changes appear instantaneously in your browser, no manual reloads required.

The following video demonstrates using a text editor to make simple edits in the CSV config files that affect the appearance and behavior of the generated web application.
In the video, we tweak the color of a graph plot, change an axis label, and set a new default for a slider.
All of these settings and more can be configured by editing the CSV files in your favorite text editor or in Excel.

https://github.com/climateinteractive/SDEverywhere/assets/438425/cd495776-5744-40b9-a922-8ad5b138106c

### Quality Checks and Comparisons

SDEverywhere includes extensive QA (quality assurance) tools that you can run locally on your machine as you develop your model or in the cloud in a continuous integration environment.
There is support for two different kinds of tests:

- **_Checks:_** Check tests can be used to verify that your model behaves according to some guidelines (or conforms to your mental models). For example, you can have checks that verify that stocks are always positive, or that some output variable produces values that are close to historical reference data.
- **_Comparisons:_** Comparison tests can be used to track changes to your model between two different versions. For example, you can run your model over thousands of input scenarios and see at a glance how your model outputs differ from a previous version.

In the following video, we demonstrate how the model-check tools can be run alongside Vensim to give you immediate feedback whenever you make changes to your model.
In this example, we have an existing "check" test that verifies that the different population variables always produce values in the range 0 to 10000.
If we multiply a variable by -1 and save the model file, the builder detects the change and re-runs all the defined check and comparison tests.

Since the "Recovered Population" variable is now producing negative values, there is a failing check that gets flagged in the Model Check report, showing that the data now goes outside the expected (green) range.
Additionally, the comparison tests show how the new model results differ from the previous ones over many different input scenarios.

https://github.com/climateinteractive/SDEverywhere/assets/438425/b6f05b3f-f18a-48c4-89a9-80f1d8bfbfde

## Core Functionality

At its core, SDEverywhere includes a [transpiler](https://en.wikipedia.org/wiki/Source-to-source_compiler) that can read a [Vensim](https://www.vensim.com/documentation/index.html?ref_language.htm) model and generate a high-performance version of that model in the C programming language.

The [`sde`](./packages/cli) command line tool — in addition to generating C code — provides a plugin-based build system for extended functionality:

- [plugin-config](./packages/plugin-config) allows you to configure your model/library/app using CSV files
- [plugin-wasm](./packages/plugin-wasm) converts the generated C model into a fast WebAssembly module for use in a web browser or Node.js application
- [plugin-worker](./packages/plugin-worker) generates a Web Worker that can be used to run the WebAssembly model in a separate thread for improved user experience
- [plugin-vite](./packages/plugin-vite) provides integration with [Vite](https://github.com/vitejs/vite) for developing a library or application around your generated model
- [plugin-check](./packages/plugin-check) allows for running QA checks and comparison tests on your model every time you make a change

Additionally, the [runtime](./packages/runtime) and [runtime-async](./packages/runtime-async) packages make it easy to interact with your generated WebAssembly model in a JavaScript- or TypeScript-based application.

For more details on all of these packages, refer to the ["Packages"](#packages) section below.

## Requirements

The SDEverywhere libraries and tools can be used on any computer running macOS, Windows, or Linux.

SDEverywhere requires [Node.js](https://nodejs.org) version 18 or later (the current LTS version 20 is recommended).
Node.js is a cross-platform runtime environment that allows for running JavaScript-based tools (like SDEverywhere) on macOS, Windows, and Linux computers.

Note: It is not necessary to have extensive knowledge of Node.js and JavaScript in order to use SDEverywhere, but a one-time download of Node.js is necessary to get started.
Once you [download and install](https://nodejs.org) Node.js, you can run the commands listed on this page that start with `npm`.
(The `npm` command line tool is included when you install the Node.js runtime environment.)

If you are already familiar with Node.js and have it installed, note that SDEverywhere is also compatible with the [pnpm](https://pnpm.io) and [Yarn](https://classic.yarnpkg.com/) package managers, which can be used as an alternative to `npm`.

## Quick Start

The following video shows what it will look like when you follow the steps in this section.
In this video, we demonstrate commands that turn a Vensim model (the SIR model from `examples/sir`) into a web application project.

https://github.com/climateinteractive/SDEverywhere/assets/438425/c0c81bcd-f5a5-4cf1-8698-be46118d7c9c

As shown in the video above, the quickest way to get started with SDEverywhere is to open your terminal emulator ("Terminal" on macOS or Linux, or "Command Prompt" on Windows) and type the commands explained below.

If you already have a directory containing a Vensim `mdl` file, change to that directory first.
(The script will generate some new files in that directory, so if you would prefer, feel free to create a fresh directory that includes just your `mdl` file.)

```sh
# Change to the directory containing your `mdl` file:
cd my-project-folder
```

Or, if you don't already have a Vensim `mdl` file, and/or you want to evaluate SDEverywhere for the first time, you can create an empty directory, and the script will provide a sample model to get you started:

```sh
# Create an empty directory and change to that directory:
mkdir my-project-folder
cd my-project-folder
```

Once you are in the correct folder, run the `create` script:

```sh
# Use `npm` to run the "create" script:
npm create @sdeverywhere@latest

# Or, if you use pnpm:
pnpm create @sdeverywhere@latest

# Or, if you use Yarn:
yarn create @sdeverywhere
```

Answer a few questions, and within minutes you can have a functional web application that runs your model!

## Documentation

Detailed API and usage documentation for each `@sdeverywhere` package can be found in the ["Packages"](#packages) section below.

Additional user guides and documentation for contributors can be found in the [SDEverywhere wiki](https://github.com/climateinteractive/SDEverywhere/wiki).
For example:

- For guidance on designing and building a full-featured web application around your model, refer to [Creating a Web Application](https://github.com/climateinteractive/SDEverywhere/wiki/Creating-a-Web-Application).
- To learn how to embed an SD model into a native C/C++ application or library, refer to [Integrating a Model into a Native Application](https://github.com/climateinteractive/SDEverywhere/wiki/Integrating-a-Model-into-a-Native-Application).

## Caveats

SDEverywhere has been used to generate code for complex models with thousands of equations, but your model may use features of Vensim that SDEverywhere cannot translate yet.
Please fork our code and contribute!
Here are some prominent current limitations:

- Sketch information, the visual representation of the model, is not converted.
- Only the most common [Vensim functions](https://github.com/climateinteractive/SDEverywhere/wiki/Supported-Vensim-Functions) are implemented.
- All models run using the Euler integrator.
- Strings are not supported.
- You must rewrite tabbed arrays as separate, non-apply-to-all variables.
- You must rewrite equations that use macros or code them in C.

Tabbed arrays and macros are removed from the model during preprocessing and written to the `removals.txt` file for your reference.

## SDEverywhere in Production

- [Climate Interactive](https://www.climateinteractive.org) has been using SDEverywhere in production since 2019 for their popular simulation tools:
- [En-ROADS](https://en-roads.climateinteractive.org) — an online global climate simulator that allows users to explore the impact of policies on hundreds of factors like energy prices, temperature, air quality, and sea level rise
- [C-ROADS](https://c-roads.climateinteractive.org) — an online policy simulator (also available as a macOS or Windows desktop application) that helps people understand the long-term climate impacts of national and regional greenhouse gas emission reductions at the global level
- [Energy Innovation](https://energyinnovation.org/) uses SDEverywhere to produce their [Energy Policy Simulator](https://energypolicy.solutions/).

## Packages

SDEverywhere is developed in a monorepo structure.
Each package listed in the table below is developed as a separate npm package/library under the `packages` directory in this repository.
All packages are published independently to the [npm registry](https://www.npmjs.com).

If you're new to SDEverywhere, refer to the ["Quick Start"](#quick-start) section above.
Running the `npm create @sdeverywhere@latest` command described in that section will take care of setting up a recommended project structure and will install/configure the necessary `@sdeverywhere` packages from the table below.

If you want more control over which packages are installed, or for API documentation and configuration instructions, refer to the links below.

Packages marked with an asterisk (\*) are implementation details.
Most users won't need to interact with these implementation packages directly, but they may be useful for advanced use cases (for example, if you want to create a new build plugin or a custom test runner).


Package
Version
Links


Project creation


@sdeverywhere/create


Source | 
Docs | 
Changelog



Command line interface


@sdeverywhere/cli


Source | 
Docs | 
Changelog



Build plugins


@sdeverywhere/plugin-config


Source | 
Docs | 
Changelog



@sdeverywhere/plugin-wasm


Source | 
Docs | 
Changelog



@sdeverywhere/plugin-worker


Source | 
Docs | 
Changelog



@sdeverywhere/plugin-vite


Source | 
Docs | 
Changelog



@sdeverywhere/plugin-check


Source | 
Docs | 
Changelog



Runtime libraries


@sdeverywhere/runtime


Source | 
Docs | 
Changelog



@sdeverywhere/runtime-async


Source | 
Docs | 
Changelog



Build/CLI implementation


@sdeverywhere/build *


Source | 
Docs | 
Changelog



@sdeverywhere/compile *


Source | 
Docs | 
Changelog



`model-check` implementation


@sdeverywhere/check-core *


Source | 
Docs | 
Changelog



@sdeverywhere/check-ui-shell *


Source | 
Docs | 
Changelog

## Contributing

SDEverywhere covers a subset of the Vensim modeling language used in models that have been deployed with it.
There is still much to contribute, for example:

- Expand the Vensim parser to cover more of the language syntax, such as documentation strings. (See the related [antlr4-vensim](https://github.com/climateinteractive/antlr4-vensim) project for more details.)
- Enhance the C code generator to produce code for new language features now that you can parse them.
- Implement more Vensim functions. This is the easiest way to help out.
- Add support for the XMILE file format.
- Target languages other than C, such as R or Rust. (If you want Python, check out the excellent [PySD](https://github.com/JamesPHoughton/pysd)).

For more guidance on contributing to SDEverywhere, please consult the [wiki](https://github.com/climateinteractive/SDEverywhere/wiki).

## License

All packages developed in the SDEverywhere repository are distributed under the MIT license.
See [LICENSE](./LICENSE) for more details.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 27 days ago

Total Commits: 542
Total Committers: 8
Avg Commits per committer: 67.75
Development Distribution Score (DDS): 0.36

Commits in past year: 61
Committers in past year: 5
Avg Commits per committer in past year: 12.2
Development Distribution Score (DDS) in past year: 0.377

Name Email Commits
Todd Fincannon t****d@t****m 347
Chris Campbell c****l@c****g 128
climateinteractive-bot 1****t 29
Travis Franck t****k@c****g 16
dependabot[bot] 4****] 11
Todd Fincannon 6****I 8
Travis Franck 1****k 2
ivan-perl a****e@m****u 1

Committer domains:


Issue and Pull Request metadata

Last synced: about 11 hours ago

Total issues: 178
Total pull requests: 185
Average time to close issues: 2 months
Average time to close pull requests: 6 days
Total issue authors: 7
Total pull request authors: 6
Average comments per issue: 0.56
Average comments per pull request: 0.95
Merged pull request: 154
Bot issues: 0
Bot pull requests: 33

Past year issues: 126
Past year pull requests: 144
Past year average time to close issues: 7 days
Past year average time to close pull requests: 7 days
Past year issue authors: 6
Past year pull request authors: 6
Past year average comments per issue: 0.51
Past year average comments per pull request: 0.84
Past year merged pull request: 113
Past year bot issues: 0
Past year bot pull requests: 33

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/climateinteractive/sdeverywhere

Top Issue Authors

  • chrispcampbell (137)
  • ToddFincannonEI (17)
  • ChettakattuA (13)
  • travisfranck (7)
  • ulrgol (2)
  • jrissman (1)
  • ToddFincannon (1)

Top Pull Request Authors

  • chrispcampbell (104)
  • climateinteractive-bot (34)
  • dependabot[bot] (33)
  • ToddFincannonEI (11)
  • travisfranck (2)
  • efad2022 (1)

Top Issue Labels

  • improvement (100)
  • pkg:compile (42)
  • bug (31)
  • feature (17)
  • pkg:cli (16)
  • documentation (16)
  • dependencies (15)
  • pkg:create (12)
  • pkg:plugin-check (11)
  • pkg:check-ui-shell (9)
  • pkg:plugin-wasm (8)
  • pkg:plugin-vite (8)
  • pkg:plugin-worker (7)
  • pkg:plugin-config (6)
  • pkg:build (5)
  • pkg:parse (5)
  • pkg:runtime (3)
  • plugin-config (3)
  • pkg:template-default (2)
  • pkg:runtime-async (2)
  • Medium Priority (1)
  • pkg:check-core (1)

Top Pull Request Labels

  • autorelease: tagged (34)
  • dependencies (33)

Package metadata

npmjs.org: @sdeverywhere/compile

The core Vensim to C compiler for the SDEverywhere tool suite.

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.7.12 (published 5 days ago)
  • Last Synced: 2024-02-28T18:33:50.451Z (about 11 hours ago)
  • Versions: 13
  • Dependent Packages: 3
  • Dependent Repositories: 1
  • Downloads: 142 Last month
  • Rankings:
    • Forks count: 5.361%
    • Dependent packages count: 5.901%
    • Stargazers count: 6.223%
    • Average: 7.509%
    • Downloads: 9.731%
    • Dependent repos count: 10.331%
  • Maintainers (2)
npmjs.org: @sdeverywhere/build

This package provides the core build and plugin API for [SDEverywhere](https://github.com/climateinteractive/SDEverywhere).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.3.4 (published 5 days ago)
  • Last Synced: 2024-02-28T18:33:50.792Z (about 11 hours ago)
  • Versions: 8
  • Dependent Packages: 7
  • Dependent Repositories: 1
  • Downloads: 170 Last month
  • Rankings:
    • Dependent packages count: 2.774%
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Average: 7.724%
    • Dependent repos count: 10.331%
    • Downloads: 13.93%
  • Maintainers (2)
npmjs.org: @sdeverywhere/runtime

This package provides a simplified API around a System Dynamics model as generated by [SDEverywhere](https://github.com/climateinteractive/SDEverywhere) and compiled to a WebAssembly (Wasm) module via [Emscripten](https://emscripten.org).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.2 (published 5 months ago)
  • Last Synced: 2024-02-28T18:33:50.123Z (about 11 hours ago)
  • Versions: 4
  • Dependent Packages: 4
  • Dependent Repositories: 1
  • Downloads: 85 Last month
  • Rankings:
    • Dependent packages count: 4.515%
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Average: 7.869%
    • Dependent repos count: 10.331%
    • Downloads: 12.916%
  • Maintainers (2)
npmjs.org: @sdeverywhere/runtime-async

This package provides an implementation of the `ModelRunner` interface (from the `@sdeverywhere/runtime` package) that uses a Web Worker (in the browser) or a worker thread (in a Node.js app) to run the model asynchronously off the main JavaScript thread.

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.2 (published 5 months ago)
  • Last Synced: 2024-02-28T18:33:49.632Z (about 11 hours ago)
  • Versions: 3
  • Dependent Packages: 3
  • Dependent Repositories: 1
  • Downloads: 79 Last month
  • Rankings:
    • Forks count: 5.361%
    • Dependent packages count: 5.901%
    • Stargazers count: 6.223%
    • Average: 8.31%
    • Dependent repos count: 10.331%
    • Downloads: 13.736%
  • Maintainers (2)
npmjs.org: @sdeverywhere/check-core

This package provides the core implementation of SDEverywhere's system dynamics model checking and comparison functionality.

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.1.1 (published 9 months ago)
  • Last Synced: 2024-02-28T18:33:49.904Z (about 11 hours ago)
  • Versions: 2
  • Dependent Packages: 3
  • Dependent Repositories: 1
  • Downloads: 47 Last month
  • Rankings:
    • Forks count: 5.361%
    • Dependent packages count: 5.901%
    • Stargazers count: 6.223%
    • Average: 9.195%
    • Dependent repos count: 10.331%
    • Downloads: 18.158%
  • Maintainers (2)
npmjs.org: @sdeverywhere/check-ui-shell

This package provides a complete user interface for a model check/comparison report as generated by [SDEverywhere](https://github.com/climateinteractive/SDEverywhere).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.3 (published 6 months ago)
  • Last Synced: 2024-02-28T18:33:50.543Z (about 11 hours ago)
  • Versions: 6
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 38 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Dependent packages count: 8.855%
    • Average: 9.591%
    • Dependent repos count: 10.331%
    • Downloads: 17.185%
  • Maintainers (2)
npmjs.org: @sdeverywhere/cli

Contains the `sde` command line interface for the SDEverywhere tool suite.

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.7.18 (published 5 days ago)
  • Last Synced: 2024-02-28T18:33:50.168Z (about 11 hours ago)
  • Versions: 19
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 210 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Downloads: 8.656%
    • Average: 10.308%
    • Dependent repos count: 10.331%
    • Dependent packages count: 20.968%
  • Maintainers (2)
npmjs.org: @sdeverywhere/plugin-config

This package provides a plugin that reads CSV files used to configure a library or app around a System Dynamics model generated by [SDEverywhere](https://github.com/climateinteractive/SDEverywhere).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.4 (published 4 months ago)
  • Last Synced: 2024-02-28T18:33:50.068Z (about 11 hours ago)
  • Versions: 7
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 15 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Dependent repos count: 10.331%
    • Average: 10.883%
    • Downloads: 11.532%
    • Dependent packages count: 20.968%
  • Maintainers (2)
npmjs.org: @sdeverywhere/plugin-vite

This package provides a plugin that uses Vite and a given Vite configuration file to bundle an application or library as part of the [SDEverywhere](https://github.com/climateinteractive/SDEverywhere) builder process (i.e., `sde bundle` or `sde dev`).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.1.8 (published 5 months ago)
  • Last Synced: 2024-02-28T18:33:50.851Z (about 11 hours ago)
  • Versions: 9
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 23 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Dependent repos count: 10.331%
    • Average: 11.979%
    • Downloads: 17.012%
    • Dependent packages count: 20.968%
  • Maintainers (2)
npmjs.org: @sdeverywhere/plugin-check

This package provides a plugin that runs model checks and comparison tests for a given System Dynamics model generated by [SDEverywhere](https://github.com/climateinteractive/SDEverywhere).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.3.4 (published 5 months ago)
  • Last Synced: 2024-02-28T18:33:49.618Z (about 11 hours ago)
  • Versions: 13
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 24 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Dependent repos count: 10.331%
    • Average: 11.979%
    • Downloads: 17.012%
    • Dependent packages count: 20.968%
  • Maintainers (2)
npmjs.org: @sdeverywhere/plugin-worker

This package provides a plugin that generates a `worker.js` file that can run a System Dynamics model (as generated by [SDEverywhere](https://github.com/climateinteractive/SDEverywhere)) asynchronously in a Web Worker or Node.js worker thread.

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.3 (published 5 months ago)
  • Last Synced: 2024-02-28T18:33:49.500Z (about 11 hours ago)
  • Versions: 8
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 35 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Dependent repos count: 10.331%
    • Average: 12.208%
    • Downloads: 18.158%
    • Dependent packages count: 20.968%
  • Maintainers (2)
npmjs.org: @sdeverywhere/plugin-wasm

This package provides a plugin that builds a WebAssembly (Wasm) module for a given System Dynamics model generated by [SDEverywhere](https://github.com/climateinteractive/SDEverywhere).

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.3 (published 5 days ago)
  • Last Synced: 2024-02-28T18:33:50.436Z (about 11 hours ago)
  • Versions: 8
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 94 Last month
  • Rankings:
    • Forks count: 5.442%
    • Stargazers count: 6.223%
    • Dependent repos count: 10.331%
    • Average: 12.361%
    • Downloads: 18.84%
    • Dependent packages count: 20.968%
  • Maintainers (2)
npmjs.org: @sdeverywhere/create

Create a new SDEverywhere project with minimal configuration

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.2.9 (published 5 days ago)
  • Last Synced: 2024-02-28T18:33:50.404Z (about 11 hours ago)
  • Versions: 14
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 72 Last month
  • Rankings:
    • Forks count: 7.651%
    • Stargazers count: 9.427%
    • Dependent packages count: 16.22%
    • Average: 18.189%
    • Dependent repos count: 25.306%
    • Downloads: 32.34%
  • Maintainers (2)
npmjs.org: sdeverywhere

SDEverywhere translates System Dynamics models from Vensim to C and WebAssembly

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.6.0 (published over 1 year ago)
  • Last Synced: 2024-02-28T18:33:48.870Z (about 11 hours ago)
  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 4 Last month
  • Rankings:
    • Forks count: 5.361%
    • Stargazers count: 6.223%
    • Dependent repos count: 10.331%
    • Average: 18.549%
    • Downloads: 18.84%
    • Dependent packages count: 51.99%
  • Maintainers (3)
npmjs.org: @sdeverywhere/parse

This package contains the parsing layer used by the [SDEverywhere](https://github.com/climateinteractive/SDEverywhere) compiler. It defines an AST (abstract syntax tree) structure that can be used to express a system dynamics model, and provides an API fo

  • Homepage: https://sdeverywhere.org
  • Licenses: MIT
  • Latest release: 0.1.0 (published 3 months ago)
  • Last Synced: 2024-02-28T18:33:49.804Z (about 11 hours ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 66 Last month
  • Rankings:
    • Dependent repos count: 36.176%
    • Average: 44.011%
    • Dependent packages count: 51.846%
  • Maintainers (2)

Dependencies

.github/workflows/build.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • pnpm/action-setup v2.2.4 composite
.github/workflows/release.yaml actions
  • GoogleCloudPlatform/release-please-action v3 composite
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • pnpm/action-setup v2 composite
examples/hello-world/package.json npm
  • @sdeverywhere/build ^0.3.0
  • @sdeverywhere/cli ^0.7.6
  • @sdeverywhere/plugin-check ^0.3.0
  • @sdeverywhere/plugin-wasm ^0.2.0
  • @sdeverywhere/plugin-worker ^0.2.0
  • sirv-cli ^2.0.2
examples/sample-check-app/package.json npm
  • @sveltejs/vite-plugin-svelte ^1.0.8 development
  • postcss ^8.2.14 development
  • pug ^3.0.1 development
  • sass ^1.34.1 development
  • svelte ^3.47.0 development
  • svelte-check ^2.7.0 development
  • svelte-preprocess ^4.10.6 development
  • vite ^3.1.3 development
  • @sdeverywhere/check-core workspace:*
  • @sdeverywhere/check-ui-shell workspace:*
  • @sdeverywhere/sample-check-tests workspace:*
examples/sample-check-bundle/package.json npm
  • vite ^3.1.3 development
  • @sdeverywhere/check-core workspace:*
  • assert-never ^1.2.1
examples/sample-check-tests/package.json npm
  • vite ^3.1.3 development
  • @sdeverywhere/check-core workspace:*
  • assert-never ^1.2.1
examples/template-default/package.json npm
  • @sdeverywhere/build ^0.3.0
  • @sdeverywhere/check-core ^0.1.0
  • @sdeverywhere/cli ^0.7.6
  • @sdeverywhere/plugin-check ^0.3.0
  • @sdeverywhere/plugin-config ^0.2.0
  • @sdeverywhere/plugin-vite ^0.1.5
  • @sdeverywhere/plugin-wasm ^0.2.0
  • @sdeverywhere/plugin-worker ^0.2.0
examples/template-default/packages/app/package.json npm
  • @types/chart.js ^2.9.34 development
  • vite ^3.1.3 development
  • bootstrap-slider 10.6.2
  • chart.js ^2.9.4
  • jquery ^3.5.1
examples/template-default/packages/core/package.json npm
  • vite ^3.1.3 development
  • @sdeverywhere/runtime ^0.2.0
  • @sdeverywhere/runtime-async ^0.2.0
examples/template-minimal/package.json npm
  • @sdeverywhere/build ^0.3.0
  • @sdeverywhere/check-core ^0.1.0
  • @sdeverywhere/cli ^0.7.6
  • @sdeverywhere/plugin-check ^0.3.0
  • @sdeverywhere/plugin-wasm ^0.2.0
  • @sdeverywhere/plugin-worker ^0.2.0
package.json npm
  • @typescript-eslint/eslint-plugin ^5.27.1 development
  • @typescript-eslint/parser ^5.27.1 development
  • eslint ^8.14.0 development
  • eslint-config-prettier ^8.5.0 development
  • eslint-plugin-eslint-comments ^3.2.0 development
  • eslint-plugin-svelte3 ^4.0.0 development
  • glob ^8.0.3 development
  • npm-run-all ^4.1.5 development
  • prettier ^2.6.2 development
  • tsup ^6.2.3 development
  • typedoc ^0.22.17 development
  • typedoc-plugin-markdown ^3.12.1 development
  • typescript ^4.7.3 development
  • vitest ^0.23.4 development
packages/build/package.json npm
  • @types/cross-spawn ^6.0.2 development
  • @types/folder-hash ^4.0.1 development
  • @types/node ^16.11.7 development
  • chokidar ^3.5.3
  • cross-spawn ^7.0.3
  • folder-hash ^4.0.2
  • neverthrow ^4.3.1
  • picocolors ^1.0.0
  • tiny-glob ^0.2.9
packages/check-core/package.json npm
  • ajv ^8.6.3
  • assert-never ^1.2.1
  • neverthrow ^4.2.2
  • yaml ^2.1.0
packages/check-ui-shell/package.json npm
  • @sveltejs/vite-plugin-svelte ^1.0.8 development
  • @types/chart.js ^2.9.34 development
  • @types/fontfaceobserver ^0.0.6 development
  • postcss ^8.2.14 development
  • pug ^3.0.1 development
  • sass ^1.34.1 development
  • svelte ^3.47.0 development
  • svelte-awesome ^3.0.0 development
  • svelte-check ^2.7.0 development
  • svelte-preprocess ^4.10.6 development
  • vite ^3.1.3 development
  • @fortawesome/free-regular-svg-icons ^6.1.1
  • @fortawesome/free-solid-svg-icons ^6.1.1
  • @juggle/resize-observer ^3.3.0
  • @sdeverywhere/check-core ^0.1.0
  • assert-never ^1.2.1
  • chart.js ^2.9.4
  • copy-text-to-clipboard ^3.0.1
  • fontfaceobserver ^2.1.0
packages/cli/package.json npm
  • @sdeverywhere/build ^0.3.0
  • @sdeverywhere/compile ^0.7.4
  • bufx ^1.0.5
  • byline ^5.0.0
  • ramda ^0.27.0
  • shelljs ^0.8.3
  • yargs ^17.5.1
packages/compile/package.json npm
  • antlr4 4.9.2
  • antlr4-vensim 0.6.0
  • bufx ^1.0.5
  • byline ^5.0.0
  • csv-parse ^5.3.3
  • js-yaml ^3.13.1
  • ramda ^0.27.0
  • split-string ^6.0.0
  • xlsx ^0.17.0
packages/create/package.json npm
  • @types/degit ^2.8.3 development
  • @types/fs-extra ^9.0.13 development
  • @types/node ^16.11.7 development
  • @types/prompts ^2.0.14 development
  • @types/which-pm-runs ^1.0.0 development
  • @types/yargs-parser ^21.0.0 development
  • @sdeverywhere/compile ^0.7.4
  • degit ^2.8.4
  • execa ^6.1.0
  • fs-extra ^10.1.0
  • kleur ^4.1.5
  • ora ^6.1.2
  • prompts ^2.4.2
  • which-pm-runs ^1.1.0
  • yaml ^2.1.1
  • yargs-parser ^21.1.1
packages/plugin-check/package.json npm
  • @sdeverywhere/build * development
  • @types/node ^16.11.7 development
  • @rollup/plugin-node-resolve ^13.3.0
  • @rollup/plugin-replace ^4.0.0
  • @sdeverywhere/check-core ^0.1.0
  • @sdeverywhere/check-ui-shell ^0.2.1
  • @sdeverywhere/runtime ^0.2.0
  • @sdeverywhere/runtime-async ^0.2.0
  • assert-never ^1.2.1
  • chokidar ^3.5.3
  • picocolors ^1.0.0
  • rollup ^2.76.0
  • vite ^3.1.3
packages/plugin-check/template-bundle/package.json npm
  • @sdeverywhere/check-core ^0.1.0
  • @sdeverywhere/runtime ^0.2.0
  • @sdeverywhere/runtime-async ^0.2.0
  • assert-never ^1.2.1
packages/plugin-check/template-report/package.json npm
  • @sdeverywhere/check-core ^0.1.0
  • @sdeverywhere/check-ui-shell ^0.2.0
packages/plugin-check/template-tests/package.json npm
  • @sdeverywhere/check-core ^0.1.0
packages/plugin-config/package.json npm
  • @sdeverywhere/build * development
  • @types/byline ^4.2.33 development
  • @types/dedent ^0.7.0 development
  • @types/marked ^4.0.1 development
  • @types/node ^16.11.7 development
  • @types/sanitize-html ^2.6.2 development
  • @types/temp ^0.9.1 development
  • dedent ^0.7.0 development
  • temp ^0.9.4 development
  • byline ^5.0.0
  • csv-parse ^5.3.3
  • sanitize-html ^2.7.1
packages/plugin-vite/package.json npm
  • @sdeverywhere/build * development
  • vite 3.1.3 development
packages/plugin-wasm/package.json npm
  • @sdeverywhere/build * development
  • @types/node ^16.11.7 development
  • find-up ^6.3.0
packages/plugin-worker/package.json npm
  • @sdeverywhere/build * development
  • @types/node ^16.11.7 development
  • @rollup/plugin-node-resolve ^13.3.0
  • @sdeverywhere/runtime ^0.2.0
  • @sdeverywhere/runtime-async ^0.2.0
  • rollup ^2.76.0
  • vite ^3.1.3
packages/runtime/package.json npm
  • neverthrow ^2.7.1
packages/runtime-async/package.json npm
  • @sdeverywhere/runtime ^0.2.0
  • threads 1.7.0
pnpm-lock.yaml npm
  • 528 dependencies
tests/integration/ext-control-params/package.json npm
  • @sdeverywhere/build workspace:*
  • @sdeverywhere/cli workspace:*
  • @sdeverywhere/plugin-wasm workspace:*
  • @sdeverywhere/plugin-worker workspace:*
  • @sdeverywhere/runtime workspace:*
  • @sdeverywhere/runtime-async workspace:*
tests/integration/saveper/package.json npm
  • @sdeverywhere/build workspace:*
  • @sdeverywhere/cli workspace:*
  • @sdeverywhere/plugin-wasm workspace:*
  • @sdeverywhere/plugin-worker workspace:*
  • @sdeverywhere/runtime workspace:*
  • @sdeverywhere/runtime-async workspace:*
tests/package.json npm
  • @sdeverywhere/cli workspace:*

Score: 13.690437010996428