https://github.com/mreye-lumc/visisipy
Vision Simulations in Python
https://github.com/mreye-lumc/visisipy
ophthalmology optics simulation
Last synced: 2 months ago
JSON representation
Vision Simulations in Python
- Host: GitHub
- URL: https://github.com/mreye-lumc/visisipy
- Owner: MREYE-LUMC
- License: mit
- Created: 2024-05-13T08:30:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-04-03T07:58:37.000Z (2 months ago)
- Last Synced: 2026-04-03T14:18:15.851Z (2 months ago)
- Topics: ophthalmology, optics, simulation
- Language: Python
- Homepage: https://visisipy.readthedocs.io
- Size: 22.1 MB
- Stars: 9
- Watchers: 0
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Citation: CITATION.cff
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Visisipy: accessible vision simulations in Python
[](https://pypi.org/project/visisipy/)
[](https://anaconda.org/conda-forge/visisipy)



[](https://visisipy.readthedocs.io/en/latest/)
[](https://doi.org/10.5281/zenodo.15423159)
Visisipy (pronounced `/ˌvɪsəˈsɪpi/`, like Mississippi but with a V) is a Python library for optical simulations of the eye.
It provides an easy-to-use interface to define and build eye models, and to perform common ophthalmic analyses on these models.
## Goals
1. Provide a uniform interface to define, build and analyze various types of eye models, using abstractions that are relevant in a clinical context.
2. Provide a collection of ready-to-use eye models, such as the Navarro model[^navarro], that can be customized at need.
3. Provide an accessible interface to clinically relevant analyses on these models, such as off-axis refraction calculations.
4. Modular design with support for multiple backends, both open-source and commercial.
## Contributing
Visisipy aims to be a community-driven project and warmly accepts contributions.
If you want to contribute, please email us (visisipy@mreye.nl) or [open a new discussion](https://github.com/MREYE-LUMC/visisipy/discussions).
## Installation
Visisipy can be installed through [`pip`](https://pypi.org/project/visisipy/):
```bash
pip install visisipy
```
Visisipy is also available on [Conda Forge](https://anaconda.org/conda-forge/visisipy):
```bash
conda install -c conda-forge visisipy
```
## Example
```python
import matplotlib.pyplot as plt
import seaborn as sns
import visisipy
# Uncomment the following line to use the open-source Optiland backend instead of OpticStudio
# visisipy.set_backend("optiland")
# Initialize the default Navarro model
model = visisipy.EyeModel()
model.geometry.pupil.thickness = 2.0
# Build the model in OpticStudio
model.build()
# Perform a raytrace analysis
coordinates = [(0, 0), (0, 10), (0, 20), (0, 30), (0, 40)]
raytrace = visisipy.analysis.raytrace(coordinates=coordinates)
# Alternatively, the model can be built and analyzed in one go:
# raytrace = visisipy.analysis.raytrace(model, coordinates=zip([0] * 5, range(0, 60, 10)))
# Visualize the model
fig, ax = plt.subplots()
visisipy.plots.plot_eye(ax, model.geometry, lens_edge_thickness=0.5)
sns.lineplot(raytrace, x="z", y="y", hue="field", ax=ax)
plt.show()
```
## Documentation
Read the full documentation at [visisipy.readthedocs.io](https://visisipy.readthedocs.io).
[//]: # (References)
[^navarro]: Escudero-Sanz, I., & Navarro, R. (1999). Off-axis aberrations of a wide-angle schematic eye model. JOSA A, 16(8), 1881–1891. https://doi.org/10.1364/JOSAA.16.001881