+1 -1 +8
Vote on this proposal

Jigna: Bringing TraitsUI to the web

by Prabhu Ramachandran (speaking)

Section
Software Development Tools
Technical level
Intermediate

Objective

Learn about a new way of building interactive graphical user interfaces in Python with a minimum of fuss that can be displayed locally and on the web seamlessly.

Description

The Traits package allows a developer to create powerful, interactive, models with very little Python code. Traits are basically Python attributes that support Initialization, Validation, Delegation, Notification and Visualization (through a GUI). TraitsUI provides a declarative interface to describe the GUI of any object that has traits. TraitsUI works with wxPython and Qt on multiple platforms. These are distributed with a liberal BSD license and are developed and maintained by Enthought.

The enormous developments of the "web platform" in general and HTML, CSS and JS in particular provide very interesting and new possibilities which allow you to create good looking and interactive web pages. Unfortunately these cannot be harnessed entirely from Python for the purposes of building interactive applications. To this end, we are working on a project called Jigna which provides a powerful bridge between Python on the one hand and HTML/CSS/JS on the other. One could think of this as a TraitsUI HTML backend.

Jigna allows us to develop models in Python but create a user interface using
HTML/CSS/JS. This gives us the power of Python for easily writing the application logic and the powerful features of the HTML world for the user interface. The HTML UI can be displayed both in the same Python process as well as remotely, allowing us to view and manipulate a Traits-based-object seamlessly from the web.

In this talk we will demonstrate Jigna with a variety of examples which will include interactive graphics for data analysis and talk about how it works.

Speaker bio

Prashant Agrawal has been working as a developer at Enthought for the last 1 year. He holds a B.Tech. and an M.Tech. in Aerospace Engineering from IIT Bombay. During his masters, he worked on development of a vortex methods based 3D flow solver in Python. He also implemented a parallel version of the code using mpi4py and optimized it using Cython.

Prabhu Ramachandran helped start Enthought's India office and is a director of Enthought India. He has been a faculty member at the Department of Aerospace Engineering, IIT Bombay, since 2005. His research interests are primarily in particle methods and applied scientific computing. He co-founded the Chennai Linux User Group in 1998 and is the creator, and lead developer of Mayavi. Prabhu has a Ph.D. in Aerospace Engineering from IIT Madras. He is an active member of the SciPy community and a nominated member of the Python Software Foundation.

Prashant and Prabhu have both been creating Jigna.