EPICpy
EPICpy: A Python Interface for EPIC Computational Cognitive Modeling - Published in JOSS (2022)
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
Repository
Cross Platform Python Interface for EPIC modeling using a C++ EPIClib backend
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 7
Metadata Files
ReadMe.md
EPICpy
A Python Interface for EPIC Computational Cognitive Modeling
Travis L. Seymour, PhD
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
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:
Project Sources
- EPICpy Source Repository (this repository)
- EPICpy Documentation Repository
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
writemethod 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 runbrew install git.
- Linux: You almost certainly have this. Otherwise run
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
- Linux Only:
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 listand 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) oruv python install 3.9(Windows), and then runuv python listto jot down the path to Python.
- run
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
- Repositories: 1
- Profile: https://github.com/travisseymour
JOSS Publication
EPICpy: A Python Interface for EPIC Computational Cognitive Modeling
Authors
University of California Santa Cruz, US
Tags
python cognitive architecture cognitive psychology human performance simulationGitHub 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
Top Committers
| Name | 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
- 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

