Bringing Scientific Software to the Web Browser

live execution log for DISHTINY web app Live execution log for DISHTINY web app.

Although nominally open sourced, much scientific software is inaccessible in practice because it is prohibitively difficult to use — particularly for members of the general public. This software usually requires users to manually download and install the software, manage complicated software dependencies, and have familiarity with command-line interfaces. Browser-based software with an interactive GUI removes those barriers for both the public and for other scientists.

The Empirical project unlocks the benefit potential of in-browser scientific software by providing a C++ interface to implement HTML GUIs that wrap the pre-existing research version of software, making it easier for researchers to keep the most recent version of scientific software available widely.

Where possibles, I package my experiments & software with Empirical and publish them as interactive in-browser apps like DISHTINY. I also serve as a core contributor on the Empirical project, leading development of re-usable “prefabricated” GUI components and maintaining support for the Emscripten Web Worker API in the core library, among other responsibilities.

Publications & Software
2024 Empirical: A scientific software library for research, education, and public engagement
Journal of Open Source Software
Download
View at Publisher
Authors
Date June 2nd, 2024
DOI 10.21105/joss.06617
Venue Journal of Open Source Software
Abstract

Empirical is a C++ library designed to promote open science and facilitate the development of scientific software that is efficient, reliable, and easily distributable to researchers and non-experts alike. Specifically, the library sets out to fulfill the following goals:

  1. Utility: Empirical tools streamline common scientific computing tasks such as configuration, end-to-end data management, and mathematical manipulations.
  2. Efficiency: Empirical implements general-purpose data structures and algorithms that emphasize computational efficiency to support scientific computing workloads.
  3. Reliability: Empirical provides sophisticated debug-mode instrumentation including audited memory management and safety-checked versions of standard library containers.
  4. Distributability: Empirical is highly portable, uses common data formats, and facilitates compile-to-web app development with object-oriented bindings for Emscripten/WebAssembly GUI elements, all with the goal of building broadly accessible scientific software.
BibTeX
⎘ copy to clipboard
@article{vostinar2024empirical,
  year = {2024},
  publisher = {The Open Journal},
  author = {Vostinar, Anya and Lalejini, Alexander and Ofria, Charles and Dolson, Emily and Moreno, Matthew Andres},
  title = {Empirical: A scientific software library for research, education, and public engagement},
  journal = {Journal of Open Source Software},
  volume = {9},
  number = {98},
  pages = {6617},
  doi = {10.21105/joss.06617},
  url = {https://doi.org/10.21105/joss.06617},
}
Citation
⎘ copy to clipboard

Vostinar, A., Lalejini, A., Ofria, C., Dolson, E., & Moreno, M.A. (2024). Empirical: A scientific software library for research, education, and public engagement. Journal of Open Source Software, 9(98), 6617, https://doi.org/10.21105/joss.06617

Supporting Materials

2020 dishtiny
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

C++ library for digital evolution simulations studying digital multicellularity and fraternal major evolutionary transitions in individuality.

Supporting Materials

2018 Empirical
header-only C++ library
View on GitHub
Date January 1st, 2018
Venue header-only C++ library

Empirical is a library of tools for developing useful, efficient, reliable, and available scientific software. The provided code is header-only and encapsulated into the emp namespace, so it is simple to incorporate into existing projects.

BibTeX
⎘ copy to clipboard
@software{Ofria_Empirical_C_library_2020,
  author = {Ofria, Charles and Moreno, Matthew Andres and Dolson, Emily and Lalejini, Alex and {Rodriguez Papa}, Santiago and Fenton, Jake and Perry, Katherine and Jorgensen, Steven and hoffmanriley and grenewode and Baldwin Edwards, Oliver and Stredwick, Jason and cgnitash and theycallmeHeem and Vostinar, Anya and Moreno, Ryan and Schossau, Jory and Zaman, Luis and djrain},
  doi = {10.5281/zenodo.4141943},
  license = {MIT},
  month = {10},
  title = {{Empirical: C++ library for efficient, reliable, and accessible scientific software}},
  url = {https://github.com/devosoft/Empirical},
  version = {0.0.4},
  year = {2020}
}
Citation
⎘ copy to clipboard

Ofria, C., Moreno, M. A., Dolson, E., Lalejini, A., Rodriguez Papa, S., Fenton, J., Perry, K., Jorgensen, S., , H., , G., Baldwin Edwards, O., Stredwick, J., , C., , T., Vostinar, A., Moreno, R., Schossau, J., Zaman, L., & , D. (2020). Empirical: C++ library for efficient, reliable, and accessible scientific software (Version 0.0.4) [Computer software]. https://doi.org/10.5281/zenodo.4141943

Supporting Materials