{"id":25461284,"url":"https://github.com/devosoft/empirical","last_synced_at":"2026-03-11T21:05:44.172Z","repository":{"id":21505564,"uuid":"24824563","full_name":"devosoft/Empirical","owner":"devosoft","description":"A library of tools for scientific software development, with emphasis on also being able to build web interfaces using Emscripten.","archived":false,"fork":false,"pushed_at":"2026-03-07T18:54:49.000Z","size":76991,"stargazers_count":91,"open_issues_count":118,"forks_count":40,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-03-07T22:56:17.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devosoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-10-05T19:50:00.000Z","updated_at":"2026-01-31T22:27:11.000Z","dependencies_parsed_at":"2023-09-22T02:12:56.684Z","dependency_job_id":"312a2120-2d7b-4b2c-8cf6-a354c87ecdad","html_url":"https://github.com/devosoft/Empirical","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/devosoft/Empirical","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devosoft%2FEmpirical","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devosoft%2FEmpirical/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devosoft%2FEmpirical/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devosoft%2FEmpirical/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devosoft","download_url":"https://codeload.github.com/devosoft/Empirical/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devosoft%2FEmpirical/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30400806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T21:02:20.017Z","status":"ssl_error","status_checked_at":"2026-03-11T20:59:32.667Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-18T05:29:10.062Z","updated_at":"2026-03-11T21:05:44.153Z","avatar_url":"https://github.com/devosoft.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Empirical Logo](/doc/EmpiricalBanner.png)\n\nEmpirical is a library of tools for developing useful, efficient, reliable, and available\nscientific software.  The provided code is header-only and encapsulated into the emp\nnamespace, so it is simple to incorporate into existing projects.\n\n[![status](https://joss.theoj.org/papers/9a9ff2d6232a7511878151c26a9433f4/status.svg)](https://joss.theoj.org/papers/9a9ff2d6232a7511878151c26a9433f4)\n[![CI](https://github.com/devosoft/Empirical/workflows/CI/badge.svg)](https://github.com/devosoft/Empirical/actions?query=workflow%3ACI+branch%3Amaster) [![Documentation Status](https://readthedocs.org/projects/empirical/badge/?version=latest)](https://empirical.readthedocs.io/en/latest/?badge=latest) [![DOI](https://zenodo.org/badge/24824563.svg)](https://zenodo.org/badge/latestdoi/24824563) [![codecov](https://codecov.io/gh/devosoft/Empirical/branch/master/graph/badge.svg)](https://codecov.io/gh/devosoft/Empirical)\n[![DockerHub](https://img.shields.io/badge/DockerHub-Hosted-blue)](https://hub.docker.com/r/devosoft/empirical)\n![Documentation Coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fdevosoft%2FEmpirical%2Fgh-storage%2Fstats%2Fdoc-coverage.json)\n[![GitHub contributors](https://img.shields.io/github/contributors/devosoft/Empirical.svg?style=flat-square)](https://github.com/devosoft/Empirical/graphs/contributors)\n\n\nSee our [Built With Empirical Gallery](https://empirical.readthedocs.io/en/latest/BuiltWithEmpiricalGallery) for examples of web tools built with Empirical.\n\nSee our [Quick Start Guides](https://empirical.readthedocs.io/en/latest/QuickStartGuides) to start using the library.\n\nStarting out on a new project that will use Empirical?\nTake a look at the [cookiecutter Empirical project template](https://github.com/devosoft/cookiecutter-empirical-project) for automatically setting up a directory structure with all the files you need to get started -- step-by-step instructions included!\n\nTools in Empirical include:\n\n* Web-enabled elements to facilitate compiling to JavaScript and with a full web interfaces,\n  using Mozilla's Emscripten compiler (from C++ to high-efficiency JavaScript).\n* Debug tools to facilitate audited memory management; these tools are turned off outside of\n  debug mode allowing the full speed of raw pointers and normal standard library components.\n* A wide range of Helper tools to streamline common scientific computing tasks such as\n  configuration, data management, mathematical manipulations, etc.\n  All of these are designed to be  easy-to-use and efficient.\n* A powerful set of evolution tools for building Artificial Life or Evolutionary Computation\n  software.\n* A signal-action system that allows for efficient customization of tools, and flexible\n  software that can easily facilitate plug-in functionality.\n\nSee \u003chttps://empirical.readthedocs.io/en/latest\u003e for more detailed documentation\non the available source files.\n\n# Citing\n\nIf Empirical contributes to a scientific publication, please cite it as\n\n\u003e Vostinar, A., Lalejini, A., Ofria, C., Dolson, E., \u0026 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\n\n```bibtex\n@article{devosoft2024empirical,\n  year = {2024},\n  publisher = {The Open Journal},\n  author = {Vostinar, Anya and Lalejini, Alexander and Ofria, Charles and Dolson, Emily and Moreno, Matthew Andres},\n  title = {Empirical: A scientific software library for research, education, and public engagement},\n  journal = {Journal of Open Source Software},\n  volume = {9},\n  number = {98},\n  pages = {6617},\n  doi = {10.21105/joss.06617},\n  url = {https://doi.org/10.21105/joss.06617},\n}\n```\n\nPlease cite phylogeny tracking tools separately as shown [here](https://github.com/emilydolson/phylotrackpy/blob/main/README.md#citing).\nAnd don't forget to leave a [star on GitHub](https://github.com/devosoft/Empirical/stargazers)!\n\n# Directory Structure\n\n| Folder       | Description\n| ------------ | ----\n| demos/       | examples of mini projects using Empirical\n| doc/         | Documentation files (including for auto generation of docs)\n| examples/    | Example code for many of the above tools (sub-directory structure parallels source/)\n| include/     | Header files that make up the Empirical library (see below for details)\n| Planning/    | Scattered notes about future development (most notes found in GitHub issue tracker)\n| tests/       | Unit tests\n| third-party/ | Non-empirical dependencies\n\n# Sub-folders in include/emp directory\n\n| Sub-Folder  | Description\n| ----------- | ----\n| base/       | Debug tools used throughout Empirical for fast and efficient memory management\n| bits/       | Tools for conveniently and efficiently working with bit representations\n| config/     | Tools to build a simple configuration system (including compile-time optimizations)\n| control/    | Signaling tools allowing for fast and dynamic interaction across components\n| compiler/   | Components for compiling code\n| data/       | Tools for easy data management and output\n| datastructs/| A variety of useful data structures and tools for using data structures\n| debug/      | Tools to facilitate debugging (particularly of emscripten-generated web code)\n| functional/ | Tools for handling functions, sets of functions, and memoization\n| games/      | Implementations of simple games\n| geometry/   | Geometry and physics-based tools for implementing simple virtual worlds\n| hardware/   | Implementation of basic virtual hardware that is easy to configure\n| io/         | Tools for handling input/output\n| matching/   | Tools for tag-based matching\n| math/       | Generally useful tools for math and randomness\n| meta/       | Helpful tools for template meta-programming\n| prefab/     | Prefabricated web elements to drop onto web pages\n| scholar/    | Tools for tracking authors, citations, and bibliographies\n| tools/      | Basic tools that are generally useful for scientific software\n| web/        | Tools for building web interfaces (more low-level than in prefab)\n| Evolve/     | Specialized tools for building Artificial Life or Evolutionary Computation projects\n| in_progress/| Tools that are being worked on, but not at all ready for public consumption\n\n# Development Status\n\nEmpirical is under heavy development.  As such, many source files have at least one of the\nfollowing statuses:\n\n| Status | Meaning\n| ------ | -------\n| DESIGN | Notes are in place, but no (or minimal) working code\n| EXPLORATORY | Some functionality may work, but needs re-engineering to get right\n| ALPHA | Some basic functionality works, but more features still need to be added and tested\n| BETA | Basic functionality is all in place, but needs more thorough testing.\n| RELEASE | Well-tested functionality and used in multiple projects, at least by authors\n| STABLE | Used by many non-authors in assorted projects without fixes for extended period\n| ABANDONED | May have worked, or may not; no longer being developed\n| BROKEN | Once worked (at least BETA level), but now needs to be repaired (not abandoned!)\n| CLEANUP | At least BETA, but needs code cleanup, fixing of warnings, etc\n| DEPRECATED | Functionality has been replaced and should shift to replacement.\n| EXTERNAL | Part of another project (cited above); not developed as part of Empirical\n\n# Levelization\n\nThe structure of Empirical is levelized to facilitate development and testing.  This means\nthat all directories are on a level where dependencies are either internal to that directory\nor on lower levels.  Likewise, within a directory, files have a level and depend only on other\nfiles at lower levels.\n\n| Level | Folders\n| ----  | ----\n| 0 |  base/\n| 1 |  meta/\n| 2 |  tools/\n| 3 |  config/  control/  data/  games/  geometry/  hardware/  scholar/\n| 4 |  Evolve/ (data, control)  web/ (config, control)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevosoft%2Fempirical","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevosoft%2Fempirical","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevosoft%2Fempirical/lists"}