Features

LabPal incorporates a number of innovative features. If you are not using LabPal, does your experimental code allow you to tick a box on each of these items?

Export to a stand-alone executable bundle
All your experimental setup (including your code, its input files and library dependencies) can be bundled into a single, runnable JAR file, making it easy for anybody to download and re-run your experiments.
Execution control through a web interface
The runnable JAR acts as a web server; when launched, a user can see all the experiments and control their execution using a web browser. A user can choose to run only a selection of experiments, and generate only a portion of all the tables and plots. Each running experiment can update a visual progress bar; LabPal can even estimate and show the time remaining before they complete.
Provenance tracking
LabPal keeps track of each datapoint generated by an experiment. These datapoints are given unique IDs and can be queried through the web interface. In addition, LabPal can display the complete chain of transformations leading from raw data to any individual value computed by your lab. No extra code is needed from the user. Table cells and macros exported to LaTeX have PDF hyperlinks containing the unique ID of each datapoint, making it possible to retrace every individual value included in a PDF back to the lab's experiment where it was computed. (See the video that shows an example.)
Experiment prerequisites
Experiments can declare pre-conditions that must be fulfilled before being run, and can also fulfill these prerequisites (e.g. generating files). If multiple experiments share the same prerequisites, LabPal makes sure they can be shared and fulfilled only once.
Automated generation of PDF and PNG plots
Tables and plots are first-class objects provided by LabPal. You can create a table by simply adding experiments to a Table object, and a plot by associating a table to a Plot object. Tables can be transformed by applying TableTransformation to them; no need to manually parse and crunch intermediate CSV files. Plots can be generated using either Gnuplot or GRAL, and exported to a variety of formats.
Pause, save and resume
A set of partially executed experiments can be saved to disk, then reloaded and resumed at a later time (or even on a different machine).
LaTeX integration
LabPal generates LaTeX files for all tables and plots, making it easy to include these elements inside a research paper in progress without any extra code. What is more, tables and plots can be bundled into a single include file; the appropriate table or plot in the text can be displayed by calling the appropriate user-defined command.
Macros
Macros are values computed from the lab's content and exported as LaTeX commands, removing the need to hard-code values into the text. Results can be refreshed by overwriting these macro definitions without having to change the paper.
Distributed computing
The same lab instance can be started on multiple machines and be instructed to run different sets of experiments. Results are merged through network communication between these instances.
Notebook export
A lab's results can be exported as a zip bundle made of static, interlinked HTML files, creating an interactive "notebook" that can be used to explore the results offline. When run in batch mode, LabPal can be incorporated into a reproducible environment, such as a Code Ocean "capsule".
Multi-dimensional iteration with regions
LabPal provides objects called regions, which represent multi-dimensional ranges of parameter values. Regions can be used to filter experiments, or to iterate over combinations of input parameters having arbitrary shapes (not just hyperrectangles!). This makes it easy to create tables and plots from the same set of experiments by varying the independent variables.