pulse2percept: A Python-based simulation framework for bionic vision
Globally, an estimated 43 million people are blind, with limited treatment options available for many causes of vision loss. For certain conditions, visual neuroprostheses - such as retinal and cortical implants - may be the only viable intervention.
However, understanding the perceptual experience generated by these devices remains a significant challenge. The artificial vision they provide is shaped by complex interactions between neural stimulation, underlying neurophysiology, and device-specific parameters.
pulse2percept (p2p) is an open-source Python package that offers spatiotemporal models of common retinal and cortical implants, providing a computational framework to simulate and study artificial vision.
(left: input stimulus, right: predicted percept)
Simulations such as the above are likely to be critical for providing realistic estimates of prosthetic vision, thus providing regulatory bodies with guidance into what sort of visual tests are appropriate for evaluating prosthetic performance, and improving current and future technology.
If you use p2p in a scholarly publication, please cite as:
M Beyeler, GM Boynton, I Fine, A Rokem (2017). pulse2percept: A Python-based simulation framework for bionic vision. Proceedings of the 16th Python in Science Conference (SciPy), p.81-88, doi:10.25080/shinma-7f4c6e7-00c.
Installation
To install the stable release of p2p, run:
pip install pulse2percept
pip installs NumPy and the other dependencies for you, and will only select a release that supports the Python version you are running (see Compatibility and Building from Source below).
We publish prebuilt wheels on PyPI for 64-bit Linux (manylinux, x86-64), macOS 11 and later (both Apple silicon and Intel), and 64-bit Windows. These wheels are not tied to a particular distribution or OS release beyond those minimums. You can find the full documentation here.
Compatibility and Building from Source
We do not publish wheels for 32-bit platforms or for musl-based distributions such as Alpine Linux. While other platforms are not explicitly supported, you may still be able to run p2p with minimal modifications: if pip does not find a prebuilt wheel for your system, it will attempt to install from source.
Supported Python versions:
Python |
3.13 |
3.12 |
3.11 |
3.10 |
3.9 |
3.8 |
3.7 |
3.6 |
3.5 |
|---|---|---|---|---|---|---|---|---|---|
p2p 0.9.1 |
Yes |
Yes |
Yes |
Yes |
|||||
p2p 0.9 |
Yes |
Yes |
Yes |
Yes |
|||||
p2p 0.8 |
Yes |
Yes |
Yes |
Yes |
|||||
p2p 0.7 |
Yes |
Yes |
Yes |
Yes |
|||||
p2p 0.6 |
Yes |
Yes |
Yes |
Yes |
Our GitHub Action Runners build and test p2p on the ubuntu-latest, windows-latest, and macos-latest images, on every Python version listed for the current release above. Those labels track whatever image GitHub currently ships, so the exact OS releases we test against change over time.
Upgrading and Uninstalling
To upgrade p2p to the latest stable version:
pip install -U pulse2percept
To uninstall:
pip uninstall pulse2percept -y
Installing the Bleeding-Edge Version
If you want to install the latest development version from source, make sure you have a C compiler available (see the note above), then run:
pip install git+https://github.com/pulse2percept/pulse2percept
For more details, see our Installation Guide.
If you encounter issues, check our Issue Tracker on GitHub for solutions or contribute fixes for unsupported platforms.
Where to go from here
Have a look at some code examples from our Example Gallery.
Familiarize yourself with visual implants, electrical stimuli, and our computational models.
Check the FAQ to see if your question has already been answered.
Request features or report bugs on our Issue Tracker on GitHub.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pulse2percept-0.9.1.tar.gz.
File metadata
- Download URL: pulse2percept-0.9.1.tar.gz
- Upload date:
- Size: 11.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6f465389527bbafe7cf4436713e8b3e84e8ff9ff82135980414fe27a97d319e
|
|
| MD5 |
077be19db0e8eeb2188382a3891dfdf1
|
|
| BLAKE2b-256 |
ef4cd206345f3d5d3bb6bb0648221f2882ae741a217c152bddc697a7508e26f2
|
File details
Details for the file pulse2percept-0.9.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e93dc7c6fc43d04650f0a563e606bd288fcb78e65131f0f0bef2e4fa96d42e4
|
|
| MD5 |
dd63a51db05e983dec3dab7690122c72
|
|
| BLAKE2b-256 |
03cdf719786206fc4a339035b4602bda03a4b264245c231b34b6bcc38481988a
|
File details
Details for the file pulse2percept-0.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff18514adf5e02a47f1663f57ccee4741ab9fd0a02fca2ca08287b1761c2f160
|
|
| MD5 |
0d70c4a67fc1019a3de9fc5a606527a5
|
|
| BLAKE2b-256 |
11ed81946505855304ee7e837579f4d652566c6f8dc193e95c917eea97e8336e
|
File details
Details for the file pulse2percept-0.9.1-cp313-cp313-macosx_11_0_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp313-cp313-macosx_11_0_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05eef3aecf49ac9f2c1a03444db5ba11e9d4bb0f63c547563cb5a70ba4d0bc64
|
|
| MD5 |
487c0ae63352c38b0373180249c0d130
|
|
| BLAKE2b-256 |
1e6db5ce6f6ce8cad64d2afe011a74214eda1f9eab1a1d75b36b24f73b632063
|
File details
Details for the file pulse2percept-0.9.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7ed636880617a0613bfb3109bd223fc2e5cb1994430fea648fbfc84df282570
|
|
| MD5 |
74bd9770627ddcdd9dc43b2eb8e6853c
|
|
| BLAKE2b-256 |
62ad0919b995f7f14013c7206a0662a6625bce400f96f77526447c0e3e1392c6
|
File details
Details for the file pulse2percept-0.9.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
045b6189a7d65ea313fe59b4f64f8bf887176305500f5d16970ce87723433c0d
|
|
| MD5 |
558b9ef093d1743a584922e51b000b18
|
|
| BLAKE2b-256 |
ea0acdda805488a747c48b0af0ac59917ec872d55431eab811a2dba723458cc5
|
File details
Details for the file pulse2percept-0.9.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e90f4966b4e18f7db1eefbd6e726efa8489de603bc569a7faceb47cff994d296
|
|
| MD5 |
4256105d0facf5453f59c4a26f300a00
|
|
| BLAKE2b-256 |
055c0a876ce06d40f5c217c89992ce038a20a7fa5e1b7224d37550fd1aea7120
|
File details
Details for the file pulse2percept-0.9.1-cp312-cp312-macosx_11_0_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp312-cp312-macosx_11_0_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.12, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c26ea619c4724fe6ea7b47d12b1961ddfb89d7a96462c3442f8126de5251897b
|
|
| MD5 |
ed15a704ec8fcd17a566cfa7bcf39395
|
|
| BLAKE2b-256 |
1e24d03542dca396844cb6f3049ae7d24b67cdd38063a1276dfd4ea40678b5fa
|
File details
Details for the file pulse2percept-0.9.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79b592a7bae5ce4db31c69e40c0a5208d8954316ef9ab8c4064c8ca9fae9e31a
|
|
| MD5 |
32309165c9d3f40aaa0dab4cc280e9f3
|
|
| BLAKE2b-256 |
4c39d281d44348bf35b34af8d6376218b99e6efb878361451e8df7ff5f963dc6
|
File details
Details for the file pulse2percept-0.9.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cf2d56e62330d98ff8e3434d7b01a1c9610d6980c2f0441b7fcb18c9fd08853
|
|
| MD5 |
d807ead0a371eecc626e90a02dfaa8e4
|
|
| BLAKE2b-256 |
9cb5baf84924e0241f77eeb915669a5ada86d2c2f0df1292fda2cca27b2303e3
|
File details
Details for the file pulse2percept-0.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf0475ea143a97e83c5fa35c3d84308ed0f960387f45473285507ce9ffd7efe1
|
|
| MD5 |
4960c895c0b4564391fbdd2fc66e9609
|
|
| BLAKE2b-256 |
eb077b0a8ebf539ce0cd0c3513f3dacde707e5463768640b63e0624128aca395
|
File details
Details for the file pulse2percept-0.9.1-cp311-cp311-macosx_11_0_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp311-cp311-macosx_11_0_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34ae544893153471a24ec2616d9eb6ed3c454f5c6b6c89057e2dfecd35f9e618
|
|
| MD5 |
74c72abf6f2397246eeafa3b4e16bf12
|
|
| BLAKE2b-256 |
96ef3ea1b132f67a65eae39645afc1eefc5124adf86b2feccf02b8fd10f58bf4
|
File details
Details for the file pulse2percept-0.9.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
345548367a7b1e17e142d454e046637c827ce0ef09e88d04e6e7b0879dd8165f
|
|
| MD5 |
ad42b53ff08a0575d7cef8e0c25e9161
|
|
| BLAKE2b-256 |
7bab444190de418320b025253dc2ed874a4eccf297f8e19592797d1bebb68d63
|
File details
Details for the file pulse2percept-0.9.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84a985838b2aa91eb5be386d776b5c68798efc6411dbe8abc8901b7654cba208
|
|
| MD5 |
186118b65cf7d576b49d3b11100ed10c
|
|
| BLAKE2b-256 |
ce0c130f6ed82dcf0f41f56a42d5ce92f5467fcd3ae650aeaecc88bbdf263d6b
|
File details
Details for the file pulse2percept-0.9.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
badc9e7a39bc13d885ca0e9d8f8be2e6e8ac0cab6b164ca911f121d7ef8f6871
|
|
| MD5 |
b9daa4689ef8f24b888028c0fdc8dfaf
|
|
| BLAKE2b-256 |
178a7a236bccc578ecad74e21c5d217b8cf4c6596e945dde410761c01e53b179
|
File details
Details for the file pulse2percept-0.9.1-cp310-cp310-macosx_11_0_x86_64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp310-cp310-macosx_11_0_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3274ca5aa416fccc8357b54ce468119d1fa76b8c40134b81ae862e9f6bd6b77
|
|
| MD5 |
6fb0c51bd06ceda8d6bb0aa55af851dc
|
|
| BLAKE2b-256 |
5c6a3dba4bec65b4b163ba464019f7e8c383cdc9dadcef9163bcad5b05b83964
|
File details
Details for the file pulse2percept-0.9.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: pulse2percept-0.9.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b618a12a1acc82bd6c6172548691df26394c988aa2478bd56064a114141ff43
|
|
| MD5 |
6ca93a390743e4a02a8178a101707323
|
|
| BLAKE2b-256 |
f4cf7a46e1cee171de71593c0af02b58ef155e41efc666af0cc18b8c8d94ec8e
|