Skip to main content

A Python-based simulation framework for bionic vision

Project description

DOI BSD 3-clause PyPI build GitHub forks GitHub stars

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.

Input stimulus and predicted percept

(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

Once you have Python 3.9 or later (but not yet 3.13), you can install the stable release of p2p using:

pip install pulse2percept

We provide prebuilt wheels for recent versions of macOS (e.g., macOS 14), Linux (e.g., Ubuntu 24.04 LTS), and Windows (e.g., Windows Server 2022). You can find the full documentation here.

Compatibility and Building from Source

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.12

3.11

3.10

3.9

3.8

3.7

3.6

3.5

3.4

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

p2p 0.5

Yes

Yes

Yes

Our GitHub Action Runners ensure that p2p works as expected on macOS 14 Arm64, Ubuntu 24.04, and Windows Server 2022.

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, first ensure that you have NumPy and Cython installed. On Windows, you will also need Visual Studio Build Tools. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pulse2percept-0.9.0-cp312-cp312-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.12Windows x86-64

pulse2percept-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pulse2percept-0.9.0-cp312-cp312-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulse2percept-0.9.0-cp311-cp311-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.11Windows x86-64

pulse2percept-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pulse2percept-0.9.0-cp311-cp311-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulse2percept-0.9.0-cp310-cp310-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pulse2percept-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pulse2percept-0.9.0-cp310-cp310-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pulse2percept-0.9.0-cp39-cp39-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.9Windows x86-64

pulse2percept-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pulse2percept-0.9.0-cp39-cp39-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pulse2percept-0.9.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a9c548dcb0f65fec061802e905fdbfcddb349957e15884cf8c6d3e53bdb20b99
MD5 91e86a95777a5950a1ca9776305300d4
BLAKE2b-256 0a7acf877751af9fa7c428530404bad7de96b13249e79effa9fb2195401aa490

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e744e15f9588c34ce8764c2a9abaf824c4e5fc536eb37142999bb4db54e0dca4
MD5 dd1d3dd794032aeec91929b7d5eb94a0
BLAKE2b-256 63d73c389d6518e51497e1cad3ad8a6e19e2a10887d4952eac87e56587fad51f

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 36fa2a659aaaf2fe3d47c94ee4e463e60f2a2968de2c8d6ab001b44ef24a5c09
MD5 ebf788cf6166fd0676f87d063ef19b7b
BLAKE2b-256 4ef8a94d7deb7cfe0f3aabd6499063354e78abe893cf72f36af9244243ebd82e

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e9319ab66d45db66f0506c5c6062ac01bf0a673f0c623dd19a0e78ad65371067
MD5 f6f3103cfca8d6785ef4d45eb788ff25
BLAKE2b-256 ec1faa800e5de48c1ab65d27112524864aa6458b002bd507a06366bb8184bb24

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe991f4e3d47c8fd3269cfc2493a2ebf6ae1eb789e75705ecaa2781b68065d3c
MD5 bd90f94937a0d7feccf798e208078b4b
BLAKE2b-256 c2157db39cfd8590ded433118c68e1e45a702938945cde8ec970d017506e903f

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eccc260bf6a288f3ef28ea25665c7f277749acf415b55ebfe91e7b26cc810050
MD5 0d91b00ba35733618c168b13ec104c16
BLAKE2b-256 fcfdad43ba4a6b0de5cfed4ad4df81e24c62681c5684b9d69cb9b7ab5fe7cfc4

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 daad4387e4e8f2d9018207fb7369b287308f41094ee54911641012dd778034b1
MD5 762104743f41660642e49eccf479cfe9
BLAKE2b-256 66c8ac5e27c6c0641beab11a9248818173dc4f0d5edabd9ce58a867d06f9531a

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6de9f3d602351d93736059a7c60fecaa6bb430c2348dd082750aeda92dd1ced
MD5 782a5f9f149244d44650549556445e9f
BLAKE2b-256 19f745d0eec4fcef0fa5d8a6076ece3546e27d1c2b7b2277dfe6174680f24940

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a96259659c1d7e594603b30fc9cee2d9227c3d14d54e4a2fb5f5c8b106879b9b
MD5 7aa93e0ec9c8c41b47c05314255cb64c
BLAKE2b-256 74bef88e1a554679b5f693ec1d1063804c4627b4310c558ff49b7c6c07c21533

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7a0482c9209b0d2f633f9982208ec0386f6ead20d3cf21311c92a626d9f7557e
MD5 ce5d43bb96120c625e8e23c3d97c8ef3
BLAKE2b-256 77fd8e2f4e804892f24dff9fe7dd7a1b7c9e772838d1658b0a05404d3912462d

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9416dce26361013fac487538454e954a851d0039431c3838d5074266bac8b294
MD5 f8144423da51a89c94a41d4343327d24
BLAKE2b-256 80a1ad2e7aa33591b32272409cc8a2d343ed3fc48ff069d0e401abb1b903af22

See more details on using hashes here.

File details

Details for the file pulse2percept-0.9.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulse2percept-0.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a482e1c14ddf97c590b8177fc6434fd67d09c78e161f03c4154cf9cdbb1f478
MD5 04800b7224bc6ca51ce470a94edfb460
BLAKE2b-256 cc609b6ab482524701ee634a7e49b85b13c091d97a4852c5445548253020b831

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page