Software for Pre-CAD systems design

Announcing Composer

When I first began Mechanomy I spent some time building, a web-based environment for simulating Modelica models. I've just turned it on again and invite you to try it, though it's still very alpha.

I thought that few engineers knew that tools like Modelica existed, and that if there were an easy introduction it would be a great point to start talking about how engineers use tools and what new ones are needed or possible. I still think that, but in developing Composer I came to see that the task was much larger than expected. This was made worse by the high quality of most engineering software, making it hard to provide enough value while bootstrapping.

Modelica is a challenging language to learn. Its development is driven by large industry and academics, with developers focused on simulation accuracy and scalability to very large problems to the detriment of usability and wider reach. For instance, one of the first steps in simulating a model is to collapse all of the equations into a minimal subset by removing intermediate variables. Most errors are discovered after this step, at which point it is very difficult to understand what equation(s) are incorrect and how they should be fixed. As far as I know all of the Modelica tools operate in this same way, because they are operated by engineers and researchers who have the ability to understand, avoid, and work through the originating errors. But speedbumps for some users are mountains for others. The more I worked on Composer and worked with Modelica, the more it became clear that it was going to be too difficult to get new users up the mountain. This left Composer alpha-quality and without a plan to provide value to users.

It (still) does work: you can write and edit Modelica models, save them to your profile, simulate them, plot their results, and create links to models. For instance, July's TensegrityTable model can be simulated in Composer, generating both timeseries and xy spatial graphs. (It may take some minutes to solve on the server, and there is a hard limit on the result size.) You can even download a CSV of the results for additional analysis.

But the use case fell apart during development and so I've left the Composer on pause for three years, working in Julia to build tools and libraries that allow early system exploration, trading Modelica's accuracy for Julia's ease and flexibility. I still see a need for greater use of Modelica in engineering, and it's been heartening to see other efforts at web-based Modelica, but more groundwork needs to be performed before that track can be laid. For now, let me reiterate my hope for the convergence of Modelica and Julia.

I'd love to hear any thoughts on Composer or what tools you hope for in the future. As always, please share and comment on Twitter or LinkedIn, and subscribe for future posts.

— Ben Conrad