Skip to content
This repository has been archived by the owner on Jul 18, 2023. It is now read-only.

Project. GSoC 2015

Cyrille Rossant edited this page Feb 20, 2015 · 7 revisions

What is VisPy?

VisPy is a high-performance interactive visualization library in Python that brings the power of graphics cards (modern OpenGL: shaders, vertex buffer objects, etc.) to the masses. While VisPy primarily targets scientific visualization of very large datasets, it also offers a powerful and flexible infrastructure for building beautiful and fast data-intensive graphical applications in Python.

VisPy supports visualizations on desktop OpenGL and WebGL in the browser with OpenGL ES 2.0.

Status of the project

VisPy is a relatively young library. The main building blocks are implemented, and we're currently consolidating the main user API. Users can already create 2D and 3D visualizations without knowing OpenGL. We also offer a Pythonic object-oriented API directly on top of OpenGL for those who want maximum flexibility.

The developers

We are five Python developers who have worked on our own visualization libraries in the past. We then decided to team up. Eventually, we all want to see our own libraries superseded by VisPy.

Requirements for candidates

  • Interested in scientific plotting, data visualization, real-time graphics, video games, demo scene, computer art...
  • Experience with Python
  • Experience with open source development, including collaborative workflows, Git/Github, issue tracking...
  • Experience with code quality: unit testing, test-driven development, documentation, continuous integration...
  • Have publicly available code source and projects we can look at.

GSoC 2015 projects

1. Bringing Glumpy to VisPy

Difficulty: Easy

Mentors: Nicolas Rougier, Eric Larson

One of us (Nicolas Rougier) has implemented experimental ideas in his project, Glumpy. We now want to include them in VisPy. See this issue.

This project will require ability to work in both Python and GLSL.

2. High-level plotting interface

Difficulty: Easy

Mentors: Cyrille Rossant, Eric Larson

Develop a high-quality, user-friendly plotting interface similar to bokeh and seaborn. This mostly involves understanding what high-level API calls users will want access to, and hooking up those APIs with lower-level plotting calls. The lower-level calls may need to be adapted in order to provide necessary functionality. This will likely only require knowledge of Python, not GLSL.

3. Make VisPy work on the Raspberry Pi and mobile devices

Difficulty: Hard

Mentors: Cyrille Rossant, Almar Klein

Using some of the ideas developed in the Kivy project. This is involves slightly more complex hardware-software interface work, although the Pi's support of OpenGL ES 2.0 should make this tractable for a summer project.

4. Develop a NumPy-aware Python-to-JavaScript translator

Difficulty: Hard

Mentors: Cyrille Rossant, Eric Larson

See this for more details. The main part will be a light JavaScript implementation of NumPy. This component would be helpful when porting Python visualizations to JavaScript. This will require working knowledge of Python, NumPy, and Javascript.

Mentors

  • Cyrille Rossant: available throughout the summer
  • Eric Larson: available throughout the summer
  • Nicolas Rougier: likely available through the summer
  • Almar Klein: available throughout most of the summer
  • Luke Campagnola: TBD

Links

The information page for 2015 is here: https://wiki.python.org/moin/SummerOfCode/2015

Clone this wiki locally