Welcome to the Sim4Life Plugin Community Store! This repository serves as the index for third-party plugins that can be discovered, installed, and managed within the Sim4Life platform.
If you are a developer and would like to publish your plugin to the community, please follow the steps below.
To publish a plugin to the Sim4Life Community Store:
-
Create a Git repository for your plugin (self-hosted or on any public Git server).
-
Ensure your plugin includes a
manifest.jsonin its root directory (see details below). -
Add a valid icon image in
integration/simulator_icon.png(or equivalent relative path). -
Tag your releases using semantic versioning (
v1.0.0,v1.1.0, etc.). See Versioning below. -
Open a Merge Request against this repository:
- Edit the
integrationfile. - Add your pluginβs Git URL (as a string) to the JSON array.
- Submit your Merge Request (MR) for review.
- Edit the
Your plugin must include a file named manifest.json in its root directory with the following fields:
| Field | Required | Description |
|---|---|---|
icon |
β | Relative path to an icon image (e.g., integration/simulator_icon.png). Used in the UI. |
title |
β | Display name of the plugin. Shown in the marketplace UI. |
description |
β | Short explanation of the pluginβs purpose. Shown in the UI. |
version |
β | Current plugin version. Should match your Git tag or release version. |
sim4life |
β | Minimum compatible Sim4Life version (e.g., 9.0.0). |
author |
β | Your full name or organization name. |
author_email |
β | Contact email address for support/questions. |
details |
β | Path to a local file (e.g., README.md) containing long-form documentation. |
license |
β | Path to the license file (e.g., LICENSE). |
tags |
Array of tags or keywords (e.g., ["Heat Equation", "Thermodynamics"]). |
|
links |
Dictionary of external links. Recommended keys: repository, website, documentation. |
{
"icon": "integration/simulator_icon.png",
"title": "Heat Conduction Simulator",
"description": "Solves the heat equation in arbitrary 3D domains.",
"version": "1.0.0",
"sim4life": "9.0.0",
"author": "Jane Doe",
"author_email": "jane.doe@example.com",
"details": "README.md",
"license": "LICENSE",
"tags": ["Heat Equation", "Thermodynamics"],
"links": {
"repository": "https://gitlab.host/s4l-plugins/heat-conduction",
"website": "https://example.com/heat-sim",
"documentation": "https://example.com/heat-sim/docs"
}
}- Plugin versions are based on Git tags in your plugin repository (e.g.,
v1.0.0,v1.1.2). - The version defined in your
manifest.jsonmust match the corresponding Git tag. - The latest Git tag is used to determine the currently installable version in the marketplace.
- Tags are also used to generate changelogs automatically by comparing releases (e.g., based on release notes or commit diffs).
git tag v1.2.0
git push origin v1.2.0If your changelog is derived from GitHub releases, make sure to include a release message when publishing a tag.
Once you submit your merge request:
- We will verify that the repository is accessible and contains a valid
manifest.json. - We will validate the presence of a plugin icon and required metadata fields.
- We will confirm that the version in
manifest.jsonmatches a Git tag. - If everything looks good, your plugin will be added to the community store!
Happy coding! π β The Sim4Life Plugin Team