Implementation of the adaptive computation architecture in "Adaptive computation as a new mechanism of dynamic human attention"
@article{Belledonne_Butkus_Scholl_Yildirim,
title={Adaptive computation as a new mechanism of dynamic human attention},
author={Belledonne, Mario and Butkus, Eivinas and Scholl, Brian J. and Yildirim, Ilker},
journal={Psychological Review},
year={2025}
} - Clone repository
git clone https://github.com/CNCLgithub/motandcd mot - Run
./env.d/setup.sh cont_pull python juliato build the container and setup python and Julia. - Enter
./env.d/run.sh juliato get into Julia REPL - Run
./env.d/setup.sh datasetsto download the datasets used for the experiments.
This project has automatic configuration!! This configuration is defined in default.conf.
You should always prepend ./run.sh before any command (including running programs like julia) to ensure consistency.
If you wish to have different values than default.conf, simply:
cp default.conf user.conf
vi user.conf # edit to your liking without adding new elementsThe project is organized into core routines (under src) and user scripts (under scripts).
In order to run the adaptive computation model from scratch:
- Run the relevant scripts under
scripts/experiments(batch scripts are provided for SLURM) - Aggregrate model traces using
scripts/analysis/aggregate_chains.jl - Export the produces "csv" files to the analysis repo
More details can be found in the README for each section.
In order to use singularity you must have a virtual machine running. Assuming you have vagrant (and something like virtualbox) setup on your host, you can follow these steps
- Place all re-used code in packages (
srcorfunctional_scenes) - Place all interactive code in
scripts - Do not use "hard" paths. Instead refer to the paths in
SPATHS. - Add contributions to branches derived from
masterordev - Avoid
git add * - Do not commit large files (checkpoints, datasets, etc). Update
setup.shaccordingly.
The python package environment is managed by as defined in setup.sh (specifically SENV[pyenv])
Likewise, the Julia package is described under src and test
All scripts are located under scripts and data/output is under env.d/spaths as specific in the project config (default.conf or user.conf)
To add new python or julia packages use the provided package managers (poetry add or Pkg.add for python and julia respectively.)
For julia you can also use ] add in the REPL