OpenStudio 1.0.0 was released in March of 2013. Since then, there have been 13 quarterly releases numbered 1.1.0, 1.2.0, and so on. After more than three years, OpenStudio 2.0.0 is finally here. What does this change in numbering mean?
Like a lot of other software, OpenStudio uses a semantic versioning number scheme—from left to right, the numbers are called major version, minor version, and iteration or maintenance. For the past three years, OpenStudio has released minor version updates, which have new features that retain compatibility with older versions of the product. OpenStudio 1.13.0 strictly adds features to OpenStudio 1.12.0 and can still operate on files created by OpenStudio 1.12.0. OpenStudio 2.0.0 is a major version update; it has new functionality that breaks backwards compatibility—its changes are so significant that it will not be able to open some files created by older OpenStudio versions. Iteration changes correspond to bug fixes and other updates that don’t add new features. Although not publicized, OpenStudio iteration updates are released every two weeks and are available on GitHub.
So, what is so different in OpenStudio 2.0.0? Engineers and modelers that use the graphical OpenStudio Application may not notice much. But OpenStudio is first and foremost a development platform, and developers will see a completely new software architecture. The monolithic, nearly 1 GB (gigabyte) OpenStudio package, which contained the Software Development Kit (SDK), SketchUp plug-in, graphical Application, and Parametric Analysis Tool (PAT), has been broken up allowing users and developers to install only the pieces they are interested in. The new architecture has fewer parts with cleaner, more consistent interfaces, and fewer inter-dependencies. It should be easier to maintain, extend, and integrate into third-party products.
The kernel of the new architecture is OpenStudio Command Line Interface (CLI), a self-contained 150 MB (megabyte) package contains the SDK, a Ruby interpreter, and a small selection of Measures and Resources including the Standards Gem. OpenStudio CLI operates on OpenStudio Workflow (OSW) files, which completely describe a single-model workflow—seed model, a list of Model Measures that operate on the seed model, and a list of Reporting Measures that act on the results of the simulation. Because CLI is small and has no graphics, it loads and runs quickly.
OpenStudio CLI is complemented by OpenStudio Meta-CLI, a self-contained executable that reads OpenStudio Analysis (OSA) files that describe large scale analyses—like building-stock analysis, design optimization, uncertainty quantification, and calibration—and creates the corresponding OSW files. Together, CLI and Meta-CLI form the basis for the new OpenStudio Server, which has been repackaged to support greater elasticity—i.e., the ability to add and remove processing resources on the fly—and to run on multiple cloud platforms as well as local resources. Large-scale analysis capabilities have been available for a while from the OpenStudio Analysis Spreadsheet, but now it’s much easier to use them from within applications.
One thing end-users will notice is the new Parametric Analysis Tool (PAT). The PAT engine has been completely rewritten to make use of the CLI and meta-CLI, and to better align with OpenStudio’s preferred approach to large-scale analysis, which flexibly runs on the user’s machine, local clusters, or the cloud. PAT’s interface was also rebuilt using a web software stack, which is more portable across platforms and devices than window software stacks. The new PAT interface can run locally or on the web and serves as an example of portable OpenStudio application development.
As for backward compatibility? The use of OSW and OSA files is new and will require revisions to some large-scale modeling workflows, but OpenStudio Model (OSM) files have not changed—OpenStudio 2.0.0 will be able to open individual models created in older OpenStudio versions.
“The development team was fortunate to be able to take time this past year to clean up the OpenStudio codebase and put it on the weight loss plan it has needed for a while,” says NREL’s Larry Brackney, OpenStudio’s project lead. “We also spent time creating new software development patterns that better reflect the state of web-based development in 2016. This is important as companies look increasingly to the cloud and software-as-a-service business models as a means of driving energy efficiency. The team is excited to see what third-party developers do with 2.0.0 and beyond—that’s the coolest part of working on OpenStudio!”