Feature list: Difference between revisions

From LabRPS Documentation
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Docnav
{{Docnav
|[[About_LabRPS|About LabRPS]]
|[[About_LabRPS|About LabRPS]]
Line 11: Line 10:
== Release notes ==  
== Release notes ==  


* [[Release_notes_0.001|Release 0.1]] - January 2024
* [[Release_notes_0.1.0|Release 0.1.0]] - January 2025


== Key features ==  
== Key features ==  


* [[Image:Feature_spreadsheet.png|left]] An Integrated Spreadsheet in the form of [[Table|Table]], [[Matrix|Matrix]] and [[Notes|Notes]].{{clear}}
* [[Image:Feature3.jpg|left]] A full '''parametric model'''. All LabRPS objects are natively parametric, meaning their shape can be based on [[Property|properties]] or even depend on other objects. All changes are recalculated on demand, and recorded by an undo/redo stack. New object types can be added easily, and can even be [[Scripted_objects|fully programmed in Python]].{{clear}}
* [[Image:Feature4.jpg|left]] A '''modular architecture''' that allows extensions (modules and workbenches) to add functionality to the core application. An extension can be as complex as a whole new application programmed in C++ or as simple as a [[Power_users_hub|Python script]] or self-recorded [[Macros|macro]]. You have complete access to almost any part of LabRPS from the built-in '''Python''' interpreter, macros or external scripts.{{clear}}
* [[Image:Feature5.jpg|left]] Import/export to '''standard formats''' such as [https://en.wikipedia.org/wiki/Comma-separated_values CSV (Comma-Separated Values)], [https://en.wikipedia.org/wiki/JSON JSON (JavaScript Object Notation)], [https://en.wikipedia.org/wiki/Plain_text TXT (Plain Text)], [https://en.wikipedia.org/wiki/Microsoft_Excel Excel (XLSX)], in addition to LabRPS's native {{FileName|[[File Format rps|rps]]}} file format. The level of compatibility between LabRPS and a given file format can vary, since it depends on the workbench that implements it.{{clear}}
* [[Image:Feature_spreadsheet.png|left]] An [[Spreadsheet_Workbench|Integrated Spreadsheet]] and an [[Expressions|expression parser]] which may be used to drive formula-based models and organize model data in a central location.{{clear}}
* [[Image:Feature_plot.svg|left]] An [[Plot_Workbench|Integrated Plotting Tool]] which may be used graphically represent data.{{clear}}


== General features ==  
== General features ==  


* '''multi-platform'''. LabRPS runs and behaves exactly the same way on Windows, Linux, macOS and other platforms.
* '''multi-platform'''. LabRPS runs and behaves exactly the same way on Windows, Linux, macOS and other platforms (but it is still under testing on Linux and macOS).
 
* '''full GUI application'''. LabRPS has a complete Graphical User Interface based on the [https://www.qt.io/ Qt] framework.
 
* '''runs as a command line application'''. In command line mode, LabRPS runs without its interface but with all its simulation tools. In this mode it has a relatively low memory footprint and can be used, for example, as a server to produce content for other applications.
 
* '''can be imported as a Python module'''. LabRPS can be imported into any application that can run Python scripts. As in command line mode, the interface part of LabRPS is unavailable, but all simulation tools are accessible.
 
* '''workbench concept'''. In the LabRPS interface, tools are grouped by [[Workbenches|workbenches]]. This allows you to display only the tools used to accomplish a certain task, keeping the workspace uncluttered and responsive, and allowing the application to load rapidly.
 
* '''Plugin concept'''. The power of LabRPS lies in its flexible plugin system. All computational components of LabRPS are encapsulated within "LabRPS Features" (objects), which are organized into plugins. This structure allows scientists, engineers, researchers, and students to select the exact computational tools that best meet their specific needs.
 
* '''plugin/module framework for late loading of features/data-types'''. LabRPS is divided into a core application with modules and workbenches that are loaded only when needed. Almost all tools are stored in workbenches. Workbenches behave like plugins; in addition to delayed loading, individual workbenches can be added to or removed from an existing installation of LabRPS.
 
* '''parametric associative document objects'''. All objects in a LabRPS document can be defined by parameters. Those parameters can be modified and recomputed at any time. Since object relationships are maintained, the modification of one object will automatically propagate to any dependent objects.
 
* '''Undo/Redo framework'''. Everything in LabRPS is undo/redoable, with user access to the undo stack. Multiple steps can be undone at one time.
 
* '''transaction oriented'''. The undo/redo stack stores document transactions, not single actions, allowing each tool to define exactly what must be undone or redone.
 
* '''built-in [[Power_users_hub|scripting]] framework'''. LabRPS features a built-in [http://www.python.org/ Python] interpreter, with an API that covers almost any part of the application, the interface and the simulation tools. The interpreter can run complex scripts as well as single commands.
 
* '''built-in Python console'''. The Python interpreter includes a console with syntax highlighting, autocomplete and a class browser. Python commands can be issued directly in LabRPS and immediately return results, permitting script writers to test functionality on the fly, explore the contents of LabRPS's modules and workbenches and easily learn about LabRPS internals.
 
* '''mirrors user interaction'''. Everything the user does in the LabRPS interface executes Python code, which can be printed on the console and recorded in macros.
 
* '''full [[Macros|macro]] recording and editing''' capabilities. The Python commands issued when the user manipulates the interface can be recorded, edited if needed, and saved to be reproduced later.


* '''full GUI application'''. LabRPS has a complete Graphical User Interface based on the [https://www.qt.io/ Qt] framework, with a data visualization based on [https://www.qcustomplot.com QCustomPlot].
* '''compound (ZIP based) document save format'''. LabRPS documents are saved with a {{FileName|.[[File Format rps|rps]]}} extension. The document can contain many different types of information. The {{FileName|.rps}} file is itself a zip container; a saved LabRPS file has already been compressed.


* '''plugin concept'''. LabRPS can be sees as a box of [[Plugins|plugins]]. Without its plugins, LabRPS is just a data visualizer. Its simulation capacity is provided through plugins.
* '''fully customizable/scriptable Graphical User Interface'''. The [https://www.qt.io Qt]-based interface of LabRPS is entirely accessible via the Python interpreter. Aside from simple functions LabRPS itself provides to workbenches, the entire Qt framework is accessible. The user may perform any operation on the GUI such as creating, adding, docking, modifying or removing widgets and toolbars.


* '''Undo/Redo framework'''. Many task in LabRPS are undo/redoable.
* '''modular MSI installer'''. LabRPS's installer allows flexible installations on Windows systems. Packages for Ubuntu systems are also maintained (still under testing).


* '''built-in [[Scripting|scripting]] framework'''. LabRPS features a built-in [https://beltoforion.de/en/muparser/ muParser] math parser.


{{Docnav
{{Docnav

Latest revision as of 03:22, 28 December 2024

This is an extensive, but not complete, list of features which LabRPS implements.

Release notes

Key features

  • Feature3.jpg
    A full parametric model. All LabRPS objects are natively parametric, meaning their shape can be based on properties or even depend on other objects. All changes are recalculated on demand, and recorded by an undo/redo stack. New object types can be added easily, and can even be fully programmed in Python.
  • Feature4.jpg
    A modular architecture that allows extensions (modules and workbenches) to add functionality to the core application. An extension can be as complex as a whole new application programmed in C++ or as simple as a Python script or self-recorded macro. You have complete access to almost any part of LabRPS from the built-in Python interpreter, macros or external scripts.
  • Feature5.jpg
    Import/export to standard formats such as CSV (Comma-Separated Values), JSON (JavaScript Object Notation), TXT (Plain Text), Excel (XLSX), in addition to LabRPS's native rps file format. The level of compatibility between LabRPS and a given file format can vary, since it depends on the workbench that implements it.
  • Feature spreadsheet.png
    An Integrated Spreadsheet and an expression parser which may be used to drive formula-based models and organize model data in a central location.
  • Feature plot.svg
    An Integrated Plotting Tool which may be used graphically represent data.

General features

  • multi-platform. LabRPS runs and behaves exactly the same way on Windows, Linux, macOS and other platforms (but it is still under testing on Linux and macOS).
  • full GUI application. LabRPS has a complete Graphical User Interface based on the Qt framework.
  • runs as a command line application. In command line mode, LabRPS runs without its interface but with all its simulation tools. In this mode it has a relatively low memory footprint and can be used, for example, as a server to produce content for other applications.
  • can be imported as a Python module. LabRPS can be imported into any application that can run Python scripts. As in command line mode, the interface part of LabRPS is unavailable, but all simulation tools are accessible.
  • workbench concept. In the LabRPS interface, tools are grouped by workbenches. This allows you to display only the tools used to accomplish a certain task, keeping the workspace uncluttered and responsive, and allowing the application to load rapidly.
  • Plugin concept. The power of LabRPS lies in its flexible plugin system. All computational components of LabRPS are encapsulated within "LabRPS Features" (objects), which are organized into plugins. This structure allows scientists, engineers, researchers, and students to select the exact computational tools that best meet their specific needs.
  • plugin/module framework for late loading of features/data-types. LabRPS is divided into a core application with modules and workbenches that are loaded only when needed. Almost all tools are stored in workbenches. Workbenches behave like plugins; in addition to delayed loading, individual workbenches can be added to or removed from an existing installation of LabRPS.
  • parametric associative document objects. All objects in a LabRPS document can be defined by parameters. Those parameters can be modified and recomputed at any time. Since object relationships are maintained, the modification of one object will automatically propagate to any dependent objects.
  • Undo/Redo framework. Everything in LabRPS is undo/redoable, with user access to the undo stack. Multiple steps can be undone at one time.
  • transaction oriented. The undo/redo stack stores document transactions, not single actions, allowing each tool to define exactly what must be undone or redone.
  • built-in scripting framework. LabRPS features a built-in Python interpreter, with an API that covers almost any part of the application, the interface and the simulation tools. The interpreter can run complex scripts as well as single commands.
  • built-in Python console. The Python interpreter includes a console with syntax highlighting, autocomplete and a class browser. Python commands can be issued directly in LabRPS and immediately return results, permitting script writers to test functionality on the fly, explore the contents of LabRPS's modules and workbenches and easily learn about LabRPS internals.
  • mirrors user interaction. Everything the user does in the LabRPS interface executes Python code, which can be printed on the console and recorded in macros.
  • full macro recording and editing capabilities. The Python commands issued when the user manipulates the interface can be recorded, edited if needed, and saved to be reproduced later.
  • compound (ZIP based) document save format. LabRPS documents are saved with a .rps extension. The document can contain many different types of information. The .rps file is itself a zip container; a saved LabRPS file has already been compressed.
  • fully customizable/scriptable Graphical User Interface. The Qt-based interface of LabRPS is entirely accessible via the Python interpreter. Aside from simple functions LabRPS itself provides to workbenches, the entire Qt framework is accessible. The user may perform any operation on the GUI such as creating, adding, docking, modifying or removing widgets and toolbars.
  • modular MSI installer. LabRPS's installer allows flexible installations on Windows systems. Packages for Ubuntu systems are also maintained (still under testing).