Skip to main content

Accessible vision simulations in Python.

Project description

Visisipy: accessible vision simulations in Python

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.

Installation

Visisipy can be installed through pip:

pip install visisipy

Visisipy is also available on Conda Forge:

conda install -c conda-forge visisipy

Example

import visisipy
import matplotlib.pyplot as plt
import seaborn as sns

# Initialize the default Navarro model
model = visisipy.EyeModel()

# 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)
ax.set_xlim((-7, 23))
ax.set_ylim((-15, 15))
ax.set_aspect('equal')

sns.lineplot(raytrace, x="z", y="y", hue="field", ax=ax)

plt.show()

Documentation

Read the full documentation at visisipy.readthedocs.io.

[^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

Project details


Download files

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

Source Distribution

visisipy-0.3.0.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

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

visisipy-0.3.0-py3-none-any.whl (86.1 kB view details)

Uploaded Python 3

File details

Details for the file visisipy-0.3.0.tar.gz.

File metadata

  • Download URL: visisipy-0.3.0.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for visisipy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a00634a09462cfea1d41dfaa6a879ab8ba1609b36b0c5577e3f125bd80258f8a
MD5 ae1aaa87fec1f77fa59456fa548b0e0b
BLAKE2b-256 2ff4829f2552529a434cbe4bbef0d0ae1a211f29c4b978af46ad154f323d95b0

See more details on using hashes here.

File details

Details for the file visisipy-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: visisipy-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 86.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for visisipy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e7c092879e0a6d6f9e18fa891b4f896bd88ab48c21ec913809d73ae513c6df3
MD5 a80e3412c0cb193a0c9e24a1d7460071
BLAKE2b-256 e5d607367d713fbecb484aa46555f3b1e4d786c3ffd302dc0558f3977b42d18e

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