LIBPF® Model Wizard
Interactively generate the C++ code required for a LIBPF® process model
The LIBPF™ Model Wizard is a free and open-source, browser-based tool that can be used online or run locally.
The LIBPF™ Model Wizard allows the model developer to generate interactively the C++ code required for a process model:
-
the Interface (.h file)
-
the Implementation (.cc file)
-
the Driver (.cc file).
The generated C++ code will not work out of the box: a few bits are missing, mainly due to the limitation of the JSON format that does not support multi-line strings and escaping (see xml's CDATA). Consider it a starting point !
For more information on LIBPF™ (the LIBrary for Process Flowsheeting), check the homepage.
For the source code to the LIBPF™ Model Wizard itself, check the gitlab repo.
How to use
See the blog posts:
-
Automatic generation of C++ code for process models – 1 of 3: command-line C++ code generation from the JSON representation of process models with the jinja2 template engine
-
Automatic generation of C++ code for process models – 2 of 3: interactive code generation with the LIBPF™ model wizard
-
Automatic generation of C++ code for process models – 3 of 3: an example of the complete model development workflow using the LIBPF™ model wizard.
and the tutorial videos:
Browser support
Tested on:
-
Google Chrome
-
Mozilla Firefox
-
Apple Safari on macOS and iOS
You need to have cookies (because we use local storage) and JavaScript (of course !) enabled.
Failure to enable cookies results in Firefox in the quite opaque error "SecurityError: The operation is insecure".
License
The LIBPF™ Model Wizard (C) Copyright 2015-2024 simevo s.r.l..
GPLv3 License:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Contains code borrowed from:
-
Bootstrap, the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web;
-
Jeremy Dorn's JSON Schema Based Editor with a little fix;
-
Mozilla's Nunjucks, a JavaScript implementation of the jinja2 templating language;
-
Viz.js, Mike Daines's port of graphviz to javascript, based on emscripten;
-
highlight.js, JavaScript syntax highlighting library.