Recent Releases of stimupy
stimupy - v1.2.0
v1.2.0 (2025-08-24)
Bug Fixes
edgesdeal with shape argument properly (7f03738)Example stimuli in overviews don't throw warnings (
5886950)Fixed todo-equal and made more flexible; closes #134 (
8405f33)Improved rounding-function to prevent running out of memory (
6db1c7b)Updated todorovic equal for RHS2007 (
6991194)
Build System
Add spellcheck to linting (
6e4e39f)Better declaration of development dependencies, and sync in GHA (
ac5bb0c)Bump required version python>=3.9 (
94bf3e5)Configure and address linting (
dddc5e4)Configure linting, and exceptions. (
100752b)Switch linting to Ruff (
f7bb8f8)Test for all Python versions >=3.9 (
bb17076)Update a GHA in versioning and releasing workflows (
2e17452)Update RTD dependencies sync (
a5028d8)Upgrade
testGHA to use uv (be8ca28)Upgrade required version jupyter-book (
a719631)
Chores
- Fix some spelling errors (
8c1ebcd)
Code Style
Clarify (
37d5ad9)Format function arguments (
bbfea0d)Ignore/fix some linting issues (
3e4476e)Typo fix, make linter pass (
ffce026)papers: Betz2015 (
adb4712)papers: Formatting (
a30d96b)
Documentation
Fill in remaining params, for images (
ad8c6ad)Fix a few cross-references (
8863481)Fix RTD (
8b439f0)Move dynamic docs-related code into stimupy._docs (
37dc5f1)Organization in user guide, cross-embed in tutorial (
0436639)Revert to how-tos (
be6a71c)RTD has to generate images before building (
d92526d)Separate out Topic Guide on Masks, and How-To Compose (
1675f67)Stimspaces (
842613d)Structure config (
ea405c0)Try to avoid summary table of functions to link to subpages (
8ec6c89)Update docstring
round_to_vals(9c3e844)User guide (
81a33ab)Visual noise (
9c2920f)demos: Convert to use
panelinstead ofipywidgets(c000575)demos: Enable pyodide (
1a0a0e7)demos: Extract params definitions (
a5829e6)demos: Landing index pages (
14bcb90)demos: Link to demos from API reference pages (
6494887)demos: Pyodide directives in demos (
a2c4923)demos: Split into individual function demos (
4a3c208)how-to: Color (
6947af8)howtos: Including finding stimulus (
b46ab3b)noises: Add RNG to docstring (
577f060)papers: Docstrings for
betz2015(9edcce2)papers: Papers docs better describe how to get overviews, functions (
8a20b9c)qrcode: Bugfix (
aed41b5)reference: Add dependencies for interactivity (
0e1daf6)reference: Add galleries to
moduleandpackagepages (9a0d3c2)reference: Also document imported functions (
ca2e736)reference: Also generate paper images (
4324e85)reference: Functionality to
display_stimulus(050aa43)reference: If not a stimulus function, nothing in function page (
3e1f158)reference: Include images in function pages (
b35776e)reference: No galleries and individual function pages for util functions (
b935900)reference: Script to generate images from params (
c65c23a)reference: Short names for more convenient ToCs (
078c7e8)reference: Templates for API documentation pages (
2d36216)reference: Top-level entry page (
d6d127f)reference: Use
sphinx-autoapiinstead ofautosummaryto generate (b442baf)stimuli: "$ python -m stimupy.stimuli" generates overview figure (
cb4e4dd)tutorial: Choose variation of stimulus (parametrization) (
776f720)tutorial: Create stimulus as bit more of tutorial (
7d0b7be)tutorial: Edit finding stimulus (
98abfd2)tutorial: Find stimulus (new page) (
d99bae7)tutorial: Move and edit page on organization (
09e279f)tutorial: Move composition to user guide (
2c0a6f2)tutorial: Reorganize installation, create stimulus (
ef5d29a)tutorial: Replicating existing stimuli (
16b8693)tutorial: Using stimulus (
2c842e1)User Guide: Galleries of lightness stims (
c1aa114)User Guide: Lightness and illusions stimuli groups (
28e526b)User Guide: Remove erroneous description in geometric illusions (
1362b4d)user guide: Stimulus groups (
bd6fede)user guide: Stimulus parametrization (
0ea7fef)utils: Docstrings for stimspace functions (
9b929a7)
Features
Add
modetoround_to_vals(910324a)Faster solution for rounding to / finding nearest values (
d329da6)Stimuli set from Schmittwilken et al 2024, including data (
0d924b4)Util function to get number of None-args (
51370c5)Util function to turn single numbers into list (
b6abd60)noises: Noise functions accept random number generator (
dfc128a)papers: Stimuli set from Betz 2015, including data (
a4c2b96)plotting: Can specify ncols and/or nrows in
plot_stimuli(8a01575)
Refactoring
Don't use
match ... casesyntax (b75c68c)Rename new utils
count_none_argsandrepeat_numeric_arg(5c12abc)Replace all
printing withlogging(279bb23)betz2015: More centralized creating of stimuli, masks (
1ca4cdb)papers:
betz2015takes in RNG to pass for noise generation (23d7c9b)papers:
betz2015uses logger instead of print (deb9873)papers:
schmittwilken2024uses logger, instead of print (0441f73)
Testing
Add test for
round_to_valswith varying sizes (f3d3348)Add tests for new stimulus set (
dd4e290)Check bounds for rounding (
a8416ef)Logging (
1a0ba0d)Make RNG based tests reproducible (
0600b77)Remove testing of papers.betz2015 for now (
ea9eb98)Remove testing of papers.schmittwilken2024 for now (
5876388)noises: Also pass RNGs (when necessary) in generating ground test truths (
a27af4e)noises: Test reproducibility of all noise textures (
9999cf6)
Detailed Changes: v1.1.2...v1.2.0
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent 6 months ago
stimupy - v1.1.2
v1.1.2 (2024-04-23)
Chore
- chore: misspellings CHANGELOG
fix current misspellings, but ignore changelog going forward since it is autogenerated from commit messages (95cf322)
- chore: linting (
d40a8bc)
Fix
- fix: cornsweet edge intensity is now exactly as in intensity_edges; close #122 (
cc701a3)
Unknown
- Merge pull request #123 from computational-psychology/bugfixcornsweetedge
fix: cornsweet edge intensity is now exactly as in intensity_edges (9e8bbbb)
- Merge pull request #125 from computational-psychology/chore
chore: linting (a93fff7)
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent almost 2 years ago
stimupy - v1.1.1
v1.1.1 (2024-02-09)
Build
- build: configure
codespellto fix misspellings
Requires python^3.11.0 to use pyproject.toml
Exclude everything in docs/_build,
and the exact lines in .codespell.ignore
Also add to pre-commit checks (37bac3d)
- build: only trigger publishing workflow once per release (
44a303b)
Documentation
docs(periodics): fix Gabor argument
intensities(533e1e2)docs(tutorial): fix references to
two_sided(19f59a9)
Fix
- fix(checkerboards): define multiple target intensities
Previously, checkerboards could only draw a single target intensity, even if multiple targets are specified. For some stimuli however, I want to have two target checks, each with a different intensity value.
Use components.draw_regions to do the actual target drawing. Ensures consistency with other stimuli with targets. (ab525b3)
- fix(checkerboards): define multiple target intensities
Use components.draw_regions to do the actual target drawing. Ensures consistency with other stimuli with targets (442bd29)
- fix(RHS2007): WE_dual separate mask for each target
Previously, the targets in black were lumped together, as were the targets in white. Now, each target, in each of the two stimuli, has its own mask idx (0b78372)
- fix(whites): enable specifying either 1, or multiple target indices
Some configuration was causing errors (ba552b9)
- fix(text): remove text direction argument
Pillow is complaining about libraqm not being installed. Previously, it was not complaining about this. This problem seems to be limited to asking for a writing direction -- without that, Pillow no longer complains (6cceca6)
Style
- style: use codespell to fix misspellings (
de8efb4)
Test
- test(RHS2007): regen ground truth
Only mask of WE_dual changed (6c76f2e)
Unknown
- Merge pull request #121 from computational-psychology/dev
Bugfixes (da97ecf)
Merge branch 'main' into dev (
1d4371a)Merge pull request #120 from computational-psychology/build
Update build-system (d56e528)
- Merge pull request #118 from computational-psychology/fix/whites_targets
fix(whites): enable specifying either 1, or multiple target indices (8ec7d6e)
- Merge pull request #117 from computational-psychology/fix/RHS2007
Fix(RHS2007): Individually mask each target in WE_Dual (3cba67d)
- Merge pull request #119 from computational-psychology/fix/text
fix(text): remove text direction argument (759f8e8)
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent about 2 years ago
stimupy - v1.1.0
v1.1.0 (2023-09-21)
Build
build: update PSR config (
8659604)build: update versioning to use python-semantic-release@v8.0 (
e0cd11e)build(manuscript): allow manual trigger (
b46fdf8)
Chore
chore: autoformat (
106dee7)chore: autoformat (
95ccba7)chore(autoformat): update pre-commit config (
47c408c)chore: (auto)format (
dea6b57)
Documentation
docs(demos):
sbcs.generalized_two_sided()demo (7318280)docs(demos):
sbcs.square_two_sided,.circular_two_sideddemos (e781cfb)docs(sbcs): unify docstrings (
60d3c80)docs(frames): docstrings (
5d83551)docs(radials): docstrings (
fd79e0b)docs(demos): update
two_sideddemos (c2beace)docs(demos): bullseyes.circular_generalized (
25669ca)docs(demos): rings.circular_generalized (
a19a1c4)docs(demos): fix White's demo (
37b70c3)docs(demos): text demo (
ef686f3)docs(demos): add support for two-sided parameter specification (
aec4043)docs(citation): add to TOC (
c2a9574)docs(citation): reformat (
e940428)docs: added citation to readme and docs (
6279322)docs(manuscript): "use case" as two words (
c3d999c)docs: final touchup on manuscript (
d3c04ef)docs(manuscript): update references (
f57ec56)docs: final touch-up on manuscript (
2f37a9d)docs: changed manuscript title (
18d95fb)docs: made editorial changes to manuscript (
856c8a9)
Feature
feat(sbcs):
sbcs.generalized_two_sided()(dbfbab1)feat(sbcs.gen): enable rotation in generlized SBC
Closes #39 (bfe946b)
feat(sbcs):
_two_sidedversions of allsbcs.(7bac6a1)feat(sbcs):
sbcs.circular,.square
Pass-through wrappers based off bullseyes.<> (0ff0213)
feat(two-sided): utility wrapper-function to create two-sided stimuli (
624bf50)feat(stimuli): bullseyes.circular_generalized (
8b9ad10)feat(stimuli): rings.circular_generalized (
7e0cf7c)feat: components.texts (
88d5ffc)
Fix
- fix(disk): mask is now properly aligned
Fix by basing disk on rings rather than on ring (911cbd6)
- fix: rename
_masks
Add a distance-specific mask (bar_, ring_, frame_, segment_). These are similarly named in the "generalized" versions of these stimuli (frames, rings, etc.).
This is just a reference to grating_mask, so that will remain consistent between all wave-like stimuli.
Closes #102 (2cc9222)
- fix(bullseyes): update bullseye target specification
Now that indexing is 1-based. (92c9e1b)
fix(paddict): should also update ppd, visualsize, if it can (
dab5bf5)fix(RHS2007): correct targets in Todorovic' Benary 12, 34
Closes #90
123_4() was already correct.
Others now use that one as base (520c659)
Refactor
- refactor(papers): use
sbcs.<>_two_sided()in papers
domijan2015.simultaneous_brightness_contrast()
RHS2007.sbc_small()
RHS2007.sbc_large() (3ee13ed)
refactor(radials): more integrated drawing (
afcdc3e)refactor(gratings,papers): update intensities order (
1ab048a)refactor: unify
intensity_arguments
(almost) all (0.0, 1.0)
Closes #80 (a00295f)
- refactor(waves): pass intensities through
Addresses #80 (44d7f79)
refactor(modelfest): more explicit conversions (
be4b53d)refactor(stimuli): use two-sided utility wrapper (
8ac1717)refactor(papers): update to use 1-based indexing of elements in Whites (
e1c3101)refactor(papers): update to use 1-based indexing of elements (
bd90b8e)refactor(whites): use
mask_targets()(1e04f07)refactor(waves): integrate
place_targets()(daf6acd)refactor: target_indices defaults to (), but can handle None
Closes #97 #98 (9e8d136)
refactor(rings): use
place_targets()inrings_generalized()(2da1b65)refactor(pinwheels): integrate
mask_targets()(c748706)refactor(stimuli):
place_targets()
actually places targets in stimulus-dict (fff6f14)
- refactor(stimuli):
mask_targets()
to standardize logic of indicating elements of gratings etc. as targets, which is a big par of the stimuli
Also allows for negative element indices, counting backwards from the highest element index
Closes #12 (9232891)
- refactor(export): guard clauses, pathlib (
e59fc51)
Style
Test
- test: update ground truth
single pixel changes in RHS2007WEradial_* (f4e4d48)
- test(modelfest): update
Disk40()and its groundtruth
Slightly decrease radius. This is actually results in an image that is exactly identical as the original published disk40.tif image (unlike previous ground truth, which was 4pix off) (30c9738)
test(modelfest): isolate code to test correspondence to original images (
4c44c88)test: extract function for image comparison (
813e3a2)test: fix gengroundtruth (
5ad8cb3)
Unknown
- Merge pull request #114 from computational-psychology/build_psr
Build: update python-semantic-release configuration (e281e9a)
- Merge pull request #108 from computational-psychology/dev
New features, refactoring, and fixes (3788170)
- Merge pull request #107 from computational-psychology/featsbcscircular
Add more sbcs..
sbcs.square() and sbcs.circular(), parameterized using target_radius and surround_radius, based on bullseyes.square() and .circular().
Adds some _two_sided() versions as well, which are now used in some papers.
Also enable rotation arg in sbcs.generalized(). (d1510e9)
docs(demos):
sbcs.circular,.squaredemos (81b5528)Merge pull request #106 from computational-psychology/refactortwosided
Easier _two_sided-stimuli functions (7ba0bee)
Merge branch 'dev' into refactortwosided (
db94838)Merge pull request #103 from computational-psychology/refactor_intensities
Unify intensity_arguments (4ff38d5)
- Merge pull request #104 from computational-psychology/test_modelfest
Refactor ModelFest comparison to original images (4218dc3)
- Merge pull request #101 from computational-psychology/refactor_targets
Refactor target placement in various stimuli.
Add mask_targets() and place_targets() general-purpose functions which can be used to designate target "elements" (bars, rings, frames, etc.) from an existing _mask.
Integrate new functions into waves, pinwheels, rings and whites
Add rings.circular_generalized() and bullseye.circular_generalized() using new functions
This single-implementation of target placement has the advantage that it all works the same: first element is 1, target_indices can be negative (counting "backwards" from the last bar/ring/etc.). (885ec6c)
- Merge pull request #100 from computational-psychology/build_refresh
build: update versioning to use python-semantic-release@v8.0 (16a3496)
- Merge pull request #96 from computational-psychology/fixtwosidedparams
fix: two-sided params for _two_sided-stimuli (1188af5)
- Merge pull request #95 from computational-psychology/feat_text
feat: text (e0effc0)
- Merge pull request #94 from computational-psychology/fixRHS2007TodorovicBenary
fix(RHS2007): correct targets in todorovic_benary_1_2(), 3_4() (00af7d2)
Closes #92 (5569a12)
Rings & Bullseyes (
23fc041)Mueller-Lyer (
6b01cce)DelBoueufs (
587aed5)Update tests (
fbd1dc4)Merge pull request #91 from computational-psychology/dev_citation
docs: added citation to readme and docs (316ded8)
- Merge pull request #89 from computational-psychology/dev_manuscript
docs: final touchup on manuscript (ca8bf43)
- Merge pull request #88 from computational-psychology/dev_manuscript
docs: final touch-up on manuscript (f756c54)
- Merge pull request #87 from computational-psychology/dev_manuscript
Final editorial (& title) changes to manuscript (b4bb148)
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent over 2 years ago
stimupy - v0.101.1
Fix
- Added relevant error message in todorovic (
0cb7f88) - Aligned functions args and output_dictionary keys for stimuli-gratings (
fba7785) - Aligned function args and output_dict keys (
6981318)
Documentation
- manuscript: Add comparison to OCTA (
551f80d) - Added missing arg-information to logo-function (
73e5a27) - Minor fix landing page (
fc8deb4) - Add logo (
1fce581)
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent almost 3 years ago
stimupy - v0.101.0
Feature
- Qr-code with logo embedded (
a14648e) - Added stimupy logo module, and function (
0b5b028) - export: To image, npy, mat, pickle, json (
3c09c5a) - Util to create stimspace (
1679eb5)
Fix
- Line_width in ellipse (
10b7745) - Added missing demo scripts for edges (
4c30a3b) - Corrected n_cells in dungeon-resolving (
cd0fc0c) - Aligned functions args and keys in outputs dicts (
107edb4) - Aligned functions args and keys in output dicts (
a3941e7) - Aligned function-args and keys in output dicts (
8ab889a) - Radial and rectilinear waves now correctly resolve n_phases (
ecce0b9) - mondrians: Clearer error when neither nrows, ncols, depths or intensities are specified (
f9a5a4d) - Bug in calculating plot-extent from stim-keys (
240a34a)
Documentation
- Add logo to README (
4dfabb0) - Typos (
ce4683d) - Fixed incorrect link in README (
c2e6575) - Updated documentation - mostly language (
d8f4211) - guide: Axes, orientations, distance_metrics (
7bc02ec) - guides: Waves & gratings (
4d5b507) - howto: Sharing (
4c950d2) - contribute: Instructions and examples for contributing paper set (
17ff040) - contribute: Split up contributing guide into subfiles (
2cc2cb0) - howto: Display stimuli (in experiment) (
a733b07) - howto: Export (
e647773) - howtos: Start how-tos (
8cd970a) - guides: Resolution (
ace6493) - Hover_xref configuration for objects (
c28b7be) - demos: Better exception-handling, hiding stacktrace (
ae98e04) - demos: Make dependencies explicit (
c3b0a0e) - readme: Fix some typos (
6983f90)
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent almost 3 years ago
stimupy - v0.100.0
Feature
- rectilinear: Add rotation to rectilinear stimuli (
0670d6b)
Documentation
- Outline dependencies for demos in installation instructions (
f6a3d98) - topic guides: Hide guides that are under construction (
8a1146f) - Cleanup installation instructions (
3d49f53) - Update references in replication tutorial (
2325ce3) - tutorial: More structured overview of
stimuli(722a977) - Better referencing, using hoverxref (
5a41f0f) - tutorial: More detail on composition, masks (
9be4db0) - tutorial: Clean up imports (
11053b3) - tutorial: Fix a reference (
506274e) - topics: Add page on how stimupy is organized (
0cd3934) - tutorial: Move tutorial to separate TOC entry (
cd3af04) - tutorial: More verbose tutorial component (
31c4ae6) - tutorial: Move composition to separate tutorial page (
939082a) - landing page: Use description from README, more detailed cards (
530dbc0) - README streamlined, in line with manuscript (
ad8445d) - Detail on dev installation instructions (
506ebf6) - More detailed contributing instructions (
97dfa31) - Get in touch (in addition to contribute) (
c42cccc) - rectilinear: Demo rotation of rectilinear stimuli (
2bd7b98) - Consistent docstrings & defaults for
rotationarguments (b441a34) - Docstring for
combine_masks(c1aa531) - Docstring for
draw_regions(2d2cad2) - Docstring for
mask_regions(725eaf0)
Scientific Software - Peer-reviewed
- Python
Published by JorisVincent almost 3 years ago