I created an Obsidian plugin that serves as a front-end for OpenModelica that allows you to model and simulate cyber-physical systems (mechanical, fluid, magnetic, thermal, etc.) or a mix of all these systems all inside Obsidian.
What is special about Modelica is that it is acausal: components do not have fixed input/output roles. You describe physical relationships with equations and connections, and the equations do not need to be written in a step-by-step order. Modelica (language) or OpenModelica (software) flattens the model into a simultaneous equation system (a system of differential algebraic equations (DAEs)) and then determines the computational causality and order needed to simulate it.
As a disclaimer, I used AI to build it but not in a sloppy way. I have spent a lot of time testing it and making sure it's functional and accurate. And I hope it may help others to utilize such an underrated tool for learning/researching, as this is my main usage for it.
What is special about Modelica is that it is acausal: components do not have fixed input/output roles. You describe physical relationships with equations and connections, and the equations do not need to be written in a step-by-step order. Modelica (language) or OpenModelica (software) flattens the model into a simultaneous equation system (a system of differential algebraic equations (DAEs)) and then determines the computational causality and order needed to simulate it.
As a disclaimer, I used AI to build it but not in a sloppy way. I have spent a lot of time testing it and making sure it's functional and accurate. And I hope it may help others to utilize such an underrated tool for learning/researching, as this is my main usage for it.