{"id":21287672,"url":"https://github.com/ntnu-ihb/vico","last_synced_at":"2025-07-11T13:31:03.239Z","repository":{"id":40426856,"uuid":"284521287","full_name":"NTNU-IHB/Vico","owner":"NTNU-IHB","description":"Vico is an ECS based co-simulation framework","archived":false,"fork":false,"pushed_at":"2022-06-29T11:07:47.000Z","size":67855,"stargazers_count":12,"open_issues_count":4,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-24T11:05:04.657Z","etag":null,"topics":["co-simulation","fmi-standard","fmu-proxy","ssp-standard"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NTNU-IHB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-02T18:46:17.000Z","updated_at":"2024-04-24T11:05:04.658Z","dependencies_parsed_at":"2022-08-09T20:10:37.684Z","dependency_job_id":null,"html_url":"https://github.com/NTNU-IHB/Vico","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTNU-IHB%2FVico","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTNU-IHB%2FVico/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTNU-IHB%2FVico/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTNU-IHB%2FVico/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NTNU-IHB","download_url":"https://codeload.github.com/NTNU-IHB/Vico/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225724177,"owners_count":17514144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["co-simulation","fmi-standard","fmu-proxy","ssp-standard"],"created_at":"2024-11-21T12:14:49.078Z","updated_at":"2024-11-21T12:14:49.776Z","avatar_url":"https://github.com/NTNU-IHB.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vico (work in progress)\n\n\u003e Vico is an Entity-Component-System (ECS) based co-simulation framework\n\n\u003cimg src=\"Vico_logo.PNG\" alt=\"logo\" width=\"200\"/\u003e\n\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/NTNU-IHB/Vico/issues) \n\n![Java CI](https://github.com/NTNU-IHB/Vico/workflows/Java%20CI/badge.svg)\n[![Gitter](https://badges.gitter.im/NTNU-IHB/Vico.svg)](https://gitter.im/NTNU-IHB/Vico?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\nVico is a generic co-simulation framework running on the JVM that takes advantage of the ECS software architecture popularized by game engines. \nA simulation object is known as an _entity_, which is basically a collection of _components_. A component is just state, with no behavior.\nBehaviour is added to the simulation through so called _systems_ that acts on entities within a certain _family_. \nThe type of components held by a given entity decides which family it belongs to. \nEntities, components and systems may be added and removed from the engine at any time, thus family relationships, \nwhat an entity represents and which entities a system acts on is highly dynamic. \n\n#### FMI \u0026 SSP support\n\nSupport for FMI 1.0 \u0026 2.0 for co-simulation and SSP 1.0 is provided by the __fmi__ module. \n\nMore specifically this module adds a _SlaveSystem_ that represents a collection of fmus to be simulated together. The\nSlaveSystem requires an instance of a class implementing the interface _MasterAlgorithm_, which represents an FMI master\nalgorithm. A ready to use _FixedStepMaster_ is provided by the module.\n\nDistributed execution of FMUs is possible by means of [FMU-proxy](https://github.com/NTNU-IHB/FMU-proxy).\n\n#### Time-series and XY charts\n\nSupport for plotting is provided by the __chart__ module.\n\n#### 3D rendering\n\nVico simulations can be visualized in the browser, altough poorly documented, \nfor reference see: https://github.com/NTNU-IHB/Vico/blob/master/examples/gunnerus/trajectory/VisualConfig.xml\n\n### Command line interface\n````bash\nUsage: vico [-h] [COMMAND]\n  -h, --help   display a help message\nCommands:\n  eval Interpret kotlin script using kotlin-main-kts.\n  simulate-fmu  Simulate a single FMU.\n  simulate-ssp  Simulate a co-simulation system described using SSP.\n````\nTo see the input arguments for the sub-commands, run the respective command providing no arguments.\n\n### How to build\n\nSimple execute `./gradlew build` in a shell. The CLI will be located under `cli/build/install`. \u003cbr\u003e\n\n### Development\n\nAs Vico is written in Kotlin, [IntelliJ IDEA](https://www.jetbrains.com/idea/) is the recommended IDE for development.\n\n\n\u003e Want to simplify creation of SSP archives? Check out [sspgen](https://github.com/NTNU-IHB/sspgen) \u003cbr\u003e\n\u003e Want to develop FMUs in Java? Check out [FMU4j](https://github.com/markaren/FMU4j) \u003cbr\u003e\n\u003e Want to develop FMUs in Python? Check out [PythonFMU](https://github.com/NTNU-IHB/PythonFMU) \u003cbr\u003e\n\u003e Want to distribute your FMUs? Check out [FMU-proxy](https://github.com/NTNU-IHB/FMU-proxy) \u003cbr\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntnu-ihb%2Fvico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntnu-ihb%2Fvico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntnu-ihb%2Fvico/lists"}