Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,22 +76,23 @@ Please respect the rules below when editing the file.

### Format

| Column | Description | Example / valid values
|----------------|-------------------------------------------------------------------------|-----------------------
| name | The tool name that appears in the tools list | `"Example Sim"`
| license | License (commercial or [OSI approved](https://opensource.org/licenses)) | `"commercial"`, `"osi"`
| url | Link to the tool's homepage | `"https://example.com/example-sim/"`
| logo | filename of the tool's logo (or company's logo) | `"example-sim.svg"`
| vendor | Name of the tool vendor | `"Example Company"`
| vendorURL | Link to the vendor's homepage | `"https://example.com/"`
| examplesURL | Link to the tool's example FMUs and compatibility information | `"https://github.com/example/example-sim/"`
| description | A [description](#tool-description) of the tool | `"Run simulations in the cloud in real time"`
| features | Reserved for future use | `[]`
| platforms | Supported platforms | `["macOS", "Linux", "Windows"]`
| interfaces | Supported interfaces | `["GUI", "CLI", "library"]`
| fmiVersions | Supported FMI versions | `["1.0", "2.0", "3.0"]`
| fmuExport | Supported interface types for FMU export | `["CS", "ME", "SE"]`
| fmuImport | Supported interface types for FMU import | `["CS", "ME", "SE"]`
| Column | Description | Example / valid values
|------------------|-------------------------------------------------------------------------|-----------------------
| name | The tool name that appears in the tools list | `"Example Sim"`
| license | License (commercial or [OSI approved](https://opensource.org/licenses)) | `"commercial"`, `"osi"`
| url | Link to the tool's homepage | `"https://example.com/example-sim/"`
| logo | filename of the tool's logo (or company's logo) | `"example-sim.svg"`
| vendor | Name of the tool vendor | `"Example Company"`
| vendorURL | Link to the vendor's homepage | `"https://example.com/"`
| examplesURL | Link to the tool's example FMUs and compatibility information | `"https://github.com/example/example-sim/"`
| description | A [description](#tool-description) of the tool | `"Run simulations in the cloud in real time"`
| features | Reserved for future use | `[]`
| platforms | Supported platforms | `["macOS", "Linux", "Windows"]`
| interfaces | Supported interfaces | `["GUI", "CLI", "library"]`
| fmiVersions | Supported FMI versions | `["1.0", "2.0", "3.0"]`
| fmuExport | Supported interface types for FMU export | `["CS", "ME", "SE"]`
| fmuImport | Supported interface types for FMU import | `["CS", "ME", "SE"]`
| layeredStandards | Supported layered standards | `["BUS", "XCP"]`

Example:

Expand Down Expand Up @@ -123,6 +124,9 @@ Example:
],
"fmuImport": [
"CS"
],
"layeredStandards": [
"BUS"
]
}
```
Expand Down
54 changes: 37 additions & 17 deletions content/tools.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,46 @@

<div id="app">

<div class="row justify-content-center">
<div class="row justify-content-center gy-3">
<div class="col-auto">
<div class="row">
<label class="form-label text-center">FMI Version</label>
</div>
<div class="btn-group" role="group">
<button type="button" @click="showFMI1 = !showFMI1" class="btn btn-secondary" v-bind:class="{ 'active': showFMI1}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI 1.0">1.0</button>
<button type="button" @click="showFMI2 = !showFMI2" class="btn btn-secondary" v-bind:class="{ 'active': showFMI2}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI 2.0">2.0</button>
<button type="button" @click="showFMI3 = !showFMI3" class="btn btn-secondary" v-bind:class="{ 'active': showFMI3}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI 3.0">3.0</button>
<button type="button" @click="showFMI1 = !showFMI1" class="btn btn-secondary" v-bind:class="{'active': showFMI1}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI 1.0">1.0</button>
<button type="button" @click="showFMI2 = !showFMI2" class="btn btn-secondary" v-bind:class="{'active': showFMI2}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI 2.0">2.0</button>
<button type="button" @click="showFMI3 = !showFMI3" class="btn btn-secondary" v-bind:class="{'active': showFMI3}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI 3.0">3.0</button>
</div>
</div>
<div class="col-auto">
<div class="row">
<label class="form-label text-center">Import</label>
</div>
<div class="btn-group ml-3" role="group">
<button type="button" @click="showCSImport = !showCSImport" class="btn btn-secondary" v-bind:class="{ 'active': showCSImport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Co-Simulation import">CS</button>
<button type="button" @click="showMEImport = !showMEImport" class="btn btn-secondary" v-bind:class="{ 'active': showMEImport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Model Exchange import">ME</button>
<button type="button" @click="showSEImport = !showSEImport" class="btn btn-secondary" v-bind:class="{ 'active': showSEImport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Scheduled Execution import">SE</button>
<button type="button" @click="showCSImport = !showCSImport" class="btn btn-secondary" v-bind:class="{'active': showCSImport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Co-Simulation import">CS</button>
<button type="button" @click="showMEImport = !showMEImport" class="btn btn-secondary" v-bind:class="{'active': showMEImport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Model Exchange import">ME</button>
<button type="button" @click="showSEImport = !showSEImport" class="btn btn-secondary" v-bind:class="{'active': showSEImport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Scheduled Execution import">SE</button>
</div>
</div>
<div class="col-auto">
<div class="row">
<label class="form-label text-center">Export</label>
</div>
<div class="btn-group ml-3" role="group">
<button id="btn-commercial" type="button" @click="showCSExport = !showCSExport" class="btn btn-secondary" v-bind:class="{ 'active': showCSExport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Co-Simulation export">CS</button>
<button id="btn-opensource" type="button" @click="showMEExport = !showMEExport" class="btn btn-secondary" v-bind:class="{ 'active': showMEExport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Model Exchange export">ME</button>
<button id="btn-opensource" type="button" @click="showSEExport = !showSEExport" class="btn btn-secondary" v-bind:class="{ 'active': showSEExport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Scheduled Execution export">SE</button>
<button id="btn-commercial" type="button" @click="showCSExport = !showCSExport" class="btn btn-secondary" v-bind:class="{'active': showCSExport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Co-Simulation export">CS</button>
<button id="btn-opensource" type="button" @click="showMEExport = !showMEExport" class="btn btn-secondary" v-bind:class="{'active': showMEExport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Model Exchange export">ME</button>
<button id="btn-opensource" type="button" @click="showSEExport = !showSEExport" class="btn btn-secondary" v-bind:class="{'active': showSEExport}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Scheduled Execution export">SE</button>
</div>
</div>
<div class="col-auto">
<div class="row">
<label class="form-label text-center">Platform</label>
</div>
<div class="btn-group" role="group">
<button id="btn-windows" type="button" @click="showWindows = !showWindows" class="btn btn-secondary" v-bind:class="{ 'active': showWindows}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Windows"><i class="fab fa-windows"></i></button>
<button id="btn-linux" type="button" @click="showLinux = !showLinux" class="btn btn-secondary" v-bind:class="{ 'active': showLinux}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Linux"><i class="fab fa-linux"></i></button>
<button id="btn-macos" type="button" @click="showMac = !showMac" class="btn btn-secondary" v-bind:class="{ 'active': showMac}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="macOS"><i class="fab fa-apple"></i></button>
<button id="btn-source-code" type="button" @click="showSourceCode = !showSourceCode" class="btn btn-secondary" v-bind:class="{ 'active': showSourceCode}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Source Code"><i class="fa-solid fa-c"></i></button>
<button id="btn-windows" type="button" @click="showWindows = !showWindows" class="btn btn-secondary" v-bind:class="{'active': showWindows}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Windows"><i class="fab fa-windows"></i></button>
<button id="btn-linux" type="button" @click="showLinux = !showLinux" class="btn btn-secondary" v-bind:class="{'active': showLinux}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Linux"><i class="fab fa-linux"></i></button>
<button id="btn-macos" type="button" @click="showMac = !showMac" class="btn btn-secondary" v-bind:class="{'active': showMac}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="macOS"><i class="fab fa-apple"></i></button>
<button id="btn-source-code" type="button" @click="showSourceCode = !showSourceCode" class="btn btn-secondary" v-bind:class="{'active': showSourceCode}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Source Code"><i class="fa-solid fa-c"></i></button>
</div>
</div>
<div class="col-auto">
Expand All @@ -60,9 +60,20 @@
<label class="form-label text-center">Interface</label>
</div>
<div class="btn-group ml-3" role="group">
<button id="btn-commercial" type="button" @click="showGUI = !showGUI" class="btn btn-secondary" v-bind:class="{ 'active': showGUI}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Graphical User Interface"><i class="fa-solid fa-window-maximize"></i></button>
<button id="btn-opensource" type="button" @click="showCLI = !showCLI" class="btn btn-secondary" v-bind:class="{ 'active': showCLI}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Command Line Interface / scriptable"><i class="fa-solid fa-terminal"></i></button>
<button id="btn-opensource" type="button" @click="showLibrary = !showLibrary" class="btn btn-secondary" v-bind:class="{ 'active': showLibrary}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Library / Plug-in"><i class="fa-solid fa-file-code"></i></button>
<button id="btn-commercial" type="button" @click="showGUI = !showGUI" class="btn btn-secondary" v-bind:class="{'active': showGUI}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Graphical User Interface"><i class="fa-solid fa-window-maximize"></i></button>
<button id="btn-opensource" type="button" @click="showCLI = !showCLI" class="btn btn-secondary" v-bind:class="{'active': showCLI}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Command Line Interface / scriptable"><i class="fa-solid fa-terminal"></i></button>
<button id="btn-opensource" type="button" @click="showLibrary = !showLibrary" class="btn btn-secondary" v-bind:class="{'active': showLibrary}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Library / Plug-in"><i class="fa-solid fa-file-code"></i></button>
</div>
</div>
<div class="col-auto">
<div class="row">
<label class="form-label text-center">Layered Standards</label>
</div>
<div class="btn-group ml-3" role="group">
<button id="btn-bus" type="button" @click="showBUS = !showBUS" class="btn btn-secondary" v-bind:class="{'active': showBUS}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI-LS-BUS">BUS</button>
<button id="btn-ref" type="button" @click="showREF = !showREF" class="btn btn-secondary" v-bind:class="{'active': showREF}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI-LS-REF">REF</button>
<button id="btn-struct" type="button" @click="showStruct = !showStruct" class="btn btn-secondary" v-bind:class="{'active': showStruct}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI-LS-Struct">Struct</button>
<button id="btn-xcp" type="button" @click="showXCP = !showXCP" class="btn btn-secondary" v-bind:class="{'active': showXCP}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="FMI-LS-XCP">XCP</button>
</div>
</div>
<div class="col-auto">
Expand Down Expand Up @@ -157,6 +168,10 @@
showGUI: false,
showCLI: false,
showLibrary: false,
showBUS: false,
showREF: false,
showStruct: false,
showXCP: false,
search: "",
tools: []
}
Expand Down Expand Up @@ -227,6 +242,11 @@
if (self.showCLI && !listContains(tool.interfaces, 'CLI')) return false;
if (self.showLibrary && !listContains(tool.interfaces, 'library')) return false;

if (self.showBUS && !listContains(tool.layeredStandards, 'BUS')) return false;
if (self.showREF && !listContains(tool.layeredStandards, 'REF')) return false;
if (self.showStruct && !listContains(tool.layeredStandards, 'Struct')) return false;
if (self.showXCP && !listContains(tool.layeredStandards, 'XCP')) return false;

return containsLowerCase(tool.name, this.search) || containsLowerCase(tool.vendor, this.search) || containsLowerCase(tool.description, this.search);
})
}
Expand Down
51 changes: 45 additions & 6 deletions static/assets/tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,9 @@
"fmuImport": [
"CS",
"ME"
],
"layeredStandards": [
"BUS"
]
},
{
Expand Down Expand Up @@ -754,6 +757,9 @@
"interfaces": [
"GUI",
"CLI"
],
"layeredStandards": [
"BUS"
]
},
{
Expand All @@ -779,6 +785,9 @@
"interfaces": [
"GUI",
"CLI"
],
"layeredStandards": [
"XCP"
]
},
{
Expand Down Expand Up @@ -1314,6 +1323,9 @@
"fmuExport": [],
"fmuImport": [
"CS"
],
"layeredStandards": [
"XCP"
]
},
{
Expand Down Expand Up @@ -1429,7 +1441,11 @@
"fmuExport": [
"CS"
],
"fmuImport": []
"fmuImport": [],
"layeredStandards": [
"BUS",
"XCP"
]
},
{
"name": "TargetLink",
Expand Down Expand Up @@ -1479,6 +1495,10 @@
"fmuExport": [],
"fmuImport": [
"CS"
],
"layeredStandards": [
"BUS",
"XCP"
]
},
{
Expand Down Expand Up @@ -2004,6 +2024,9 @@
"CS",
"ME",
"SE"
],
"layeredStandards": [
"XCP"
]
},
{
Expand Down Expand Up @@ -2735,7 +2758,7 @@
},
{
"name": "mcp-fmi",
"license": "MIT",
"license": "osi",
"url": "https://github.com/Novia-RDI-Seafaring/mcp-fmi",
"logo": "mcp_fmi_logo.png",
"vendor": "Novia University of Applied Sciences",
Expand Down Expand Up @@ -3205,6 +3228,9 @@
"fmuExport": [],
"fmuImport": [
"CS"
],
"layeredStandards": [
"XCP"
]
},
{
Expand All @@ -3227,6 +3253,9 @@
"fmuExport": [],
"fmuImport": [
"CS"
],
"layeredStandards": [
"XCP"
]
},
{
Expand Down Expand Up @@ -3524,6 +3553,10 @@
"fmuImport": [
"CS",
"ME"
],
"layeredStandards": [
"BUS",
"XCP"
]
},
{
Expand Down Expand Up @@ -5040,6 +5073,9 @@
],
"fmuImport": [
"CS"
],
"layeredStandards": [
"BUS"
]
},
{
Expand Down Expand Up @@ -5630,7 +5666,7 @@
},
{
"name": "MLFMU",
"license": "BSD-3",
"license": "osi",
"url": "https://pypi.org/project/mlfmu/",
"logo": "mlfmu_logo_v1.svg",
"vendor": "DNV",
Expand Down Expand Up @@ -5905,7 +5941,10 @@
"fmuExport": [
"CS"
],
"fmuImport": []
"fmuImport": [],
"layeredStandards": [
"BUS"
]
},
{
"name": "iSuite 25",
Expand Down Expand Up @@ -5934,7 +5973,7 @@
},
{
"name": "fmu-forge",
"license": "BSD-3-Clause",
"license": "osi",
"url": "https://github.com/projectchrono/fmu-forge",
"logo": "fmu-forge.png",
"vendor": "Project Chrono",
Expand All @@ -5950,7 +5989,7 @@
},
{
"name": "chrono",
"license": "BSD-3-Clause",
"license": "osi",
"url": "https://github.com/projectchrono/chrono",
"logo": "Chrono.png",
"vendor": "Project Chrono",
Expand Down