EPICpy

EPICpy: A Python Interface for EPIC Computational Cognitive Modeling - Published in JOSS (2022)

https://github.com/travisseymour/epicpy

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation

Repository

Cross Platform Python Interface for EPIC modeling using a C++ EPIClib backend

Basic Info
  • Host: GitHub
  • Owner: travisseymour
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 34 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 7
Created almost 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

ReadMe.md

EPICpy

A Python Interface for EPIC Computational Cognitive Modeling

Travis L. Seymour, PhD

DOI

Seymour, T. L., (2022). EPICpy: A Python Interface for EPIC Computational Cognitive Modeling. Journal of Open Source Software, 7(76), 4533, https://doi.org/10.21105/joss.04533


EPICpy Interface

Background - Previous Way to Model Using EPIC

EPIC is a computational cognitive architecture that specifies a theory of human performance and a facility to create individual task models constrained by that theory. EPIC compacts decades of psychological theory and findings into a rich set of processors and interactions, including those that model sensory perceptual, motor, cognitive, and memory subsystems of the human mind.

EPIC currently exists as an integration between a computational version of the architecture written in C++ (EPIClib) and a GUI-based simulation environment that uses it, also written in C++ (EPICapp). EPIC only runs on MacOS, and some tasks (e.g., writing virtual tasks, or perceptual encoders) requires knowledge of the C++ programming language.

EPICpy - A New Way To Do EPIC Modeling Using Python

EPICpy is a cross-platform Python-based interface to EPIClib that allows programming task devices and perceptual encoders in the Python programming language. However, EPIClib itself is still coded in C++ that is compiled into a Python library using Pybind11.

This repository contains the source code for EPICpy.

For more information:

Detailed EPICpy Documentation

Project Sources


IMPORTANT NOTICE
Monday March 24, 2025
As of version 2025.3.25.1, those who have existing copies of the epicpydevice folder, will need to update one of its files:

  • Open epicpydevice/epicpydevicebase.py in a text editor.
  • Replace the existing definition of the write method with this one:

python def write(self, text: str): """ Device write method for text that adds newlines properly. This will be dynamically added to the device object after it has been loaded and instantiated. """ self.parent.write(text, copy_to_trace=True)


EPCpy Installation

System Requirements for EPICpy

  • git: Git is a distributed version control system.

    • Linux: You almost certainly have this. Otherwise run sudo apt install git.
    • Windows: Use the installer at https://git-scm.com/
    • MacOS: Use the installer at https://git-scm.com/, or run xcode-select --install, or install Homebrew and then run brew install git.
  • uv: uv is a Python package and project manager.

  • xcb: Library implementing the client-side of the X11 display server protocol.

    • Linux Only: sudo apt install libxcb-cursor0

Python Requirements for EPICpy

  • EPICpy requires Python 3.10 (Linux and MacOS) or Python 3.9 (Windows). You will need the path to the appropriate version of Python.
    • run uv python list and copy the path to the Python version you need, e.g., on my Linux install, I can use /usr/bin/python3.10.
    • If you don't see an entry for Python 3.10 (Linux & MacOS) or Python 3.9, you can install the version you need:
    • uv python install 3.10 (Linux & MacOS) or uv python install 3.9 (Windows), and then run uv python list to jot down the path to Python.

Install EPICpy

On Linux & MacOS:

bash uv tool install git+https://www.github.com/travisseymour/EPICpy.git --python [PATH_TO_YOUR_PYTHON_310]

On Windows:

bash uv tool install git+https://www.github.com/travisseymour/EPICpy.git --python [PATH_TO_YOUR_PYTHON_39]

For example,

```bash

Linux or MacOS

uv tool install git+https://www.github.com/travisseymour/EPICpy.git --python /usr/bin/python3.10

Windows

uv tool install git+https://www.github.com/travisseymour/EPICpy.git --python AppData\Local\Programs\Python\Python310\python.exe ```

Owner

  • Name: Travis L. Seymour
  • Login: travisseymour
  • Kind: user
  • Company: University of California Santa Cruz

JOSS Publication

EPICpy: A Python Interface for EPIC Computational Cognitive Modeling
Published
August 26, 2022
Volume 7, Issue 76, Page 4533
Authors
Travis L. Seymour
University of California Santa Cruz, US
Editor
Prashant Jha ORCID
Tags
python cognitive architecture cognitive psychology human performance simulation

GitHub Events

Total
  • Watch event: 1
  • Push event: 58
  • Create event: 1
Last Year
  • Watch event: 1
  • Push event: 58
  • Create event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 312
  • Total Committers: 1
  • Avg Commits per committer: 312.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 109
  • Committers: 1
  • Avg Commits per committer: 109.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
nogard n****d@u****u 312
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 7
  • Average time to close issues: 9 days
  • Average time to close pull requests: about 1 hour
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 5.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jakdot (1)
Pull Request Authors
  • travisseymour (6)
  • arfon (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

pyproject.toml pypi
requirements.txt pypi
  • PyQt-Qt ==5.15.2
  • PyQt5 ==5.15.10
  • PyQt5-sip ==12.13.0
  • PyQt5-stubs ==5.15.6.0
  • PySide6 ==6.5.1
  • QtPy ==2.3.1
  • ascii_frame ==0.0.1
  • black ==23.3.0
  • lazy_loader ==0.4
  • loguru ==0.6.0
  • pandas ==2.0.2
  • pingouin ==0.5.3
  • plum_dispatch ==2.0.1
  • plumbum ==1.8.1
  • pyqtdarktheme ==2.1.0
  • pytest ==7.2.2
  • python-dateutil ==2.8.2
  • qt6-tools ==6.4.3.1.3
  • ulid ==1.1
  • ulid2 ==0.3.0
setup.py pypi