| Version 1 (modified by , 13 years ago) ( diff ) |
|---|
Data Management
Using numeric arrays as primary storage means is very fast if tasks are written using NumPy operators but very slow (relative to plain Python objects) when written in typical Python style. TomG suggests that we keep the Chimera 1 data structures but add more high-order operators in C++ (to do things such as "make these atoms red"). To do so, we would need to revisit selection and operator code to make sure that this can be done efficiently and conveniently so that we can convert the existing code to the new style. The advantage is that we can keep much of the code base, at least data-structure-wise.
TomG and Eric will look into developing a protocol for adding and using these high-order operators for all the different objects, including volumes, surfaces, molecules, residues, atoms, sequences, chains, alignments, graphics objects, etc.
Graphics
Tablets with WebGL capabilities are becoming more popular and usable. Greg has been working on an API that will enable us to use the same graphics code base for desktop OpenGL and browser WebGL applications. The top priorities at this point are picking and shadows. Next tier are performance and instancing.
User Interface
With Tk increasingly old-in-the-tooth and underdeveloped for Mac OS X, we need to migrate to a new user interface toolkit for our desktop application. Greg has worked with QT5 but is running into issues with the Python layer (PySide currently supports Qt4 but not Qt5; PyQt4 partially works with Qt5 but has GPL redistribution restrictions). A possibility is to convert existing code to use an in-house UI API. Hopefully, this will allow us to switch UI toolkits by modifying a localized chunk of code when necessary. Alternatively, we can just pick one (as we did with Tk) and ride it to Chimera 3.
Greg is reporting on candidate UI toolkits.
If we take the in-house-API approach, it is important that all developers agree to update their code to the in-house API. As long as there are any unconverted UI code, we cannot switch toolkits easily.
For the (to be developed) browser-based application, we will need to investigate toolkits such as jQuery. Since the UI code will be completely different for the desktop and browser applications, we may
Web Application Framework
With development continuing using the Chimera 1 code base, we have a desktop application already. We need a browser-based application, whether it is a simple viewer or more sophisticated analysis program. Conrad will look into using WSGI as a means for implementing an application that is split between the browser (for display and interactions) and a server (for data management and access to computational resources). Initially, the task is to investigate the browser-server interface (how to pass data such as graphics and picking data back and forth) and session management (how a server can be used by multiple clients).
![[Chimera Issue Tracking System]](/trac/chimera/chrome/site/chimera_logo.png)