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 will be made available through Conda as soon as possible.

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.2.0.tar.gz (2.8 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.2.0-py3-none-any.whl (81.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: visisipy-0.2.0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.4

File hashes

Hashes for visisipy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 47c08335add09a3cffdd784d3aa385f375b8b1e65bb1184aa382fadba106bd45
MD5 4d5bb4aba1e79209a875a8bd70f43b7c
BLAKE2b-256 c6ccce9e499efa7a6e3fe1bff304827113777f3610698d009ea0e40c48f99db9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: visisipy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 81.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.4

File hashes

Hashes for visisipy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2bb91580f73ec8598e583d697aa806b24dee58cb92d115fa88403ee9126752f1
MD5 875c4c50f69a528c02224c991a49f35e
BLAKE2b-256 3b429fcc78a8f3806d874abc914041d94080e35687e145487c28ae04f0a65bac

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