Skip to content
Source for my new Modelica Book
JavaScript CSS Modelica Python HTML Makefile Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
api Normalize details May 15, 2019
apps @ e8cbf97
docker Added some conditional compilation code Apr 2, 2019
generator @ b31725a Use better sponsor ribbons Dec 4, 2018
misc/modelica2014 Finishing touches Mar 11, 2014
nextgen @ c3725a1 Updated analytics Jun 3, 2019
org An artwork submission Mar 18, 2014
sponsors Fix sponsor data Nov 21, 2017
.gitignore Did a part of #415 Apr 2, 2019
.gitmodules Switching to HTTPS for submodules Apr 5, 2019 Added a bit of documentation on the build process Apr 6, 2019 A bit more work on the build file. Nov 10, 2017
NOTES Forgot an update to NOTES Oct 14, 2013 Removing references to Xogeny Apr 17, 2019 Removing references to Xogeny Apr 17, 2019
requirements.txt This adds a epub2mobi conversion rule by use of ebook-convert May 15, 2014

Getting Started

Location on the Web

This book is currently published at This is an early access version that gives people a chance to comment on the book before making an "official" release. The goal is to collect sufficient feedback that we can move forward with the publication of a paper (printed) version of the book without concerns that the material will still require significant revisions.


If you find an issue with the current version of the book or have a suggestion for improving it, there are several ways you can contribute to the book. They are listed here in order of most likely to be incorporated first:

  • Send me a pull request. By submitting a pull request to me, you make it very easy for me to comment on and/or incorporate your suggested change. As such, I strongly recommend you take this route since it is much more time consuming for me to apply your changes myself (and, therefore, it makes such changes less likely).
  • Report the issue as an issue in the issue tracker. This helps me keep track of all the various issues. This approach should be a last resort for changes where the "fix" isn't obvious (and therefore you cannot make the change yourself).

If you send me email suggesting something, I will almost certainly send you back to this section. It is much harder for me to keep track of issues via email. So if you aren't willing to submit a pull request, please take the second option of submitting an issue to the issue tracker.


I welcome translations. My goal is that translations should be distributed under the same terms as the English language of the book. Specifically, this means:

  • An HTML version of the book will be hosted at and published under a creative commons license.
  • ePub and PDF versions of the book should be made available for purchase using a "pay what you can" pricing model.
  • Publication of a paper version of the book are a possibility, but I can't commit to physical publishing without further discussion.

In all cases where there is potential revenue, I would be willing to enter into a revenue sharing agreement with the translators.

To learn more about what translations are planned, who to contact about helping with translations or instructions about the translation workflow, please see this dedicated document on translations.

Technical Details


This book is being written using Sphinx. I chose this system after evaluating several others. The main things I liked about Sphinx were:

  • The numerous output formats it supports (HTML, ePub and PDF being the important ones).
  • The extensibility of the Sphinx system.
  • The fact that it supports internationalization.
  • The fact that it allows custom templates and CSS to be used.


Sphinx is completely portable so in theory, it should be possible to run Sphinx under nearly any operating system.

Although previous versions required a bunch of tools to build the book, the current version only requires that you have Node and Docker installed. I highly recommend the Docker for Mac and Docker for Windows flavors if you are on macOS or Windows, respectively.

There is now a root level Makefile. You should be able to simply run:

make all

...which should build the book (if I'm forgetting something, send me a pull request for this README adding any further instructions). The source will be generated in ./text/build/dirhtml.

The Dockerfile used to create the mtiller/book-builder image used to build the book can be found in the book-builder Repository

You can’t perform that action at this time.